- From: Dan Brickley <danbri@google.com>
- Date: Thu, 22 Jan 2015 19:15:58 +0000
- To: Gregg Kellogg <gregg@greggkellogg.net>
- Cc: Martin Hepp <martin.hepp@unibw.de>, ☮ elf Pavlik ☮ <perpetual-tripper@wwelves.org>, W3C Web Schemas Task Force <public-vocabs@w3.org>
On 22 January 2015 at 18:28, Gregg Kellogg <gregg@greggkellogg.net> wrote: >> On Jan 22, 2015, at 3:48 AM, Martin Hepp <martin.hepp@unibw.de> wrote: >> >> Ah! Yes, that is also a viable way, much better than my proposal! The key advantage over my proposal is that the Python code for generating the documentation does not need to change - rangeIncludes effectively becomes rangeHint and domainIncludes domainHint, and the integrity constraint axioms will be modeled using rdfs:domain and rdfs:range with complex class definitions, as in this example (from GoodRelations): >> >> gr:condition a owl:DatatypeProperty; >> rdfs:comment "A textual description of the condition of the product or service, or the products or services included in the offer (when attached to a gr:Offering)"@en; >> rdfs:domain [ a owl:Class; >> owl:unionOf (gr:Offering gr:ProductOrService) ]; >> rdfs:isDefinedBy <http://purl.org/goodrelations/v1>; >> rdfs:label "condition (0..1)"@en; >> rdfs:range rdfs:Literal. > > The difference between using the unionOf and domainIncludes variation is that domainIncludes is open, and allows other vocabularies to extend the domain for their purpose (as, for example, yoursports.com does). Whereas, unionOf uses an rdf:List, which can't be extended. Other than the extensibility issues, then domain/rangeIncludes are essentially the same as unionOf. domainIncludes can be considered closed with respect to a particular release. Schema.org is in the 'living standard' traditional of perpetually evolving vocabularies, but it does have the notion of a release. At each such snapshot, we say "here's how it looks right now". But we don't make strong and brittle assertions (whether in OWL or RDFS) that might trip up implementors whose applications subsequently encounter data from a future expanded version. Since we are so cross domain, it is pretty hard to predict up front what the repercussions might be of adding in some new vocabulary. Usually it involves tweaks to textual definitions, occasionally the addition of more types as expected range values or domains on an existing property. Dan
Received on Thursday, 22 January 2015 19:16:26 UTC