Reputation: 74
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:
rdfs:label
and rdfs:comment
. Was this a stylistic choice? (Did they not like the names "domain" and "range"?)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 : )
Upvotes: 4
Views: 879
Reputation: 3914
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 predicateP
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!
RDFS -> AND
If you have multiple schema:domainIncludes,
at least one must be true.
schema.org (& DC) -> 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.
Addition (January 2024):
There are actually two versions of the *Includes
properties
in widely used ontologies:
http://schema.org/
): http://purl.org/dc/dcam/
): They seem to have the same meaning, as far as I can decipher.
Sadly, neither of the two links to the other. :/
Upvotes: 1
Reputation: 1251
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.
Upvotes: 3