3

Suppose I have

:hasParent rdfs:subPropertyOf :hasAncestor . :hasAncestor rdf:type owl:TransitiveProperty .

This has the satisfying result of inferring all true ancestor relationships given the parentage. But I'm surprised it doesn't have the negative side-effect of making :hasParent effectively transitive too. Doesn't p rdfs:subPropertyOf q mean p "inherits" q's meta-properties, including a owl:TransitiveProperty?

Seemingly asymmetrically, we see with A rdfs:subClassOf B and B :hasFriend C that A :hasFriend C also since A rdf:type B. Why doesn't this happen with sub-properties too?

Wassadamo
  • 1,176
  • 12
  • 32
  • I understand that inheritance isn't really a thing in semantic web, and instead we have just a few inference rules. And property behavior is independent of classes. I guess I just found this lack of inference unintuitive and would appreciate some explanation. – Wassadamo Aug 01 '18 at 19:21

2 Answers2

4

Stanislav has already given a good answer to this question. What I want to address here is the idea mentioned in the comment that "inheritance of classes" are asymmetric with "inheritance of properties".

Object Orientation

(1) In object oriented programming languages, when class A inherits from class B, it means that the set of all the instances of class A is a subset of the set of all the instances of class B. Moreover, because attributes belong to a specific class, it means class A will have all the attributes of class B (i.e. class A inherits all the attributes of class B).

(2) When class A has an attribute c of type C, it states (more or less) that there is an association c between classes A and C.

OWL/RDFS

(1) A big difference with OWL/RDFS is that properties do not belong to a class. When we say that A rdfs:subClassOf B, we say that the set A is a subset of B. It says nothing more. As an example if we have

B a rdfs:Class .
B rdfs:label "Label for class B" .
A a rdfs:Class .
A rdfs:subClassOf B .

class A will not "inherit" the label of class B.

(2) Properties in OWL/RDFS are specified between instances, not between classes. I have written about this in detail on my blog. When you state that P rdfs:subProperty R it means that the set of pairs of individuals in P is a subset of the set of pairs of individuals in R.

But Functional Properties are inherited...

No, they are not. It just seems so due to the semantics of functional properties. If we have a property R that is functional it means a satisfying assignment for R can be {(a,1), (b,2)}. That is the same subject cannot be linked to 2 different objects. I.e. you cannot have {(a,1), (a,2)}.

Now, if you have that P rdfs:subPropertyOf R, P is subset of R and thus P will be functional as well. I.e. if R = {(a,1), (b,2)} any subset of R will be functional as well.

Henriette Harmse
  • 4,167
  • 1
  • 13
  • 22
  • Thanks for the example of how `owl:FunctionalProperty` will seem to be "inherited" in `P rdfs:subPropertyOf R`, but in fact it is just a by product of `R` being functional. We could assign a few more relation tuples rendering P non-functional, but this would not throw an inconsistency. – Wassadamo Aug 04 '18 at 05:50
  • Yes, it will not. Reasoners do not check for inconsistent roles. For more see [this](https://pdfs.semanticscholar.org/0e7c/3a5c414432ae5fad2205a88779723d42d903.pdf) paper. – Henriette Harmse Aug 05 '18 at 08:29
3

Doesn't P rdfs:subPropertyOf Q mean P "inherits" Q's meta-properties,
including a owl:TransitiveProperty?

In general, no.

  • P rdfs:subPropertyOf Q means that ∀x∀y(P(x,y) → Q(x,y)) (1)

  • Q a owl:TransitiveProperty means that ∀x∀y∀z(Q(x,y) ∧ Q(y,z) → Q(x,z)) (2)

Unfortunately, (1) and (2) do not entail ∀x∀y∀z(P(x,y) ∧ P(y,z) → P(x,z)).

You can find a countermodel online:

countermodel

By the way, a subproperty of a functional property is also functional.

Stanislav Kralin
  • 11,070
  • 4
  • 35
  • 58
  • Indeed. From these assumptions, we have Q(x,y), Q(y,z), so P(x,y), P(y,z), P(x,z), but nothing to imply anything further about Q. – Wassadamo Aug 03 '18 at 04:42
  • This makes sense. But can you shed some light on this asymmetry between properties and classes? Does it have something to do with the fact that p and q are "instances" of rdf:Propery, whereas A and B are classes? In general, can I safely assume that no sort of propagation will happen down a sub-property chain? – Wassadamo Aug 03 '18 at 04:51
  • It seems that a subproperty of functional property is functional... Unfortunately, I can't understand your example with classes. Which [pattern](https://www.w3.org/TR/rdf11-mt/#patterns-of-rdfs-entailment-informative) do you mean? – Stanislav Kralin Aug 03 '18 at 05:35
  • 2
    @PanFrancisco I have tried to address your comment in my answer. I hope it helps. – Henriette Harmse Aug 03 '18 at 14:41