Search code examples
sparqlwikidata

How to use "participant" vs. "participant of" correctly?


I trying to figure out the correct usage of "participant of" (P1344) and participant (P710).

As sample I want the participants of the US Civil War. The first statement:

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

returns the Union & CSA.

So I tried the "reverse" Statement with participant of:

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

Which gives me a list of 9 names and the CSA, but not the Union.

Thus, I am a bit confused, why 1) there are several people listed, especially since I don't know any of them. (My guess those are unaffiliated ones), 2) the Union is missing, 3) how does the correct statement for participant of looks like.


Solution

  • Inverse properties aren't kept in sync, so you can find a lot of statements going in one direction without the inverse statement. Keeping inverse statements in sync was discussed here and there, but never done, and maybe for the better as it would be a big mess: in your example, if every participant of the American Civil War or of WWII were to be added to those pages, we would potentially get very very VERY overloaded pages: using the property conflict (P607), I found

    (btw, see how you can use SERVICE wikibase:label to find labels instead of using filters)

    So there seem to be a convention to link from the "small entity" to the "big entity", and keep properties such as participant (P710) for especially notable entities relatively to the subject. So the Union & CSA, rather than every single known general and soliders.