2012-10-12 1 views
2

Freebase의 중간에서 이름을 얻으려면 어떻게해야합니까? 다음 table_row in music/album 테이블에는 mid에서 제공되는 다음 앨범 이름 (?)이 있습니다. 나는 이런하는 Freebase를 조회하는 경우Freebase에서 MID를 사용하여 명명 된 엔티티의 이름을 추출하십시오.

music|artist|name id origin active_start active_end genre label   home_page acquire_webpage album contribution track track_contributions concert_tours supporting_artists|Jimmy Johnson /m/01wz6jx    Rock music,Jazz fusion,Jazz,Folk rock     /m/01wz6kq,/m/01wz6kx,/m/01wz6l8,/m/01wz6kj,/m/01wz6kb,/m/01wz6l2,/m/01wz6lg  /m/0fjw1yt,/m/0dt2p4t,/m/0fbpmv2,/m/0ffbzh3,/m/0f7y3jb,/m/0fgb1g1,/m/0dy5n14,/m/0fgn9xv,/m/0dzbwfr,/m/0f6hyd3,/m/0fj70dm,/m/0ff_qzm,/m/0f9_cm4,/m/0f7l2cj,/m/0fkhd4j,/m/0flf7j8,/m/0flr1z_,/m/0fl3c6q,/m/0ffp8g9,/m/0f64lc8,/m/0fgzlz2,/m/0f885wn,/m/0fktd7t,/m/0d_j0p6,/m/0dv915z,/m/0fm0 _t2 

는 :

[{ "mid": "/m/01wz6kq", "name": null }]​는 내가 이름에 대한 "널 (null)"을 얻을 수 있습니다. 이름을 어떻게 얻을 수 있습니까? 이 중간체는 모두 명명 된 엔터티를 가리 킵니까? 다음과 같은 freebase 웹 사이트를 사용하는 경우 : http://www.freebase.com/view/m/01wz6kq 그러면 Contributor: Jimmy Johnson Album: All Night Wrong이라는 앨범 이름이 있음을 의미합니다. 그러나, 내가 http://api.freebase.com/api/experimental/topic/standard?id=/m/01wz6kq, 즉 TOPIC API를 사용하면 정보는 텍스트 필드에서 "추출 가능"합니다. 이것을하는 방법입니까? 아니면 다른 쉬운 방법이 있습니까?

답변

1

프로그래밍을 수행하는 경우이 데이터를 더 잘 볼 수있는 방법은 expl 광석 /보기를 검사 :

사실

http://www.freebase.com/inspect/m/01wz6kq

, 그것도 당신에게 쿼리를 구축하기위한 약간의 바로 가기를 제공합니다. 당신이 링크 버튼을 클릭하면

{ 
    "id": "/m/01wz6kq", 
    "/music/recording_contribution/album": { 
    "name": null 
    } 
}​ 

: 당신이 /music/recording_contribution/album 속성의 왼쪽에있는 화살표를 클릭하면, 당신은 당신이 대신 ID의 이름을 가져 오기 위해 수정할 수있는 사전 구축 된 쿼리를 얻을 수 있습니다 Query Editor에서 MQLRead link을 얻으면 JSON을 파싱하여 이름을 파싱 할 수 있습니다.

물론 프로그램에서이 작업을 수행하는 경우 관심있는 ID가 삽입 된 템플릿에서 즉석에서 URL을 구성 할 수 있습니다.

참고 : api.freebase.com을 참조하는 사항은 곧 수행되지 않으므로 원하지 않습니다. googleapis.com 엔드 포인트를 사용해야합니다.

+0

감사합니다. Tom! 이것은 굉장합니다. 당신도 옳습니다 : 저는 이것을 제 코드에 사용하려고합니다. 그러나 "검사"를 사용하는이 기술은 수작업 개입을 포함합니다. "이름"필드를 넣으려면 쿼리를 수정해야합니다. 또한 쿼리 자체를 얻는 것이 중요하지 않을까요? API를 사용하여 이름을 얻는 간단한 방법이 있습니까? – Knight

+0

죄송합니다. 내 대답에 암시 적으로 MQL 읽기 API와 함께 (매개 변수화 된) 쿼리를 사용하게되었습니다. 주제 API를 언급 한 이래로, 나는 아마도 당신이 그것을 이미 알고 있다고 생각했습니다. 내 대답을 명확하게하기 위해 업데이트했습니다 (또한 사용되지 않는 API 끝점 사용에 대해 경고합니다). –

+0

감사합니다. Tom! 한 가지 더 질문이 있지만 googleapis.com에 관한 것입니다. 내 API 키를 다른 쿼리에 사용하지만 googleapis의 주제 유틸리티를 사용하고 많은 수의 쿼리에 사용하는 경우 어떻게 키를 넣을 수 있습니까 (또는 키는 현재 필요하지 않은 것입니까?)? 이 방법은 작동하지 않습니다. [code] https://www.googleapis.com/freebase/v1/topic/m/01wz6kq&key=xyzblahblah [/ code] – Knight

0

이 엔티티는 엔티티 이름을 추출 할 경우, 일부 속성이 있습니다 BTW

재산에는 /type/object/name이 없습니다 :

/type/object/name 
/common/topic/alias 

및 위키 피 디아 키, 어떤 방법으로 처리해야 (교체 "&"과 "&", "1234"및 일부 유니 코드 기호)