我一直在尝试使用d3sparql根据我的本体生成强制导向图。 我有这个数据,我试图在图表中显示:
---------------------------------------------------
scname | pname | author |
---------------------------------------------------
Prunus Serrulata | Sheraton Cherry | John Doe |
Ailanthus Altissima | Chinese Sumac | Jane Doe |
Acca Sellowiana | Pineapple Guava | John Doe |
---------------------------------------------------
正如我们所看到的,有两个实例具有相同的作者John Doe。
但是在图中,两个节点都没有相互链接。虽然应该有3个scname,pname和author节点,但是在图中只有pname和author的节点。
编辑:我想做的是这样的事情:是否与我的owl文件有关,因为所有3个实例都有自己的数据属性? 为什么图表只显示2个节点而不是所有3个节点?
编辑:
这是我的代码:
<!DOCTYPE html>
<meta charset="utf-8">
<html>
<head>
<link rel="stylesheet" type="text/css" href="bootstrap.css"/>
<script src="//d3js.org/d3.v3.min.js"></script>
<script src="d3sparql.js"></script>
<script>
function exec() {
var endpoint = d3.select("#endpoint").property("value")
var sparql = d3.select("#sparql").property("value")
d3sparql.query(endpoint, sparql, render)
}
function render(json) {
var config = {
"charge": -500,
"distance": 50,
"width": 1000,
"height": 750,
"selector": "#result"
}
d3sparql.forcegraph(json, config)
}
function toggle() {
d3sparql.toggle()
}
</script>
</head>
<body>
<div id="query" style="margin: 10px">
<h1>d3forcegraph</h1>
<form class="form-inline">
<label>SPARQL endpoint:</label>
<div class="input-append">
<input id="endpoint" class="span5" value="http://localhost:3030/plantont/query" type="text">
<button class="btn" type="button" onclick="exec()">Query</button>
<button class="btn" type="button" onclick="toggle()"><i id="button" class="icon-chevron-up"></i></button>
</div>
</form>
<textarea id="sparql" class="span9" rows=15>
PREFIX podb: <http://localhost:8080/plantdb/ontology/plantont#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?scname ?pname ?author
WHERE
{ ?sub podb:scientificName ?scname .
?sub podb:plantName ?pname .
?sub podb:hasTaxon ?tax .
?tax podb:scientificNameAuthorship ?author
}
</textarea>
</div>
<div id="result"></div>
</body>
</html>