문제

위키피디아는 위치정보 태그 지정많은 ~의 그것은 조항.(페이지 오른쪽 상단을 보세요.)

모두 쿼리할 수 있는 API가 있나요? 위치정보 태그가 지정된 페이지 지리적 위치의 지정된 반경 내에 있습니까?

업데이트

좋아요, 그래서 잃어버린 이론의 답변을 바탕으로 이것을 시도했습니다. DBpedia 쿼리 탐색기):

PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
SELECT ?subject ?label ?lat ?long WHERE {
    ?subject geo:lat ?lat.
    ?subject geo:long ?long.
    ?subject rdfs:label ?label.
    FILTER(xsd:float(?lat) - 57.03185 <= 0.05 && 57.03185 - xsd:float(?lat) <= 0.05
        && xsd:float(?long) - 9.94513 <= 0.05 && 9.94513 - xsd:float(?long) <= 0.05
        && lang(?label) = "en"
    ).
} LIMIT 20

이는 (현지의) 원이 아닌 점 주위의 정사각형입니다.또한 지점으로부터의 거리를 기준으로 결과를 정렬하고 싶습니다.(가능하다면.)

업데이트 2

실제 거리의 근사치로 유클리드 거리를 결정하려고 하는데 SPARQL에서 숫자를 제곱하는 데 문제가 있습니다.(여기에 질문이 열렸습니다..) 유용한 내용을 얻으면 질문을 업데이트하겠습니다. 그동안 대체 접근 방식에 대한 제안을 주시면 감사하겠습니다.

업데이트 3

최종 업데이트.DBpedia를 통해 SPARQL 사용을 포기했습니다.나는 Wikipedia 기사 텍스트 야간 데이터베이스 덤프를 가져오고 지오코드에 대한 모든 기사를 구문 분석하는 간단한 파서를 작성했습니다.꽤 훌륭하게 작동하며 위치 태그가 지정된 기사에 대한 정보를 원하는 대로 저장할 수 있습니다.

이는 아마도 제가 계속 사용할 솔루션일 것입니다. 이에 대한 멋진 인터페이스를 만들려면 공개 API 액세스를 허용하거나 소스를 파서에 게시하는 것을 고려할 수 있습니다.

도움이 되었습니까?

해결책

DBPedia 엔드 포인트에서 사용하는 OpenLink virtuoso 서버에는 몇 가지 쿼리 기능이 있습니다. 나는 정보를 찾았다 http://docs.openlinksw.com/virtuoso/rdfsparqlgeospat.html 비슷한 문제에 유용합니다.

나는 다음과 같은 쿼리로 끝났습니다.

SELECT ?page ?lat ?long (bif:st_distance(?geo, bif:st_point(15.560278, 58.394167)))
WHERE{
    ?m foaf:page ?page.
    ?m geo:geometry ?geo.
    ?m geo:lat ?lat.
    ?m geo:long ?long.
    FILTER (bif:st_intersects (?geo, bif:st_point(15.560278, 58.394167), 30))
}
ORDER BY ASC 4 LIMIT 15

이 예제는 원점 위치에서 30km 이내에 지오 태깅 된 위치를 검색합니다.

다른 팁

SPARQL을 사용하여 위도/경도를 쿼리할 수 있어야 하며 DBpedia.예 (에서 여기):

SELECT distinct ?s ?la ?lo ?name ?country WHERE {
?s dbpedia2:latitude ?la .
?s dbpedia2:longitude ?lo .
?s dbpedia2:officialName ?name .
?s dbpedia2:country ?country .
filter (
  regex(?country, 'England|Scotland|Wales|Ireland')
  and regex(?name, '^[Aa]')
)
}

자신만의 쿼리를 실행할 수 있습니다. 여기.

몇 가지 도구가 나열되어 있습니다 Wikipedia의 좌표를 기반으로 한 도구 및 응용 프로그램. 그것이 당신이 찾고있는 것인지 확실하지 않지만 geosearch.py 도구는 꽤 멋져 보입니다.

API는 아니지만이 모든 지리 태그 Wikipedia 기사 세트를 다운로드하여 로컬 데이터베이스에서 직접 쿼리 할 수도 있습니다.http://www.google.com/fusiontables/datasource?dsrcid=423292

그만큼 무료 geonames.org FindNearBywikipedia 서비스 우편 번호 또는 좌표를 제공하기 위해 지리석 된 기사를 가져올 수 있습니다 (위도, 경도)

응용 프로그램 당 30,000 크레딧 (매개 변수 '사용자 이름'으로 식별)을 제공하며 시간별 한도는 2000 크레딧입니다. 크레딧은 대부분의 서비스에 대한 웹 서비스 요청입니다. 한계가 초과되면 예외가 발생합니다.

나는 SPARQL에 충분히 익숙하지 않지만 필터에서 전력을 사용할 수 있다면 Pythagoras 정리 (a^2 + b^2 = c^2)와 Pythagoras 정리를 사용하여 주어진 지점에서 주어진 기사의 거리를 쉽게 계산할 수 있습니다. 그것은 당신에게 모든 기사를 반경으로 줄 것입니다.

또 다른 옵션은 a를 얻는 것입니다 Wikipedia 데이터 덤프 그리고 직접 처리하십시오 - 이것은 Wikipedia 기사에서 언어 분석을해야 할 때 내가 한 일입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top