2016-10-16 13 views
1

내 sparql 쿼리에서 원하는 것은 모든 유럽 국가의 목록을 가져 오는 것이 아니라 모든 정보를 원합니다. 예를 들어, 그들의 자본, 통화, 면적 km 등. 최종 목표는 내가 프로 테지 (protege)에서 얻은 데이터 세트를 사용하는 것입니다. 내가 시도 쿼리는 다음과 같이 보았다 :모든 유럽 국가에 대한 정보 검색

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
PREFIX yago: <http://dbpedia.org/class/yago/> 
PREFIX dbo: <http://dbpedia.org/ontology/> 
PREFIX db: <http://dbpedia.org/> 
PREFIX dbp: <http://dbpedia.org/property/> 

SELECT DISTINCT ?country ?capital ?area ?currency ?wealth 

WHERE { 

?country rdf:type yago:EuropeanCountries; 
    dbo:capital ?capital; 
    dbp:areaKm ?area; 
    dbp:currencyCode ?currency; 
    dbp:gdpPppPerCapita ?wealth . 
} 

이 처음 일 듯하지만, 어제의 그것은 더 이상하지 않습니다. 그래서 내 질문은, 어떻게 모든 유럽 국가와 dbpedia sparql을 사용하여 주어진 속성을 얻을 수 있습니다.

미리 감사드립니다. 어제부터

답변

1

는 DBpedia 2016-04는 http://dbpedia.org/sparql에로드되어 지금까지 내가는 야고 데이터는 (아직?)로드되지 볼 수

적어도,이 간단한 쿼리는 이미 어떤을 반환하지 않습니다 결과 :

PREFIX yago: <http://dbpedia.org/class/yago/> 
SELECT DISTINCT * WHERE { 
    ?country a yago:EuropeanCountries  
} 
DBpedia 범주 (과 야고 유형이 더 많거나 적은 동일)를 사용하여

대체 쿼리 : 나는에 일부 속성을 넣어,

PREFIX dbo: <http://dbpedia.org/ontology/> 
PREFIX yago: <http://dbpedia.org/class/yago/> 
PREFIX dbp: <http://dbpedia.org/property/> 
PREFIX dct: <http://purl.org/dc/terms/> 

SELECT DISTINCT * 
WHERE 
    { ?country dct:subject <http://dbpedia.org/resource/Category:Countries_in_Europe> ; 
       dbo:capital ?capital 
    OPTIONAL 
     { ?country dbp:areaKm ?area } 
    OPTIONAL 
     { ?country dbp:currencyCode ?currency } 
    OPTIONAL 
     { ?country dbp:gdpPppPerCapita ?wealth } 
    } 

주 적어도 dbp:currencyCodedbp:gdpPppPerCapita에 대해서는 선택 사항으로 데이터가 없습니다 (더 이상 없습니까?).