W3C home > Mailing lists > Public > public-vocabs@w3.org > March 2014

Commercial @Service vs Commercial @MedicalProcedure - how to mark it up correct?

From: Jarno van Driel <jarno@quantumspork.nl>
Date: Mon, 31 Mar 2014 22:34:57 +0200
Message-ID: <CAFQgrbZ+U6tSY3OrZktsUfmP9ciMOOcvniSgZn0rrb04kR_cZg@mail.gmail.com>
To: Public Vocabs <public-vocabs@w3.org>
I'm currently working on markup for a @MedicalClinic and I am confused
about which direction to take the markup for the services they offer.

When marking up a @LocalBusiness, I can link the services they offer by
means of @itemOffered, and I can specify that even further by throwing some
Goodrelations into the mix. As illustrated below:

<div itemid="local-business" itemscope itemtype="
http://schema.org/LocalBusiness">
<div itemprop="name">SomeLocalBusiness</div>
 <div itemid="offer" itemprop="makesOffer" itemscope itemtype="
http://schema.org/Offer">
 <div itemprop="businessFunction" itemscope itemtype="
http://schema.org/BusinessFunction">
 <link itemprop="url" href="http://purl.org/goodrelations/v1#ProvideService
">
 </div>

<div itemid="product-service" itemprop="itemOffered" itemscope itemtype="
http://schema.org/Product http://schema.org/Service">
 <div itemprop="name">SomeProductOrService</div>
 <link itemprop="additionalType" href="
http://www.productontology.org/doc/Plastic_surgery">
 <link itemprop="provider" href="local-business">
<link itemprop="offers" href="offer">
 </div>
</div>
</div>

Yet when I look at the available properties for @MedicalClinic I also see
@availableService, which has @MedicalProcedure as an expected type. And
it's description says: "A medical service available from this provider".

First off, @MedicalProcedure isn't a subClass of @Service so where does the
service in the @availableService description come from? In the context of
schema.org, can't it only be a service if @MedicalProcedure either is a
subClass of @Service or part of a Multi-Type Entity like '@Service
@MedicalProcedure'?

Secondly, @MedicalProcedure has no property to link it to it's @provider.
Now imagine the @MedicalProcedure being the main object on the page, how
would I link it to it's provider since it has no @provider property? Would
I have to mark it up as a Multi-Type Entity like '@Service
@MedicalProcedure' to be able to add @provider to the @MedicalProcedure?
Which seems strange to me since, ambiguously enough, it is a service, so
shouldn't it have that property by default?

Thirdly, there is no way to indicate the @MedicalProcedure is a commercial
service. According to it's description it is "A process of care..." but it
has no property to indicate it has a commercial nature or not. This can
only be indicated if one marks it up as a Multi-Type Entity like '@Product
@MedicalProcedure'. Wouldn't it be easier if it simply had the @offers
property?

Lastly (guess what's coming now   ;)   ),
If you add up all the above this leads me to come to the conclusion that to
markup a @MedicalProcedure as a commercial @Service, offered and provided
by a @MedicalClinic, I would have to make use of a Triple-Type Entity as
'@Product @Service @MedicalProcedure'. Which seems heavily bloated and over
the top to me but to which I don't see any alternative.

Is there anything I'm missing here? Because even if it is sort of doable,
shouldn't there be a different mechanism to prevent this level of markup
complexity? Am I overlooking the obvious or does the @MedicalProcedure
simply need some extra properties to simplify the markup?

Now if you have the stomach for it it, I've also written a code example of
what I'm talking about:

<div itemid="medical-clinic" itemscope itemtype="
http://schema.org/MedicalClinic">
<link itemprop="availableService" href="medical-procedure">
<span itemprop="name">SomeMedicalClinic</span>
 <div itemid="offer" itemprop="makesOffer" itemscope itemtype="
http://schema.org/Offer">
<div itemprop="businessFunction" itemscope itemtype="
http://schema.org/BusinessFunction">
<link itemprop="url" href="http://purl.org/goodrelations/v1#ProvideService"
/>
</div>

<div itemid="medical-procedure" itemprop="itemOffered" itemscope itemtype="
http://schema.org/Product http://schema.org/Service
http://schema.org/MedicalProcedure">
<span itemprop="name">SomeMedicalProcedure</span>
<link itemprop="relevantSpecialty" href="plastic-surgery" />
<link itemprop="provider" href="medical-clinic" />
<link itemprop="offers" href="offer" />
</div>
</div>

<div itemid="plastic-surgery" itemprop="medicalSpecialty" itemscope
itemtype="http://schema.org/PlasticSurgery">
<link itemprop="additionalType" href="
http://www.productontology.org/doc/Plastic_surgery" />
<link itemprop="sameAs" href="http://en.wikipedia.org/wiki/Plastic_surgery"
/>
<link itemprop="sameAs" href="http://www.wikidata.org/wiki/Q182442" />
<link itemprop="sameAs" href="http://dbpedia.org/page/Plastic_surgery" />
<link itemprop="sameAs" href="http://www.freebase.com/m/0bk8v" />
<span itemprop="recognizingAuthority" itemscope itemtype="
http://schema.org/Organization">
<meta itemprop="name" content="American Society of Plastic Surgeons" />
<meta itemprop="alternateName" content="ASPS" />
<link itemprop="url" href="http://www.plasticsurgery.org" />
<link itemprop="sameAs" href="
http://en.wikipedia.org/wiki/American_Society_of_Plastic_Surgeons" />
<link itemprop="sameAs" href="http://www.wikidata.org/wiki/Q4745105" />
<link itemprop="sameAs" href="
http://dbpedia.org/page/American_Society_of_Plastic_Surgeons" />
<link itemprop="sameAs" href="http://www.freebase.com/m/0crf44" />
</span>
</div>
</div>
Received on Monday, 31 March 2014 20:35:25 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:29:38 UTC