Semantics of Decompositions
The usual way of creating whole-part relationships is the hasPart
relation. There is no standardized definition of the hasPart
relation. Here are some examples:
Ontology | Relationship | Context |
---|---|---|
BFO | has_part | General part-whole relationships |
OBO | part_of | Biological structures and processes |
PROV-O | hadPrimarySource | Provenance of data and documents |
Schema.org | hasPart | Products, services, and other web entities |
NEN2660 | hasPart | Civil products |
Semantic Nuances:
An interesting aspect of decompositions arose when, in a use case, there was a suggestion to also have predicates like canHavePart
. At the class level, a predicate like that makes sense: we can indicate that something may contain something else. However, at the instance level, there is something strange. The statement my_bicycle canHavePart my_front_wheel
actually does not have any factual value. The use case was in an asset management context, and there the question is whether the wheel is on my bicycle, which requires a yes or no answer. There seems to be no value in the fact that it can be there.
However, a variant like I mayContain the_current_flu_virus
, which is also a ‘may’ or ‘can’ kind of predicate, does have value: people might avoid contact with me because I cannot exclude having the contagious virus.
Thus, it seems that the canHave
, mayContain
, etc., predicates have different value when used in instance relations.