The meaning of inheritance in CIDOC#
relevant documents:
Riva2022: [RvZumerA22] https://repository.ifla.org/bitstream/123456789/2217/1/144-riva-en-paper.pdf
CIDOC_7.1.3: https://www.cidoc-crm.org/sites/default/files/cidoc_crm_version_7.1.3.pdf
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:
OWL Class and Subclass Property Inheritance https://stackoverflow.com/questions/37854557/owl-class-and-subclass-property-inheritance
Inheritance terminology not appropriate for RDFS and OWL #1228 w3c/dxwg#1228
RDFS/ OWL Inheritance with Joseki+Pellet https://web.archive.org/web/20130831164956/http://answers.semanticweb.com/questions/619/rdfs-owl-inheritance-with-josekipellet
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?