- From: Adrian Giurca <giurca@tu-cottbus.de>
- Date: Mon, 14 May 2012 10:10:29 +0200
- To: Dan Brickley <danbri@danbri.org>
- CC: Guha <guha@google.com>, Егор Антонов <elderos@yandex-team.ru>, public-vocabs@w3.org
On 5/14/2012 9:57 AM, Dan Brickley wrote: > On 14 May 2012 09:40, Adrian Giurca<giurca@tu-cottbus.de> wrote: >> Hello Dan and all, >> >> I think the Egor's post on naming Schema properties [1] opens an >> interesting discussion. Let me exemplify by considering property "awards" >> defined both by classes http://schema.org/Person and >> http://schema.org/CreativeWork. >> >> The RDF approach defines the domain of this property as the union of these >> two classes therefore when the property is named by http://schema.org/awards >> then we get: >> >> <http://schema.org/awards> rdfs:domain<http://schema.org/Person>. >> <http://schema.org/awards> rdfs:domain<http://schema.org/CreativeWork>. > This would imply that anything that has an 'awards' property is a > Person, and also, a CreativeWork. > > What we say is softer; that there is some (often nameless) class of > things that can have an 'awards' property. > > > From http://schema.org/docs/datamodel.html > "We have a set of properties > each property may have one or more types as its domains. The property > may be used for instances of any of these types. > each property may have one or more types as its ranges. The value(s) > of the property should be instances of at least one of these types." > >> However in an object oriented approach if property naming considers the >> class who introduced the property, e.g., http://schema.org/Person/awards >> and http://schema.org/CreativeWork/awards then we have two different >> properties >> >> <http://schema.org/Person/awards> rdfs:domain<http://schema.org/Person>. >> <http://schema.org/CreativeWork/awards> rdfs:domain >> <http://schema.org/CreativeWork>. >> >> Moreover, http://schema.org/CreativeWork/awards would be allowed to be used >> on any subclass of http://schema.org/CreativeWork/ as keeping with >> set-theoretic semantics of object orientation (class as a collection of all >> its instances). > Which would pull you towards treating an 'awards' on 'Sculpture' as a > different property to an awards on 'ScholarlyArticle', 'TVEpisode' > etc., multiplying entities rather generously. Maybe is not necessary. I see two issues here: 1. I will use "awards" in any @itemprop where this is allowed e.g., <div itemscope itemtype="http://schema.org/Sculpture/" > <span itemprop="awards"> some award </span> ... </div> then a Schema processor will obtain the triples by understanding that http://schema.org/Sculpture/ is a subclass of http://schema.org/CreativeWork/ and therefore, _1 rdf:type <http://schema.org/Sculpture/>. _1 <http://schema.org/CreativeWork/awards> "the award". 2. Content creators are required to use http://schema.org/CreativeWork/awards and NOT http://schema.org/Person/awards > > If some property has a domain of http://schema.org/CreativeWork then > we might expect the property to appear on anything that was a > CreativeWork, including for example a ScholarlyArticle. But (as above) > schema:domain is weaker than rdfs:domain, in that it's more of a > gentle documentation hint than a strict rule. The idea is to avoid > over-populating the schema with vague classes like "AwardableEntity" > as a common superclass of CreativeWork and Person. > > cheers, > > Dan > > >> [1] http://lists.w3.org/Archives/Public/public-vocabs/2012May/0031.html >> > >
Received on Monday, 14 May 2012 08:10:56 UTC