The meaning of inheritance in CIDOC

The meaning of inheritance in CIDOC#

relevant documents:

Riva2022 writes:

2.2 Manifestation as subtype of Expression: Inheritance is a construct frequently used in modelling and the is-a (inheritance) relationship is used to define one class as a more specialized version of another. An inherited class also implies a subset, since any instance of [JB: sub- ] class B also counts as an instance of [JB: super- ] class A. A property that is defined for a class, will also apply on any subtype of this class. It is worth underlining that inheritance is a modelling construct, it is a relationship between types of things. In IFLA LRM, inheritance is used to simplify the modelling of attributes and relationships. Most notably, all IFLA LRM entities inherit the generic LRM-E1 Res entity type, and the entity type LRM-E6 Agent is introduced as a common supertype for LRM-E7 Person and LRM-E8 Collective Agent (which is a superclass of Corporate Body etc.).

PROBLEM: As long as you solely use RDFS and OWL for modelling, there is no concept of inheritance at all – and for sure not the inheritance we know from object oriented programming oder UML.

Discussions:

HOWEVER: When the CIDOC people mention “inheritance”, they explain it via the terms domain and range:

Inheritance and Transitivity CIDOC CRM is formulated as a class system with inheritance. A property P with domain A and range B will also be a property between any possible subclasses of A and of B. (CIDOC_7.1.3, p. 21)

So, what does “domain” and “range” mean? Again we have a fundamental polysemy:

  • In a database (and also OO) community domain and range are used as integrity rules.

  • In the RDFS and OWL community domain and range are entailment rules

** About the logical expressions used in the CIDOC CRM** […] In terms of semantic data modelling, classes and properties are used to express ontological knowledge by means of various kinds of constraints, such as sub-class/sub-property links, e.g., E21 Person is a sub-class of E20 Biological Object, or domain/range constraints, e.g., the domain of P152 has parent is class E21 Person (p. 21)

[…] the above domain constraint on property P152 has parent can be formulated in first-order logic as the axiom: P152(x,y) ⇒ E21(x) (reading: for all individuals x and y, if x is a P152 of y, then x is an E21).

In CIDOC_7.1.3 the semantics of domain seems to be exactly the formal semantic of rdfs entailment pattern rdfs2 in https://www.w3.org/TR/rdf11-mt/#rdfs-entailment.

From a formal point of view this is ok. But why do the authors make use of the term “constraints” then?