2013-05-28 4 views
0

저는 SPARQL의 초보자이며이 끝 점 http://spcdata.digitpa.gov.it:8899/sparql에서 작업하고 있습니다. DBpedia 그래프의 데이터에 참여하고 싶습니다. DBpedia 리소스를 참조 할 때 owl:sameAs 속성을 사용하고 있습니다.Dbpedia의 Sparql 쿼리와 다른 그래프가 예상보다 적은 결과를 반환합니다.

나는 dbp:populationTotal 값이 정의 된 클래스 pa:Comune에 속하는 모든 도시의 이름과 모집단 값을 가져오고 싶습니다. 내 검색어는 다음과 같습니다.

PREFIX pa: <http://spcdata.digitpa.gov.it/> 
PREFIX rdf: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX dbp: <http://dbpedia.org/ontology/> 
PREFIX owl: <http://www.w3.org/2002/07/owl#> 
SELECT ?label ?populationTotal WHERE { 
    ?s a pa:Comune . 
    ?s rdf:label ?label . 
    ?s owl:sameAs ?sameAs . 
    ?sameAs dbp:populationTotal ?populationTotal . 
} 
ORDER BY ?label 

불행히도 결과는 정확하지만 매우 작은 하위 집합 만 표시됩니다. 나는 체크했다. 더 많은 지방 자치 단체가 DBpedia에 대한 참조가 있는데, 속성 값은 dbp:populationTotal이다. 나는 모든 다른 스폰지 값으로 시도했지만 결과는 여전히 동일합니다. 문제는 다른 그래프에서 데이터를 가져 오는 것일 수 있지만 어떻게해야할지 모르겠습니다.


편집 : 내가 이안 디킨슨의 제안 후이 쿼리를 시도했습니다, 그리고 그것을 작동합니다!

PREFIX pa: <http://spcdata.digitpa.gov.it/> 
PREFIX rdf: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX dbp: <http://dbpedia.org/ontology/> 
PREFIX owl: <http://www.w3.org/2002/07/owl#> 
SELECT DISTINCT ?label ?sameAs ?populationTotal WHERE { 
    ?s a pa:Comune . 
    ?s rdf:label ?label . 
    ?s owl:sameAs ?sameAs . 
FILTER (REGEX(STR(?sameAs), "dbpedia", "i")). 
    SERVICE <http://dbpedia.org/sparql> 
    { 
    ?sameAs dbp:populationTotal ?populationTotal . 
    } 
} LIMIT 1700 

불행하게도,이 이탈리아 8000+ muncipalities이있다, 그래서 결과 모자했다 (I는 시간 제한없이 얻을 수있는 히트의 높은 숫자는 따라서 LIMIT (1700).).

답변

2

Virtuoso 엔드 포인트가 연결된 데이터 소스는 분명하지 않지만 데이터 집합에 인구가 많은 장소는 많지 않습니다. 다음 쿼리는 28 개의 결과 만 반환합니다.

PREFIX dbo: <http://dbpedia.org/ontology/> 
SELECT distinct * WHERE { 
    ?sa dbo:populationTotal ?total 
} 

DbPedia SPARQL 끝점에 대해 동일한 쿼리를 실행하면 더 많은 결과가 반환됩니다. http://spcdata.digitpa.gov.it:8899/sparql에 올려 놓은 Virtuoso 그래프에 데이터의 하위 집합 만로드했다고 추측 할 수 있습니다.

+0

끝점은이 데이터에 연결됩니다. http://spcdata.digitpa.gov.it/dataIPA.html (미안, 이탈리아어로만 제공됨). DbPedia 데이터를 참조 할 수 있다고 확신했지만 제안한대로 부분적으로로드 된 것처럼 보입니다. 또한 SERVICE 키워드를 시도했지만 성공하지는 못했습니다. DbPedia 만 사용 하시겠습니까? 나는 시정촌을위한 수업을 찾기가 힘듭니다. –

+1

통합 쿼리는 까다로울 수 있습니다. 'spcdata.digitpa.gov.it' 엔드 포인트에로드되는 28 개 시정촌에 대해 특별한 것이 있습니까? (당신 말이 맞아요 - 나는 두려워하는 이탈리아 인을 읽을 수 없다). 이 링크는 Virtuoso의 SPARQL 구현에 서비스 키워드를 사용하는 데 도움이 될 수 있습니다. http://boards.openlinksw.com/phpBB3/viewtopic.php?f=12&t=1709 –

+0

나는 말할 수 없었다! 28 개의 기록이 특별한 것을 공유하지 않는 것 같습니다. 나는 당신의 제안을 가지고 시험해 보았습니다. 그리고 그것은 아주 잘 작동했습니다, 감사합니다! 내 편집을 확인하십시오. –

관련 문제