- From: Richard Wallis <richard.wallis@dataliberate.com>
- Date: Wed, 15 Aug 2018 14:45:19 +0100
- To: Michael Andrews <nextcontent01@gmail.com>
- Cc: Kevin Brown <kevinbrown2354@gmail.com>, "schema.org" <public-schemaorg@w3.org>
- Message-ID: <CAD47Kz6ePL6wbJETrwsSu87Fj3VEVrnDpbn=fA3XayqtmZA63g@mail.gmail.com>
I wrote this post some while back "The role of Role in Schema.org <https://dataliberate.com/2015/04/15/the-role-of-role-in-schema-org/>" Maybe it will help in understanding its usage. ~Richard. Richard Wallis Founder, Data Liberate http://dataliberate.com Linkedin: http://www.linkedin.com/in/richardwallis Twitter: @rjw On 15 August 2018 at 14:36, Michael Andrews <nextcontent01@gmail.com> wrote: > Kevin and all, > > This is a great question to pose. I myself have wondered about the use of > Role. My personal interpretation/understanding is that Role is a stub for > more specific subtypes such as OrganizationalRole and PerformanceRole. The > number of subtypes for Role could be extensive. But the documentation for > Role itself doesn't provide much guidance on when to use it, or not to use > it. > > The LinkRole specialization suggests that role can be applied to > situations other than people. I imagine such applications will grow in the > future. All kinds of non-Person entities can have a role. > > As Thad said, there is a balance between pioneering novel implementations > -- and having confidence that machine parsers will understand the > structured data. My recommendation (and veterans please correct me > immediately if I'm mistaken) is to first propose a subtype of Role for a > specific application, to gain broader awareness of what you are trying to > accomplish, and then implement it. The risk of implementing novel > interpretations that aren't tied to any documented guidance is that no one > else will be aware of what is supposed to represent. Schema.org is a > wonderfully extensible vocabulary, but it does rely on consensus about its > meaning. > > On Tue, Aug 14, 2018 at 9:58 PM, Kevin Brown <kevinbrown2354@gmail.com> > wrote: > >> (sorry to send this twice to Umutcan, forgot to modify reply-to) >> >> Thank you for your response, Umutcan. It seems like wrt the entities I am >> working on (Organizations and Persons), several properties (telephone, >> faxNumber, email) are similar in content to the contactPoint property. >> contactPoint has the advantage that it can carry other forms of contact >> information - Viber usernames, ICQ handles, etc. (using the contactType >> property and probably defining an extension pointed to by Thing >> (additionalType) for the actual username or handle). But contactPoint has >> the disadvantage of ending up being denormalized (some entries for >> different email addresses, with names like "work" and "personal"; some >> entries for different phone numbers, like adding a "mobile" entry and >> storing the work number along with the work email in the same >> contactPoint). >> >> For this reason, I think I am going to go with your example to use Role >> as a qualifier or overload to each of the individual fields, unless someone >> says definitively I shouldn't do this: >> >> { >>> "@context": "http://schema.org" <http://schema.org>, >>> "@type": "Person", >>> "telephone": { >>> "@type": "Role", >>> "telephone": 452345345, >>> "roleName": "mobile" >>> } >>> } >>> >> >> In thinking through different scenarios, neither way really feels correct >> to me. On one hand, I'd find it confusing (using the contactPoint approach) >> looking through contactTypes like "work", "home", "personal", and >> "KingdomOfFunGame" trying to find a particular type of contact information >> for somebody (such as their email address). On the other hand, classifying >> the contact information under the particular properties (email, telephone) >> has more of a permanent semantic sense to me; I don't expect to call the >> phone number and find it disconnected, where I would for a contactType like >> "May 2018 Scarborough Festival". Maybe overloading the accepted type for >> the email, telephone, and faxNumber properties (allowing a contactType >> instead of just Text) and identifying this change in an extension pointed >> to by additionalType would make more sense. >> >> I think using role like this is an entirely different semantic meaning to >> the word than e.g. the role of an actor in a movie, or the position of a >> player on a sports team. The actor and player are vertices on a graph, and >> Role in that context is simply additional metadata describing them. Here it >> is more like an edge connecting two Things, with additional metadata >> attached to the edge. It seems to me that that things that are most like an >> edge can be used in place of any primitive type, although the documentation >> that they can be used that way on the schema.org site is obscure, >> missing, or inferred. The Things that seem to me I can use that way are: >> >> -- primitive collection or set (though no type for this exists in >> schema.org) >> -- ItemList >> -- Enumeration >> -- Role >> >> I wonder what people think about whether I can freely substitute the last >> 3 in the list above for any primitive type value for any property? >> >> Kevin >> > >
Received on Wednesday, 15 August 2018 13:45:48 UTC