当我使用Sgvizler 0.6创建sgvizler.visualization.Table
并且SPARQL查询没有结果时,Sgvizler不绘制任何内容,甚至不绘制表头。这可能会使可能认为结果仍在计算或脚本崩溃的用户感到困惑。即使结果为空,如何配置Sgvizler来绘制表头?
最低工作示例
<!doctype html>
<html>
<head>
<meta charset="utf-8"/>
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.0/jquery.js"></script>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript" src="http://mgskjaeveland.github.io/sgvizler/v/0.6/sgvizler.js"></script>
<script>
sgvizler
.defaultEndpointURL("https://dbpedia.org/sparql")
.defaultChartFunction("sgvizler.visualization.Table")
.defaultChartWidth(1000);
$(document).ready(function (){ sgvizler.containerDrawAll(); });
</script>
</head>
<body>
<h2>First Table</h2>
<div id="results"
data-sgvizler-query="
select distinct ?class
{
?class rdfs:subClassOf dbo:Animal.
}
">
</div>
<h2>Second Table</h2>
<div id="noresults"
data-sgvizler-query="
select distinct ?class
{
?class rdfs:subClassOf dbo:Unicorn.
}
">
</div>
</body>
</html>
答案 0 :(得分:1)
这是解析器中的一个错误,它只查看第一行结果,以构建google.visualization.DataTable对象接受的JSON。
解决方案是重写解析器以检查SPARQL结果集的“列标题”。
解析器位于:https://github.com/mgskjaeveland/sgvizler/blob/master/src/parser.js