4

DBpedia SNORQL SPARQL endpointで実行している SPARQL クエリを作成しました。クエリの目的は、経度、緯度、寄附金を含む、米国内の大学のリストを取得することです。クエリは機能しているようですが、一部のレコードや属性が欠落しているようです。たとえば、Harvard University は、そのDBpedia レコードが存在し、属性がクエリと一致する必要があるにもかかわらず、結果に表示されません。なぜそのレコードが表示されないのかわかりません。もう 1 つの例は、 University of Massachusetts Bostonです。これはクエリ結果として表示されますが、レコードに経度と緯度の属性が含まれていても、結果にはそれらの属性が含まれていません。SPARQL クエリは次のとおりです。

PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
PREFIX d: <http://dbpedia.org/ontology/>

SELECT ?uni ?link ?lat ?long ?endowment
WHERE {
?s foaf:homepage ?link ;
   rdf:type <http://schema.org/CollegeOrUniversity> ;
rdfs:label ?uni
OPTIONAL {?s geo:lat ?lat ;
             geo:long ?long . 
          ?s d:endowment ?endowment . }
FILTER (LANGMATCHES(LANG(?uni), 'en'))

{?s dbpedia2:country "U.S."@en . }
UNION
{?s dbpedia2:country "U.S." . }
UNION
{?s d:country :United_States . }

}
ORDER BY ?s
4

2 に答える 2

5

投稿したクエリは、 を持つエンティティのみを選択しfoaf:homepageハーバード大学にはありません。(つまり、リソースにはfoaf:homepageプロパティがありません。明らかに、大学にはホームページがあります。) UMass Bostonはオプションのパターンに一致しません --

OPTIONAL {?s geo:lat ?lat ;
             geo:long ?long . 
          ?s d:endowment ?endowment . }

-- そのパターン?sは、 a geo:lat、 a geo:long、および aがある場合にのみ一致するためd:endowmentです。パターンはオプションですが、パターン全体が一致するかどうかのいずれかでなければなりません。部分一致は得られません。

DBPedia SPARQL エンドポイントが現在サポートしている組み込みの名前空間を使用するように作り直したクエリを次に示します (このリストは時間の経過とともに変更される可能性があります) OPTIONAL。必要に応じてパーツを分割し、最後に移動しました。(それらを最後に移動するのは美的考慮にすぎません。) いくつかの制約を試しましたが、興味深いことに、 を持っているのは 32 大学だけですが、 を持っているのはdbpprop:country "U.S."@en273の大学dbpprop:country "United States"@enです。全部で 7620 件の結果があります。

PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
PREFIX dbpedia: <http://dbpedia.org/resource/>
PREFIX dbpprop: <http://dbpedia.org/property/>

SELECT ?label ?homepage ?lat ?long ?endowment
WHERE {
  ?school a <http://schema.org/CollegeOrUniversity> 
  { ?school dbpedia-owl:country dbpedia:United_States }
  UNION
  { ?school dbpprop:country dbpedia:United_States }
  UNION 
  { ?school dbpprop:country "U.S."@en }
  UNION 
  { ?school dbpprop:country "United States"@en }

  OPTIONAL { ?school rdfs:label ?label .
             FILTER (LANGMATCHES(LANG(?label), 'en')) }
  OPTIONAL { ?school foaf:homepage ?homepage }
  OPTIONAL { ?school geo:lat ?lat ; geo:long ?long }
  OPTIONAL { ?school dbpedia-owl:endowment ?endowment }
}

SPARQL の結果

于 2013-06-12T03:47:05.957 に答える
1

探してfoaf:homepageいますが、これが割り当てられていないものがあります。それが私の目を引いた最初のことです。各要素を少しずつ削除して残りのクエリをチェックし、結果セットが提供するものを確認します。

于 2013-06-12T03:44:56.433 に答える