Re: What are those enumerations after the breadcrumb's :: called?

On 16 January 2015 at 15:16, Jarno van Driel <jarnovandriel@gmail.com> wrote:
> Hi folks,
>
> If I look at urls like http://schema.org/Patient and
> http://schema.org/PlasticSurgery, I see they have a '::' in their page's
> breadcrumb.
>
> Now I get the impression these are enumerations but why do the types before
> the '::' have properties and the ones after the '::' don't?
>
> Do they have any special name (like, Instance) and purpose, and is there any
> documentation which explains these?
>
> Lastly, how can I find all of them on schema.org, after all, they don't show
> up on http://schema.org/docs/full.html, so is there another way to find
> these?

We added those a while back, so that the more usual hiearchy of 'A > B
> C' would consistently (within schema.org's site naviation) indicate
that A is a superclass of B, which is a subclass of C. As Thad
mentions, the main use of types is to organize things that are members
of those types. So some particular person might be a member of the
type <http://schema.org/Person>, etc.

For most types it would never make sense for schema.org itself to try
to list all members. So you won't find us trying to maintain a list of
all people, or all places, all creative works etc. Projects like
Wikidata/Freebase/DBpedia might attempt that, but we don't within
schema.org. However sometimes a type only has a handful of well known
members. In those cases schema.org can define names and descriptions
for those members. We call these enumerations.

See http://schema.org/Enumeration (and the list at the bottom of the
page to see all those we have currently).

It is a bit 'meta', but for example http://schema.org/ActionStatusType
is an enumerated type (an "Enumeration"), whereas
http://schema.org/FailedActionStatus is a particular member of that
enumerated type.

Regarding syntax yeah they're supposed to be used as links/urls, so
 <link itemprop="relevantSpecialty"
href="http://schema.org/PlasticSurgery"> is right. However in practice
people seem often to use the simple string form e.g. "PlasticSurgery".
I think at least Google accepts those strings where they match an
expected enumeration, though it's an informal convention.

As for usage, I must admit to finding the Audience construction a bit
slippery. Refreshing my memory, I think
http://schema.org/MedicalResearcher (an instance/member of
http://schema.org/MedicalAudience ) would be a value of an 'audience'
property on for example any CreativeWork whose intended audience
covered medical researchers. You're right that you could equally think
of these audiences as subtypes of Person. In the old FOAF schema we
tried doing that more heavily (groups of people as subtypes defined
using properties) but that piece was too complex and nobody used it :)
(http://xmlns.com/foaf/spec/#term_membershipClass)

In general in schema.org, these enumerations serve are to give well
known *values* for properties.

The basic schema.org model is: things with properties, organized into
a hierarchy of types of thing. In general the values of properties are
pretty open-ended, and we're concerned much more with organizing types
and properties. However it is useful sometimes to write down a set of
specific expected values for a property. So we say that an Event has
an http://schema.org/eventStatus property, and that the value of that
property is the EventStatusType type. But then we go on (hence the ::
syntax) to list 4 specific members of that type: EventCancelled,
EventScheduled, EventPostponed, EventRescheduled. Doing so makes the
data easier to consume since you don't have 100s of different ways of
saying "cancelled", "not happening", "delayed" etc. On the other hand,
arriving at these short fixed list in a way that covers many apps and
sites is pretty tricky...

Hope this helps,

Dan

Received on Friday, 16 January 2015 18:51:03 UTC