3

SPARQL エンドポイントを使用して、DBpedia リソースのウィキペディア カテゴリまたはヤゴ分類の階層を抽出しようとしています。たとえば、エンティティの階層形式で可能なすべてのカテゴリとクラスを見つけたいと思います。たとえば、http://dbpedia.org/resource/Nokia、Thing → Organization → Company → … → Nokia のようになります。

4

1 に答える 1

5

単純な SPARQL 選択で、関心のある情報を取得できますが、階層的に配置されることはありません。リソースのすべてのタイプと、rdfs:subClassOfそれらの間の関係を取得することに関心があります。DBpedia SPARQL エンドポイントで実行できるNokiaの非常に単純なクエリを次に示します。

SELECT * WHERE {
  dbpedia:Nokia a ?c1 ; a ?c2 .
  ?c1 rdfs:subClassOf ?c2 .
}

SPARQL の結果

その結果セット内のクラスの各ペアを有向エッジとして扱い、トポロジカル ソートを実行すると、Nokia リソースが属するクラスの階層が表示されます。実際、これをグラフとして扱うとおそらく便利なので、SPARQL コンストラクト クエリを使用して RDF グラフの形式で取得できます。

CONSTRUCT WHERE {
  dbpedia:Nokia a ?c1 ; a ?c2 .
  ?c1 rdfs:subClassOf ?c2 .
}

SPARQL の結果

コンストラクト クエリは、次のグラフを生成します (N3 形式)。

@prefix rdfs:   <http://www.w3.org/2000/01/rdf-schema#> .
@prefix dbpedia-owl:    <http://dbpedia.org/ontology/> .
@prefix owl:    <http://www.w3.org/2002/07/owl#> .
@prefix yago:   <http://dbpedia.org/class/yago/> .
@prefix rdf:    <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix dbpedia:    <http://dbpedia.org/resource/> .

dbpedia-owl:Agent   rdfs:subClassOf owl:Thing .
dbpedia-owl:Company rdfs:subClassOf dbpedia-owl:Organisation .
dbpedia-owl:Organisation    rdfs:subClassOf dbpedia-owl:Agent .
yago:CompaniesBasedInEspoo  rdfs:subClassOf yago:Company108058098 .
dbpedia:Nokia   rdf:type    yago:CompaniesListedOnTheHelsinkiStockExchange ,
        owl:Thing ,
        yago:CompaniesBasedInEspoo ,
        dbpedia-owl:Agent ,
        yago:DisplayTechnologyCompanies ,
        yago:ElectronicsCompaniesOfFinland ,
        dbpedia-owl:Company ,
        dbpedia-owl:Organisation ,
        yago:Company108058098 ,
        yago:CompaniesEstablishedIn1865 .
yago:CompaniesEstablishedIn1865 rdfs:subClassOf yago:Company108058098 .
yago:CompaniesListedOnTheHelsinkiStockExchange  rdfs:subClassOf yago:Company108058098 .
yago:DisplayTechnologyCompanies rdfs:subClassOf yago:Company108058098 .
yago:ElectronicsCompaniesOfFinland  rdfs:subClassOf yago:Company108058098 .

備考

上記のクエリはrdf:type、Nokia の階層を取得します。質問では、ウィキペディアのカテゴリについても言及しています。DBpedia リソースは、対応する記事がプロパティによって属するウィキペディア カテゴリに関連付けられていdcterms:subjectます。これらのウィキペディアのカテゴリは、 によって階層的に構造化されskos:broaderます。ただし、これらは実際には個人のタイプではありません。たとえば、データには次のものが含まれます。

dbpedia:Nokia dcterms:subject category:Finnish_brands
category:Finnish_brands skos:broader category:Brands_by_country

Nokia がフィンランドのブランドであると言うのはおそらく理にかなっていますが、NokiaBrand_by_countryであると言うのはあまり意味がありません。

于 2013-06-24T11:27:41.127 に答える