INSERT WHERE SPARQL + 4Store的问题

时间:2012-05-05 23:23:39

标签: rdf sparql 4store

我正在尝试使用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 WHERE可以正常工作,

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' . 
    }

在第一个INSERT WHERE中出错了什么?

1 个答案:

答案 0 :(得分:2)

如果没有看到数据,很难判断查询是否正确。

尝试使用SELECT *运行WHERE部分。这将告诉你是否有任何匹配。

另外,您没有说明您正在运行的4store版本。早期的只有部分INSERT支持。