2017-01-24 2 views
0

"참여자"(P1344)와 참여자 (P710)의 올바른 사용법을 파악하려고합니다."참여자"대 "참여자"를 올바르게 사용하는 방법은 무엇입니까?

견본으로 나는 미국 남북 전쟁 참가자를 원합니다. 첫 번째 문 :

SELECT ?label WHERE { 
    wd:Q8676 wdt:P710 ?subj. 
    ?subj rdfs:label ?label. 
    FILTER((LANG(?label)) = "en") 
} 

는 연합 & CSA를 반환합니다.

SELECT ?label WHERE { 
    ?subj wdt:P1344 wd:Q8676. 
    ?subj rdfs:label ?label. 
    FILTER((LANG(?label)) = "en") 
} 
나에게 9 이름과 CSA의 목록을 제공

아닌 연합 (EU) :

그래서 나는의 참가자와 함께 "반대"정책을 시도했다.

저는 약간 혼란 스럽습니다. 이유는 무엇입니까? 1) 몇몇 사람들이 나열되어 있습니다. (내 추측은 그것들과 관련이없는 것들이다), 2) 연합이 빠져있다, 3) 어떻게 참가자의 모습이 옳은가?

+1

일단 'p'와'p_inv'의 반대가 존재한다면, 어떤 사람들은 하나와 다른 것을 사용한다고 생각합니다. 추론하지 않고서는 단언 할 수없는 사실만을 얻습니다. – AKSW

+2

데이터 자체에 대해서는 아무 말도 할 수 없습니다. 나는 도메인 전문가가 아니다. 단정 된 정보를 얻으려면 SPARQL UNION을 사용하거나'p |^p_inv'와 같은 속성 경로를 사용할 수 있습니다. 귀하의 경우에는? subj wdt : P1344 |^wdt : P710 wd : Q8676.' – AKSW

답변

1

역 특성이 동기화되어 있지 않으므로 inverse 문없이 한 방향으로 많은 명령문을 찾을 수 있습니다. 반대 문을 동기화 상태로 유지하는 방법에 대해서는 here에 대해 논의했으나 한 번도 한 번도 해본 적이 없으며 어쩌면 더 큰 문제가 될 수도 있습니다. 예를 들어 American Civil War 또는 WWII의 모든 참가자를 페이지에 추가 할 경우 잠재적으로 아주 아주 아주 과부하 페이지를 얻을 것입니다 : 재산 conflict (P607)를 사용하여, 나는

2536 known participants to the American Civil War

  • 31698 known participants to WWII을 발견 (BTW, 대신 여과 및 분리를 사용하는 라벨을 찾기 위해 SERVICE wikibase:label을 사용하는 방법을 참조 ers)

    따라서 "작은 개체"에서 "큰 개체"로 연결하고, 대상과 관련하여 특히 주목할만한 엔터티의 속성을 participant (P710)과 같이 유지하는 것이 좋습니다. 따라서 Union은 알려진 모든 일반 및 고체가 아닌 & CSA입니다.