では、カバーしなければならないすべてのケースを見つけるにはどうすればよいでしょうか。(すべての型プロパティ、すべてのリダイレクトの可能性...?) これの背後に何らかの構造がありますか / どこから探し始めますか?
何が型プロパティで何が型でないかを定義するための何らかの基準がない限り、これでうまくいくことはありません。たとえば、 で終わるすべてのプロパティがtype
必要な場合は、次のようなクエリを使用できます。
select distinct ?p where {
[] ?p []
filter strends(str(?p), "type")
}
しかし、DBpedia の場合、おそらく内部的な時間制限に達したため、実際にはすべてを取得できるわけではありません。ただし、特定のリソースについては、関心のあるサブジェクトの値を指定して、特定のリソースだけの結果を得ることができます。例えば、。
select distinct ?p where {
dbpedia:Mount_Monadnock ?p []
filter strends(str(?p), "type")
}
limit 100
SPARQL の結果
p
http://www.w3.org/1999/02/22-rdf-syntax-ns#type
http://dbpedia.org/ontology/type
http://dbpedia.org/property/type
http://dbpedia.org/property/wordnet_type
もちろん、おそらく値も必要です。
select distinct ?p ?type where {
dbpedia:Mount_Monadnock ?p ?type
filter strends(str(?p), "type")
}
SPARQL の結果
あなたが言ったこと:
- http://dbpedia.org/ontology/type
- dbpedia-owl:wikiPageRedirects*/dbpedia-owl:type //in case of a redirect
実際には少し誤解を招く可能性があります。 dbpedia-owl:type
はプロパティです。接頭辞http://dbpedia.org/ontology/type
を使用して記述されています。dbpedia-owl:
リダイレクトが気になる場合は、 だけでなく、すべてのリソースとそのプロパティのリダイレクトが気になりますdbpedia-owl:type
。つまり、次のようなクエリを使用します
select distinct ?p ?type where {
dbpedia:Mount_Monadnock dbpedia-owl:wikiPageRedirects* ?actualThing .
?actualThing ?p ?type .
filter strends(str(?p), "type")
}