- From: Martin Hepp <mfhepp@gmail.com>
- Date: Tue, 22 Nov 2016 15:31:31 +0100
- To: Alex Prut <mail@alexprut.com>
- Cc: public-schemaorg@w3.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