2016-05-16 14 views
2

Q &を作成する必要があります。私はSPARQLとDBpediaを使用して質問に答えることができます。現在、私は、存在しないプロパティを持つDBpediaに対して多くの無駄なクエリを作成する必要があります。すべてのプロパティを取得してtxtファイルに入れようとしましたが、接頭辞は付いていません。プレフィックスを含むDBPediaのすべての(オランダ)プロパティを取得

次のように私のSPARQLクエリは次のとおりです。

sは、次のようにもDBpediaのから得られたラベルへのリンク(Iは、Pythonを使ってこれを行う)である
select distinct str(COALESCE(?property2, ?property)) as ?property where 
{ 
?instance a <%s> . 
?instance ?property ?obj . 
OPTIONAL{?property rdfs:label ?property2} 
} 

"http://dbpedia.org/ontology/Amphibian" 
"http://dbpedia.org/ontology/AmusementParkAttraction" 
"http://dbpedia.org/ontology/AnatomicalStructure" 
"http://dbpedia.org/ontology/Animal" 

クエリから取得した出力(CSV形式):

"prijzengeld loopbaan ($)" "Verluste" "casualties" "pertes" 
"verliezen" "Kategorie" "categorie" 

私はプレフィックス私はオランダのプロパティ名を使用する必要があるため

  • prop-nl:
  • dbpedia-owl:
  • など

特にprop-nlが重要である:例えばのでsが、含まれています。

+0

で答えを見つけるかもしれない(クエリ内の)プロパティがURIですか。それはあなたが実際に欲しいものですね。 "prop-nl"、 "dbpedia-owl"などの人間が読めるプレフィックスは、一部のテキストの略語です。そしてDBpediaは実際には定義済みのものをいくつか変更するので、 'dbpedia-owl:foo'はパブリック・エンドポイントでの作業に使用されていましたが、現在はありません。 'dbo:foo'を使わなければなりません。しかし、は常に有効です。 –

+0

それがあなたがやりたいことならば、あなたは[SPARQLクエリで答えを見つけて、名前空間接頭辞を定義したすべてのクラスラベルを取得することができます](http://stackoverflow.com/questions/17939197/sparql-query-to-get- all-class-label-with-namespace-prefix-defined/17949002) –

+0

ありがとう!プロパティの名前(prop-nl:jaarのようなもの)を尋ねるのではなく、を実行できますか?だから私は接頭語は必要ないだろうと思いますか?私はあなたが与えたリンクを使って手でURIを短縮するのではなく、それをやり直すと思います。ありがとうございました! – DanielsWrath

答えて

2

のうち、クエリの一部である)がURIです。それはあなたが実際に欲しいものですね。 "prop-nl"、 "dbpedia-owl"などの人間が読めるプレフィックスは、一部のテキストの略語です。そしてDBpediaは実際には定義済みのものをいくつか変更するので、dbpedia-owl:fooは公開エンドポイントでの作業に使用されていましたが、現在はそうではありません。 dbo:fooを使用する必要があります。しかし、<http://dbpedia.org/ontology/foo>は常に動作します。

しかし、それはあなたが何をしたいなら、あなたはSPARQL query to get all class label with namespace prefix defined

関連する問題