Re: rdfs:domain and refs:range in schema.org

Hi Alex:

This is because the semantics of RDFS domain and range constructs *imply* additional type membership instead of *constraining* the applicability of a property to a class or value.

With RDFS semantics, a domain spec like so

    foo:schoolAttended rdfs:domain foo:Human.

in combination with the statement

    foo:myDog a foo:Dog ;
              foo:schoolAttended "ACME High School".

implies that

    foo:myDog a foo:Human

instead of throwing a constraint violation error.


Also, if a property had multiple classes as its range or domain, you have to create many useless complex classes in order to avoid unintended type membership inferences:

In RDFS, a domain spec like so

    foo:yearOfBirth rdfs:domain foo:Human, foo:Dog.

in combination with the statement

    foo:myDog a foo:Dog ;
              foo:yearOfBirth 1971.

implies that your dog is a dog and a human:

    foo:myDog a foo:Human, foo:Dog.

i.e. the intersection of being a dog and human, whatever that is.

The only way to avoid this are complex class definitions, like so:

     foo:yearOfBirth rdfs:domain [ a owl:Class;
         owl:unionOf (foo:Human, foo:Dog) ].

which will create many, many of those useless classes in the ontology because of combinatorial effects.

Martin
    
-----------------------------------
martin hepp  http://www.heppnetz.de
mhepp@computer.org          @mfhepp




> On 21 Nov 2016, at 16:39, Alex Prut <mail@alexprut.com> wrote:
> 
> Hello all,
> I'm looking at the schema.org raw ontology implementation and documentation, but I can’t find a reason why the ontology was implemented using the schema:domainIncludes and schema:rangeIncludes properties, instead of the standard RDFs rdfs:domain and rdfs:range?
> Thanks,
> Alexandru Pruteanu (M.Sc. in Computer Science at University of Udine)
> mail@alexprut.com
> 

-----------------------------------
martin hepp  http://www.heppnetz.de
mhepp@computer.org          @mfhepp

Received on Tuesday, 22 November 2016 14:32:06 UTC