2011-12-02 3 views
1

다음 코드는 한정된 지리적 영역 내의 장소에 대해 DBpedia에 쿼리하고 장소의 이름, 위도 및 경도를 반환합니다. 예를 들어 공원, 식당, 박물관 등 장소 카테고리를 반환하라는 문의가 필요합니다.SPARQL을 사용하여 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

자원의 유형 (rdfs : type) 또는 주제 (dcterms : subject)를 찾아서 장소의 범주를 가져올 수 있습니다 (유형을 의미한다고 가정). DBPedia에서 첫 번째는 DBPedia 및 Yago 온톨로지와 관련이 있고 두 번째는 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 
} 

각 장소에 대해 여러 가지 유형과 주제가 표시됩니다.

+0

감사합니다. 한 시간 전에 실제로 같은 해결책을 생각해 냈습니다. 제가 여기 게시 할 때 답을 찾았습니다. – johnjdc

관련 문제