2011-12-01 1 views

답변

6

은 질문과 대답, 그러나 여기에서 쿼리의 약간 더 나은 형태입니다 :

[{ 
    "id": "/en/white_house", 
    "mid": null, 
    "de:name": { 
    "lang": "/lang/de", 
    "value": null 
    }, 
    "en:name": null, 
    "wiki_de:key": { 
    "/type/key/namespace": "/wikipedia/de_id", 
    "value":   null, 
    "optional": True, 
    }, 
    "wiki_en:key": { 
    "/type/key/namespace": "/wikipedia/en_id", 
    "value":   null, 
    "optional": True, 
    } 
}]​ 

특수 문자가 포함 된 위키 피 디아 키는 이스케이프 처리되므로 이스케이프 해제 방법은 http://wiki.freebase.com/wiki/MQL_key_escaping과 상담해야합니다.

이 쿼리가 더 나은 이유의 일부

은 다음과 같습니다

  • 기본 언어는 영어입니다, 그래서 이름
  • 는 네임 스페이스 조회의 모호성을 제거하기위한 지정할 필요가 없습니다. 원래 쿼리는 실제로 네임 스페이스에서 "white_house"키를 찾고 "/ en/white_house"와 동일한 "/ en"에서 찾을 수 있습니다.

ID별로 조회를 수행합니다. 위키 피 디아 키 중 하나를 찾거나 "name ~ =": "white house"를 사용하여 MQL이 제공하는 조회 기능을 사용하여 해당 문자열을 포함하는 모든 항목 또는 시작 데이터 및 사용에 적합한 기타 항목을 찾을 수 있습니다 케이스.

+0

그래, 고마워, 오늘 오후에 내가 알아 낸 것도 이거 야 :)하지만 필자가 빠져있는 한 가지, 필자에게있어 필수적인 것으로 판명 된 것은 "선택 사항"을 포함하는 것이다. 이름과 위키 섹션. 그렇지 않으면 주어진 언어의 어떤 것이 존재하지 않으면 결과가 반환되지 않을 것이다! –

+0

좋은 지적. 제안에 따라 쿼리를 업데이트했습니다. "optional"을 사용할 수도 있습니다 : True 또는 "Optional": "true"어떤 프로그래밍 언어/JSON 라이브러리를 사용하고 있는지에 따라 다릅니다. –

0

MQL 놀아 후 나는 마지막으로 (white_house에 대한) 다음 쿼리를 내놓았다 :

[{ 
    "id": null, 
    "mid": null, 
    "de:name": { 
    "lang": "/lang/de", 
    "value": null 
    }, 
    "en:name": { 
    "lang": "/lang/en", 
    "value": null 
    }, 

    "key": { 
    "value": "white_house" 
    }, 
    "wiki_de:key": { 
    "/type/key/namespace": "/wikipedia/de_id", 
    "value":   null 
    }, 
    "wiki_en:key": { 
    "/type/key/namespace": "/wikipedia/en_id", 
    "value":   null 
    } 
}]