2017-03-25 1 views
1

어떻게해야할지 모르겠지만 Wikipedia의 게임 타이틀에는 22,000 개의 고유 식별자가 있습니다. 나는 그들의 Public API를 통해 그들을 가지고 있지만 지금은 붙어있다.고유 식별자가 지정된 Wikidata 값 및 속성?

내가 가리키는 각 기사의 모든 속성을 가져 오려면 해당 식별자를 사용해야합니다. 모든 다른 속성 식별자 ("가져온 위치"를 의미하는 P143과 같은)를 보유하고있는 파일이 있으므로 문자열로 변환 할 수 있습니다. 그러나 내가 알아낼 수없는 것은 그 속성에 대한 값을 얻는 방법입니다. 새로운 고유 식별자를 얻었습니다.

Here is a Query I tried Duke Nukem 3D는 영어로만 제공됩니다. 다음은 해당 쿼리의 스 니펫입니다.

"P143": [ 
    { 
     "snaktype": "value", 
     "property": "P143", 
     "datavalue": { 
      "value": { 
       "entity-type": "item", 
       "numeric-id": 206855, 
       "id": "Q206855" 
      }, 
      "type": "wikibase-entityid" 
     }, 
     "datatype": "wikibase-item" 
    } 
] 

이 속성의 값을 가져 오는 방법을 알 수 없습니다. 누구든지 도움을받을 수 있다면 정말 고맙겠습니다.

이러한 속성에서 값을 얻으려면 어떻게해야합니까?

답변

1

당신은 가까이 있지만 실종 된 것이 하나 있습니다. 값이라고 부르는 것은 Wikidata가 레이블 (항목이 쿼리에서 반환 된 Q 번호 임)이라고 부르는 것입니다. 따라서 실제로 가치를 얻고 있지만 레이블에 대한 새로운 쿼리를 수행해야합니다. 예를 들어 위에서 만든 쿼리에서 "labels"이라는 섹션이 있는데 쿼리에서 "Duke Nukem 3D"라는 레이블을 반환한다는 것을 알 수 있습니다. 그것은 당신이 찾고있는 "가치"일 것입니다. 만약 당신이 insert the Q-number from your snippet이라면 그것이 "위키피디아의 러시아어 판"이라는 것을 알게 될 것입니다.

+0

모든 게임 (모두 22,000)에 대해 이러한 개별 쿼리를 먼저 값을 얻은 다음 개별 레이블을 가져야합니다. 이 일을하는 더 똑똑한 방법이 있습니까? 그것은 며칠이 걸리고 아마도 API에 많은 스트레스를 줄 수 있습니다. Lol – OmniOwl

+0

글쎄, 다음과 같이 ID : S를 한번에 50 개씩 보낼 수 있습니다 (봇 계정을 얻는다면 500 번). https : // www.wikidata.org/w/api.php?action=wbgetentities&ids=Q206855|Q728061&languages=en&props=labels 여기에서 문서를 참조하십시오 : https://www.wikidata.org/w/api.php?action=help&modules=wbgetentities – Ainali

+0

그것은 내가 현재 작업하고있는 일련의 데이터에 대해 한 번 더 중요합니다. 나는 영화 나 책과 같은 것들을 미래에 더 많이 얻을 것입니다. – OmniOwl

관련 문제