1

次のコードは、境界のある地理的エリア内の場所を DBpedia に照会し、場所の名前、緯度、経度を返します。また、公園、レストラン、美術館など、場所のカテゴリを返すクエリも必要です。

次のコードは正常に動作します。

        sparql = SPARQLWrapper("http://dbpedia.org/sparql")
        sparql.setQuery("""
        PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
        PREFIX dbo: <http://dbpedia.org/ontology/>
        PREFIX category: <http://dbpedia.org/resource/Category:>
        SELECT * WHERE {
        ?s a dbo:Place .
        ?s geo:lat ?lat .
        ?s geo:long ?long .

場所のカテゴリを取得するために次のコードを追加しようとしましたが、うまくいきません:

        ?s category:cat ?cat .

何を追加/変更すればよいですか? ありがとう。

4

1 に答える 1

3

リソースのタイプ (rdfs:type) またはサブジェクト (dcterms:subject) を見つけることで、場所のカテゴリー (タイプを意味すると仮定) を取得できます。DBPedia では、1 つ目は DBPedia と Yago オントロジーに関連し、2 つ目は DBPedia の SKOS 階層です。クエリの例を次に示します。

 PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
 PREFIX dbo: <http://dbpedia.org/ontology/>
 PREFIX dcterms: <http://purl.org/dc/terms/>
        SELECT * WHERE {
        ?s a dbo:Place .
        ?s geo:lat ?lat .
        ?s geo:long ?long .
        ?s a ?type . 
        ?s dcterms:subject ?sub
} 

場所ごとに複数のタイプとサブジェクトが取得されることに注意してください。

于 2011-12-02T08:38:38.173 に答える