2017-11-21 14 views
0

基本的に、私はこのエンティティの 'サブクラス'を取得しようとしています。例えば: -SPARQLを使ってDBPediaからエンティティの 'is skos:broader of'を取得する方法はありますか?

select ?p1 where { 
    <http://dbpedia.org/resource/Category:Norwegian_silent_film_actors> skos:narrower ?p1 . 
} 

- と -

select ?p1 where { 
    <http://dbpedia.org/resource/Category:Norwegian_silent_film_actors> rdfs:subclass ?p1 . 
} 

を -

DBpedia Egyptian film actors

私が使用してみましたが、それは実際にその述語ではありませんので、しません作業。どちらも、述語の後に*が追加された場合、どちらもエンティティ自体を返します。

これらのオブジェクトを取得する方法はありますか? を意味するが、必ずしもskos:narrower文の存在を示すものではありません -

+0

'Norwegian_silent_film_actors'を表示するように写真を変更するか、' Egyptian_film_actors'を使うようにテストを変更することをお勧めします。あなたが持っているものを混ぜることは、混乱を招く可能性があります。 – TallTed

答えて

2

それはis skos:broader of関係が逆skos:broader関係していることを覚えておくことが重要です。 DBpediaにはそこから推測される可能性のある明示的な文がすべてなく、推論規則はデフォルトでは有効ではありません。

あなたは一または-以上skos:broader関係のプロパティパス+を使用しています。このようなクエリでは存在しない、明示的な文を、使用することができます - プロパティを使用していますか、この、 -

select ?p1 
where 
    { 
    ?p1 
     skos:broader+ 
     <http://dbpedia.org/resource/Category:Norwegian_silent_film_actors> 
    } 

これはinference rulesがよく耐えるためにもたらされる可能性がある場所である

select ?p1 
where 
    { 
    <http://dbpedia.org/resource/Category:Norwegian_silent_film_actors> 
     ^skos:broader* 
      ?p1 
    } 

- 関係を逆にするパス^。残念ながら、skos:broaderskos:narrowerに関連する事前定義の推論ルールは存在せず、このパブリックエンドポイントはアドホックルールの追加を受け入れません。 pre-built and pre-populated with DBpedia in the cloudであろうとなかろうと、個人的なエンドポイントでいくつかを作成することができます。

関連する問題