I wanted to share my reply to a recent Telegraph conversation:
Thad Guidry, [5/21/2022 10:22 AM]
[In reply to Nikki]
Agree somewhat, however in the case of P31 we already have P6609 that describes the general SKOS/OWL "transitive over" and we added the value-type constraint
https://www.wikidata.org/wiki/Q21510865 to be transitive property
https://www.wikidata.org/wiki/Q18647515But that was not the case with P279 ... where instead we stated that P279 itself is an instance of transitive property ... which is what probably confuses folks.
[[wikilinksbot]], [5/21/2022 10:22 AM]
P31 (
https://www.wikidata.org/entity/P31) – instance of
P6609 (
https://www.wikidata.org/entity/P6609) – value hierarchy property
P279 (
https://www.wikidata.org/entity/P279) – subclass of
Thad Guidry, [5/21/2022 10:26 AM]
So P279 is a
https://www.wikidata.org/wiki/Q18647515 and P31 is not.
[[wikilinksbot]], [5/21/2022 10:26 AM]
P279 (
https://www.wikidata.org/entity/P279) – subclass of
P31 (
https://www.wikidata.org/entity/P31) – instance of
Thad Guidry, [5/21/2022 10:29 AM]
Details here:
https://www.w3.org/TR/owl-ref/#TransitiveProperty-defThad Guidry, [5/21/2022 10:38 AM]
So... (lolol) .... through transitivity once an item becomes an instance of a class... then it automatically inherits all properties of that class... but only and strong ONLY WHEN it is considered an instance of a class... and not before.
Reasoners, interpreters (external, custom code, institutions, etc.) might apply transitivity "slightly" differently for different contexts, and might bucket some items prematurely to be considered an instance of a class ... but generally, the old adage is that of the above paragraph... only once it is considered an instance of.
The problem as often seen in Wikidata is that sometimes higher classes are currently not abstract enough sometimes to fulfill broader roles...
and hence... a broader higher class oftentimes just needs to be created to make things in the hierarchy a bit more sensical.