2016-11-13 4 views
0

私は、例えば、「馬」のような言葉を持っています。そのクラスを取得したいと思います。それはここに示されているように、「哺乳動物」であろう:http://dbpedia.org/page/HorseSparqlを使用して特定の単語のDBPedia 'class'属性を取得する方法は?

私は何か試しましたが、何も返されません。

String queryString = "PREFIX dbr: <http://dbpedia.org/resource/>" 
        + "PREFIX dbo: <http://dbpedia.org/ontology/>" 
        + "select ?class where {dbr:Horse dbo:?class}"; 

アドバイスはありますか?

答えて

1

SPARQLクエリでは、いわゆるトリプルパターンが使用されます。クエリではタプルだけが返され、2番目の部分は奇妙な構文でも返されます。さらに、インスタンスはrdf:typeプロパティによってクラスにアサートされます。他方、dbo:classは、生物学的用語クラスのためのより多くの特性である。明らかに、あなたのクエリは正しく構成されておらず、dbo:classの部分は?classという変数と重なっています。あなたがそれを見ていない、なぜ私は思ったんだけど - それはあまりにも明白だ...私はSPARQLに新たなんだたぶんので

PREFIX dbr: <http://dbpedia.org/resource/> 
PREFIX dbo: <http://dbpedia.org/ontology/> 
SELECT ?class WHERE { 
    dbr:Horse dbo:class ?class 
} 
+1

を...そして、私は単語の種類を得るのですか? – miTzuliK

+0

RDFに単語という用語はありません。どういう意味ですか?リソース(URI/IRIによって識別される)のクラスは?そうなら、 'rdf:type'の関係を使用してください。 – AKSW

+0

ええ、すみません。私がこれを初めて知ったので、それは私の誤解です。私が欲しいのは、名前を持つリソースのカテゴリを取ることです。 – miTzuliK

関連する問題