Fully agree with Markus' beautifully written explanation, although I am not completely convinced of the level theory - but it seems to work in the given examples, and a few other examples I was thinking through.
Note that "Porsche 356" could very much be an instance of "car model" - but not of "car". All the rules that Markus has mentioned would stay intact in this case. We often don't make the difference between "car" and "car model" in our day to day speech, which is a common source of confusion (i.e. "the Porsche 356 is a beautiful car" vs "the Porsche 356 is a beautiful car model" - both would be acceptable in natural language, but alas, not in Wikidata).
On Thu, Sep 25, 2014 at 3:53 PM, Markus Krötzsch < markus@semantic-mediawiki.org> wrote:
Hi,
I fully agree with Thomas and the other replies given here. Let me give some other views on these topics (partly overlapping with what was said before). It's important to understand these things to get the subclass of/instance of thing right -- and it would be extremely useful if we could get this right in our data :-)
What is a class and what is an item is often a matter of perspective, and it is certainly accepted in the ontology modelling community that one thing may need to be both.
The important thing is that "subclass of" is a relation between *similar* things (usually of the same type):
- "sports car" subclass of "car"
- "Porsche Carrera" subclass of "sports car"
- "Porsche 356" subclass of "Porsche Carrera"
Use "A subclass of B" if it makes sense to say "all A's are also B's" as in "all Porsche Carreras are sports cars".
In contrast, "instance of" is between things that are very *different* in nature:
- "Douglas Adams" instance of "human"
- "human" instance of "species"
Subclass naturally forms chains, like in my example. You can leave out some part of the chain and the result is still meaningful:
- "Porsche Carrera" subclass of "car" [makes sense]
For instance of, this does not work:
- "Douglas Adams" instance of "species" [bogus]
So if you want to organise things in a hierarchy (specific to general), then you need "subclass of". If you just describe the type of one thing, then you need "instance of". It is perfectly possible that one thing participates in both types of relationships.
In addition to these general guidelines, I would say that a well-modelled ontology should be organised in "levels": whenever you use instance of, you go to a higher level; if you use subclass of, you stay on your current level. Each thing should belong to only one level. Here is an example where this is violated:
- "Porsche Carrera" subclass of "sports car"
- "Porsche 356" subclass of "Porsche Carrera"
- "Porsche 356" instance of "sports car"
Each of these makes sense individually, but the combination is weird. We should make up our mind if we want to treat Porsche 356 as a class (on the same level as sports car) or as an instance (on a lower level than sports car), but not do both at the same time. I think "subclass of" usually should be preferred in such a case (because if it is possible to use subclass of, then it is usually also quite likely that more specific items occur later [Porsche 356 v1 or whatever], and we really will need subclass of to build a hierarchy then).
Cheers,
Markus
On 25.09.2014 20:10, Thomas Douillard wrote:
Hi, this is a long discussion :) Is is allowed by OWL2 notion called "Punning".
The rationale is that Hydrogen is a chemical elements, and that the chemical element is not a subclass of atom. Rather a chemical elements is a type of atom, so chemical elements is a metaclass : a class of class of atoms.
Wikidata-l mailing list Wikidata-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikidata-l
Wikidata-l mailing list Wikidata-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikidata-l