2012-03-24 3 views
1

freebase를 사용하여 도시 관련 국가 ISO 코드를 반환하려고합니다.freebase api 도시에 대한 국가 코드를 가져 오는 중

나는이 MQL이 작동하지만 특정 도시에서 작동하지 않으며 아마도 똑같은 일을하는 더 직접적인 방법이 있을까요?

{ 
    "id": "/en/amarillo", 
    "/location/location/containedby": [ 
    "/location/country/iso3166_1_alpha2": null, 
    "type": "/location/country" 
    ] 

}​ 

작은 도시에서는 간혹 작동하지 않습니다. 더 나은 방법은 Freebase 제안 (내가 도시를 모으는 데 사용하는)을 사용하여 같은 요청에 ISO 코드를 반환하는 것입니다.

답변

2

기본적으로 내가하는 방법이지만, 발견 한대로 데이터는 완전히 채워지지 않습니다. 예를 들어, 도시가 국가에 포함 된 국가에 포함되어있는 경우에 대비하여 무언가가 추가 수준으로 올라갈 것이라는 확률을 높이기 위해 할 수있는 조정 하나. 하위 쿼리에서 중괄호 집합이 누락되어 API에서 쿼리가 실패 할 수도 있습니다 (쿼리 편집기는 자동으로 이러한 문제를 수정합니다).

괄호를 추가 레벨을 상승 및 수정 수정 된 쿼리는 다음과 같습니다

{ 
    "id": "/en/avondale", 
    "/location/location/containedby": [{ 
    "/location/country/iso3166_1_alpha2": null, 
    "type":   "/location/country" 
    }], 
    "l2:/location/location/containedby": [{ 
    "id":null, 
    "/location/location/containedby": [{ 
     "/location/country/iso3166_1_alpha2": null, 
     "type":   "/location/country" 
    }] 
    }] 
}​ 

검색 API는 당신이 원하는 일을하는 데 사용할 수있는 mql_output 매개 변수를 가지고 있지만 난 그것이 Freebase Suggest에 의해 사용되는지 확신하지 못합니다. 사용할 수있는 것으로 문서화되어 있지 않습니다. 코드에 없으면 위젯을 해킹하여이를 추가하기가 어렵지 않습니다.

+0

그래, 불행히도 mql_output은 새 Search API와 새로운 Freebase Suggest에서 더 이상 사용되지 않습니다. ISO 코드를 찾기 위해 jQuery에서 별도의 MQL 읽기 API 호출을 수행해야한다. –

관련 문제