Fwd: Any limitation on attributes I can quality with "Role"?

(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 Tuesday, 14 August 2018 16:29:11 UTC