2016-06-29 2 views
1

a city's climate table에있는 모든 데이터를 제공하는 데이터 세트를 얻으려고하고 있지만 문제가 있습니다.기후 데이터를 dbpedia로 도시에 참여시키는 방법은 무엇입니까?

나는이 일을 할 수 있었고 나 자신에 대해 꽤 잘 느꼈다. 이것을 dbpedia's virtuoso client에 연결하면 dbpedia가 가진 모든 도시와 모든 국가가 나에게 제공됩니다.

PREFIX dbpedia-owl: <http://dbpedia.org/ontology/> 
SELECT DISTINCT ?city_name ?country 
WHERE { ?city rdf:type dbpedia-owl:City ; 
      rdfs:label ?city_name; 
      dbpedia-owl:country ?country 
    FILTER (langMatches(lang(?city_name), "EN")) . 
} 

업데이트 : 내가 (예를 들어, dbpedia.org/property/aprHighC)를 찾고 있어요하지만 문제가 내 출력을 추가하는 데있어 무엇을 줄 것으로 보인다 속성을 발견했다.

PREFIX dbpedia-owl: <http://dbpedia.org/ontology/> 
SELECT DISTINCT ?city_name ?country ?aprHighC 
WHERE { ?city rdf:type dbpedia-owl:City . 
    ?city rdfs:label ?city_name . 
    ?city dbpedia-owl:country ?country 
FILTER (langMatches(lang(?city_name), "EN")) . 
} 

오류 : Variable 'aprHighC' is used in the query result set but not assigned을 제공합니다. 그것을 어떻게 할당합니까?

+2

이 속성은 DBpedia에서 사용되는 것으로 생각하지 않습니다. 'SELECT * {? s dbo : climate? climate.}'시도해보십시오. 결과를 얻지 못할 것입니다. 또는'dbo : climate'의 도메인 인'dbo : Place '에 대한 리소스 페이지를 열고 기후와 관련된 모든 속성을 찾으십시오. –

+3

그 테이블이 DBpedia 추출 프레임 워크에 의해 처리되지 않는다고 생각합니다. 이제는 이러한 데이터를 추출하기위한 몇 가지 연구가 진행 중이지만 지금은 데이터가 주로 위키 피 디아 입력 페이지의 오른쪽에있는 infoboxes에서 제공됩니다. 아니면 기후 데이터를 어디서 얻었습니까? – AKSW

+0

작은 업데이트를 만들었습니다. 누구든지 새로운 문제에 대한 의견을 갖고 있습니까? – Phil

답변

0

다음 쿼리는 1 월 평균 매일 최고치 (° C)를 제공합니다. 다른 기후 항목을 추가하는 것은 "OPTIONAL"로 시작하는 줄을 복사하고 항목 및 변수 이름을 janHighC에서 얻으려는 모든 것으로 변경하는 것만 큼 간단합니다.

PREFIX dbpedia-owl: <http://dbpedia.org/ontology/> 
SELECT * { 
{ ?city rdf:type dbo:City . 
?city rdf:type schema:City . 
?city rdfs:label ?name 
} 
OPTIONAL {?city dbp:janHighC ?janHighC .} 
} 

그러나 대부분의 도시에는이 정보가 없습니다. 이런 식으로 데이터를 포기해야했습니다.

2

두 번째 쿼리에서 쿼리를 얻으려면 rdfs:label, dbpedia-owl:countrydbpedia-owl:climate의 세 가지 속성이 있어야합니다. 귀하의 질의는 DBPedia 데이터에 레이블 및 국가 속성이있는 도시가 있지만 기후는 아닙니다. dbpedia-owl:City의 모든 구성원은 이러한 속성을해야합니다하지 않는 것이

SELECT DISTINCT ?p 
WHERE { 
    ?city rdf:type dbpedia-owl:City ; 
     ?p ?o . 
} 

참고하지만, 그것은 당신에게 속성이 사용 되는가의 범위를 제공합니다 : 속성이 dbpedia-owl:City의 구성원에 대한 발견 다만 무엇을보고 다음보십시오. 접두사가 하나의 당신보다 다른 것을는 경우가 될 수 있도록

SELECT ?s 
WHERE { 
    ?s dbpedia-owl:climate ?climate 
} 

나는 어떤을 찾지 못했습니다 : 그것을 다른 방법을 찾고

, 당신은 특정 회사의 dbpedia-owl:climate 속성을 사용하여 무엇을 요청할 수 있습니다 사용하고 있습니까? 나는 속성 이름을 두 번 확인하는 것이 좋습니다.

실제로 데이터 저장소에있는 것을 찾으려면 SPARQL을 사용하는 것이 좋습니다. LIMIT을 사용하면 시스템을 압도하지 않고도 데이터의 일부를 볼 수 있습니다.

+0

첫 번째 쿼리는 정말 도움이되었습니다! 내가 찾고있는 모든 속성이 여기에 있다고 생각합니다 (예 : aprHighC). 그런 식으로 그 속성을 가져 오려고합니다. Q : 질문을 업데이트하거나 답변을 게시해야합니까? – Phil

+0

물론 언제든지 업데이트 할 수 있습니다. – scotthenninger

관련 문제