3

Schema.org both defines and uses the predicates named domainIncludes and rangeIncludes to relate types to properties (i.e. <schema:name> <schema:domainIncludes> <schema:Person> and <schema:name> <schema:rangeIncludes> <schema:Text>).

However in RDF Schema 1.1's specification, the predicates domain and range are already defined (giving <schema:name> <rdfs:domain> <schema:Person> and <schema:name> <schema:range> <schema:Text>).

My question boils down to: are schema.org's domainIncludes and rangeIncludes predicates equivalent to the RDFS domain and range predicates?

And if so:

  • Why does schema.org define them in the first place and not just use the predicates provided by the RDF standard? It already makes use of other RDFS defined predicates such as rdfs:label and rdfs:comment. Was this a stylistic choice? (Did they not like the names "domain" and "range"?)
  • Why is this relationship between the predicates not defined using owl:equivalentProperty or an equivalent? Schema.org should be explicit when creating predicates that are already defined by accepted standards such as RDFS 1.1, especially given its mission is structuring and standardising the web.

Otherwise remain a big fan of schema.org : )

Ben Werner
  • 64
  • 6
  • 1
    The definition of `domainIncludes` states: *"Relates a property to a class that is (one of) the type(s) the property is expected to be used on."* - the important part here is **(one of) the type(s)** - so, this is basically some kind of union/disjunction. With RDFS and by using `rdfs:domain` you cannot do this, because having multiple types as `rdfs:domain` means the intersection of those, e.g. if you have `p rdfs:domain A. p rdfs:domain B` and a triple `a p b` then `a` belongs to `A` **and** also to `B`. – UninformedUser May 11 '20 at 10:35
  • And for proper disjunction in RDFS, you need OWL language to create a class expression `A or B` with the built-in predicate `owl:unionOf` – UninformedUser May 11 '20 at 10:37
  • this discussion, unfortunately, is not correct. schema enables `@Class` specifications that are fully-qualified targets for `@Property` specifications using `domainIncludes` and `rangeIncludes`. It is entirely possible to using reasoning when using those schema types. – Jay Gray May 13 '20 at 20:44
  • “It is entirely possible to using reasoning when using those schema types.” Sure, but it’s not the same as OWL domain and range reasoning. – Nicholas Car May 14 '20 at 10:17

2 Answers2

2

Why does schema.org define them in the first place and not just use the predicates provided by the RDF standard?

Schema.org doesn't want you to do inferencing using certain properties. If I knew that

<schema:name> <rdfs:domain> <schema:Person>

then whenever I saw a <schema:name> defined for an object, I could infer that the object was of type <schema:Person>. Schema.org uses <schema:name> for lots of things so uses <schema:domainIncludes> to indicate how you could or should use it but doesn't lock it down.

Why is this relationship between the predicates not defined using owl:equivalentProperty or an equivalent?

This is a policy issue for schema.org! My guess is that, like many general purpose ontologies (e.g. Semantic Sensor Network vocab), they like to keep weak semantics to allow for flexibility of application over the kind of strictness you're talking about that you need for inference.

Nicholas Car
  • 1,164
  • 4
  • 7
  • Thanks, this distinction makes sense to me. – Ben Werner May 12 '20 at 11:09
  • IMHO the above is not correct. See comment to question. – Jay Gray May 13 '20 at 20:44
  • If you can explain why the reasoning is wrong in the form of an alternative answer, I'd happily consider it @JayGray – Ben Werner May 16 '20 at 15:18
  • Will do. Am currently discussing this subject with another SME, so timing is good. We have several large `@Class` instances that work on GSDTT and have been processed by a reasoner (HermIT); need to determine how best to prune for a stackoverflow answer. May take 3-4 days to document the update. – Jay Gray May 17 '20 at 13:40
  • I’m looking forward to this too! Will be helpful with my use of schema.org. – Nicholas Car May 18 '20 at 00:29
0

If you look at RDF/OWL as a distributed DB, and an ontology as the DB Schema, then this explanation might make sense to you:

If you look at the definition of rdfs:domain, you find:

Where a property P has more than one rdfs:domain property, then the resources denoted by subjects of triples with predicate P are instances of all the classes stated by the rdfs:domain properties.

So if you have more then one domain, all those must be true! -> AND

If you have multiple schema:domainIncludess, at least one must be true. -> OR

I find that in (DB-)practice, one almost always wants the later approach (OR).

All this is the same for rdfs:range and schema:rangeIncludes.

hoijui
  • 3,615
  • 2
  • 33
  • 41