2012-05-05 9 views
1

INSERT WHEREを使用して値を挿入しようとしています。セマンティックリポジトリとして4Storeを使用しています。INSERT WHERE SPARQL + 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' . 
    } 

Iは、(私はSELECTクエリを使用してトリプルを取得しようとしたが、それは結果を返しません)INSERTにおけるトリプルストアに挿入されていない上記のクエリを実行します。私は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、

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

WHERE第一INSERTで何か問題はありますか?

+0

2番目の 'INSERT'が動作するとは言いませんが、' 'は空白を含んでいるため有効なIRIではありません。 – cygri

答えて

2

データが表示されていないクエリが正しいかどうかはわかりにくいです。

SELECT *を使用してWHERE部分だけを実行してみてください。それはそれに一致するものがあれば教えてくれます。

また、実行している4storeのバージョンはわかりません。初期のものは部分的なINSERTサポートしか持っていませんでした。

+0

私はWHERE部分だけでSELECT *を試しました。上記の結果を私の質問に添付しました。 私は以下のバージョンを使用しています ラプターバージョン2.0.4 ラスカルバージョン0.9.26 4ストアv1.1.4-168-g98398ef – Nikhil

関連する問題