我尝试使用insert WHERE插入值。我使用4Store作为语义库。
查询如下:
INSERT {
<http://some.com#test2> rdf:type <http://dbpedia.org/ontology/Floor> .
?URI1257846444363706 <http://dbpedia.org/ontology/TestFloor> <http:// some.com #test2> .
<http:// some.com #test2> <http://dbpedia.org/ontology/floorNo> 'B11' .
}
WHERE {
?URI1257846444278864 rdf:type <http://dbpedia.org/ontology/Campus> .
?URI1257846444278864 <http://dbpedia.org/ontology/hasCampusCode> 'ABC' .
?URI1257846444363706 rdf:type <http://dbpedia.org/ontology/Building> .
?URI1257846444278864 <http://dbpedia.org/ontology/Building> ?URI1257846444363706 .
?URI1257846444363706 <http://dbpedia.org/ontology/hasBuildingCode> 'XYZ' .
}当我运行上面的查询时,INSERT中的三元组并没有插入到存储中(我尝试使用SELECT查询检索三元组,但没有返回任何结果)。我已经检查了WHERE子句中的所有三元组,并且它们都存在于存储中。
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT * {
?URI1257846444278864 rdf:type <http://dbpedia.org/ontology/Campus> .
?URI1257846444278864 <http://dbpedia.org/ontology/hasCampusCode> 'ABC' .
?URI1257846444363706 rdf:type <http://dbpedia.org/ontology/Building> .
?URI1257846444278864 <http://dbpedia.org/ontology/Building> ?URI1257846444363706 .
?URI1257846444363706 <http://dbpedia.org/ontology/hasBuildingCode> 'XYZ' .
}结果:
<head>
<variable name="URI1257846444278864"/>
<variable name="URI1257846444363706"/>
</head>
<results>
<result>
<binding name="URI1257846444278864"><uri>http://some.com/Ontology/2012.owl#ranfa1087b9-6cee-4433-a4d3-816e9b1af208</uri></binding>
<binding name="URI1257846444363706"><uri>http://some.com/Ontology/2012.owl#ran1224548700931885</uri></binding>
</result>
</results>但同样的插入只有一个变量就行了,
INSERT {
<http://some.com#test2> rdf:type <http://dbpedia.org/ontology/Floor> .
?URI1257846444363706 <http://dbpedia.org/ontology/TestFloor> <http:// some.com #test2> .
<http:// some.com #test2> <http://dbpedia.org/ontology/floorNo> 'B11' .
}
WHERE {
?URI1257846444363706 rdf:type <http://dbpedia.org/ontology/Building> .
?URI1257846444363706 <http://dbpedia.org/ontology/hasBuildingCode> 'XYZ' .
}第一个插入处哪里出了问题?
发布于 2012-05-06 14:46:10
如果不查看数据,就很难判断查询是否正确。
尝试只运行WHERE部分,并使用SELECT *。这将告诉您是否有任何匹配它。
而且,你没有说你正在运行的是什么版本的4store。早期的版本只有部分插入支持。
https://stackoverflow.com/questions/10466793
复制相似问题