Update vocabulary expansion to make it mandatory, but limit scope to properties only.
authorGregg Kellogg <gregg@kellogg-assoc.com>
Sat, 08 Sep 2012 18:26:23 -0700
changeset 129 a4e46999a5c5
parent 128 dac41fa702c8
child 130 6bc9cda42cf5
Update vocabulary expansion to make it mandatory, but limit scope to properties only.
microdata-rdf/index.html
--- a/microdata-rdf/index.html	Mon Sep 03 12:09:08 2012 -0600
+++ b/microdata-rdf/index.html	Sat Sep 08 18:26:23 2012 -0700
@@ -715,26 +715,20 @@
     generated both <code>unordered</code> and <code>ordered</code> representations, and there were <code>datatype</code>
     support, the <a>registry</a> could be reduced to a simple list of URLs without any further structure necessary.</p>
 </section>
+</section>
 
-<section class="informative">
+<section>
   <h2>Vocabulary Expansion</h2>
   <p>Microdata requires that all values of <a class="aref">itemtype</a> come from the same vocabulary. This
     is required as <a class="aref">itemprop</a> values are resolved relative to that vocabulary. However,
     it is often useful to define an <a>item</a> to have types from multiple different vocabularies.</p>
-  <p>Similarly, there may be cases when a single vocabulary is used, but vocabulary classes or properties
-    have equivalents in other common vocabularies (e.g.,
-    <cite><a href="http://www.heppnetz.de/ontologies/goodrelations/v1.html">Good Relations</a></cite>,
-    Friend of a Friend ([[FOAF]]) and
-    Dublin Core ([[DC11]])).</p>
-  <p>Vocabulary Expansion is intended to allow terms to be mixed in
-    from other vocabularies, using a mechanism based on that in RDFa Core 1.1 
-    Vocabulary Expansion [[!RDFA-CORE]].</p>
   <p>Vocabulary expansion relies on a very small
     sub-set of OWL entailment [[!OWL2-OVERVIEW]] to generate triples based on 
     rules and property/class relationships described in the <a>registry</a> and
     in referenced vocabularies.
     Within the <a>registry</a>, a property definition may have either <code>equivalentProperty</code>
-    or <code>subPropertyOf</code> keys having a IRI value of the associated property. Such an
+    or <code>subPropertyOf</code> keys having a IRI value (or array of IRI values)
+    of the associated property. Such an
     entry causes the processor to generate triples associating the source
     property IRI with the target property IRI using either
     <code>http://www.w3.org/2000/01/rdf-schema#subPropertyOf</code> or
@@ -746,7 +740,7 @@
     after the triples have been generated, or as the last 
     processing step.</p>
   <p>For example, the <a>registry</a> definition for the <em>additionalType</em> property
-    within schema.org, defines <em>additionalType</em> to have an <a>subPropertyOf</a>
+    within schema.org, defines <em>additionalType</em> to have an <a>rdfs:subPropertyOf</a>
     relationship with <code>http://www.w3.org/1999/02/22-rdf-syntax-ns#type</code>.</p>
 
 <pre class="example" data-transform="updateExample">
@@ -804,16 +798,12 @@
 
 <section>
   <h2>Vocabulary Entailment</h2>
-  <p class="note">This section should be normative, but tooling issues get in the way.</p>
   <p> For the purpose of vocabulary processing, microdata uses a very
     restricted subset of the OWL vocabulary and is based on the RDF-Based
       Semantics of OWL [[!OWL2-RDF-BASED-SEMANTICS]].
     Vocabulary Entailment uses the following terms: </p>
   <ul>
-    <li><code>rdf:type</code></li>
-    <li><code>rdfs:subClassOf</code></li>
     <li><code>rdfs:subPropertyOf</code></li>
-    <li><code>owl:equivalentClass</code>
     <li><code>owl:equivalentProperty</code>
     </li>
   </ul>
@@ -831,9 +821,8 @@
     relevant rules are, using the rule identifications in
     <cite><a href="http://www.w3.org/TR/2009/REC-owl2-profiles-20091027/#Reasoning_in_OWL_2_RL_and_RDF_Graphs_using_Rules">
       section 4.3</a></cite>
-    of [[!OWL2-PROFILES]]): <code>prp-spo1</code>, <code>prp-eqp1</code>, 
-    <code>prp-eqp2</code>, <code>cax-sco</code>, <code>cax-eqc1</code>, and 
-    <code>cax-eqc2</code>.</p>
+    of [[!OWL2-PROFILES]]): <code>prp-spo1</code>, <code>prp-eqp1</code>, and
+    <code>prp-eqp2</code>.</p>
   <p>The entailment described in this section is the <em>minimum</em>
     useful level for microdata. Processors may, of course, choose to follow
     more powerful entailment regimes, e.g., include full RDFS [[!RDF-MT]]
@@ -841,23 +830,25 @@
     applications may perform datatype validation by checking <code>rdfs:range</code>
     of a property, or use the advanced facilities offered by, e.g., OWL’s
     property chains to interlink vocabularies further.</p>
-  <p>Processors supporting Vocabulary Expansion MUST perform expansion as
-    described in <cite><a href="http://www.w3.org/TR/rdfa-syntax/#s_vocab_entailment">RDFa Vocabulary Entailment</a></cite> from [[!RDFA-CORE]].</p>
+  <p class="note">[[RDFA-CORE]] implements a more complete form of vocabulary entailement, 
+    including retrieving the vocabulary URI to find additional class and property expansion
+    definitions, as
+    described in <cite><a href="http://www.w3.org/TR/rdfa-syntax/#s_vocab_entailment">RDFa Vocabulary Entailment</a></cite>.
+    Microdata implementations MAY use RDFa Vocabulary Entailment as an alternative to implementing
+    a separate entailment algorithm.</p>
 </section>
 
 <section>
   <h2>Vocabulary Expansion Control of Microdata Processors</h2>
-  <p> Conforming processors are not required to provide vocabulary expansion. </p>
-  <p> If a processor provides vocabulary expansion, it MUST NOT be
-    performed by default. Instead, the processor MUST provide an option, <code>vocab_expansion</code>,
-    which, when used, instructs the processor to perform a vocabulary
-    expansion as an additional processing step after all other triples have been generated. </p>
+  <p>Conforming processors MUST perform vocabulary expansion.</p>
+  <p>If vocabulary expansion is performed using [[RDFA-CORE]] voabulary expansion, MUST NOT
+    include the vocabulary dereferencing steps unless the <code>vocab_expansion</code>
+    option is passed to the microdata processor.</p>
   <p class="note"> Although vocabulary expansion is described in terms of
     OWL entailment rules, processors
     are free to use any process which obtains equivalent results.</p>
 </section>
 </section>
-</section>
 
 <section>
   <h1>Algorithm</h1>
@@ -1167,8 +1158,7 @@
         </dl>
       </li>
       <li>
-        Optionally, if the processor is invoked with the <code>vocab_expansion</code> option, perform
-        <a href="#vocabulary-entailment">Vocabulary Entailment</a>.</li>
+        Perform <a href="#vocabulary-entailment">Vocabulary Entailment</a>.</li>
     </ol>
   </section>
 
@@ -1333,8 +1323,8 @@
         </ol>
       </li>
       <li>If the <a>registry</a> entry for <a>propertyURI</a>
-        has an <code>equivalentProperty</code> key, and such a triple has not
-        already been generated, generate the following triple using the
+        has an <code>equivalentProperty</code> key,
+        generate the following triple using the
         <em>value</em> of that key:
         <dl class="triple">
           <dt>subject</dt>
@@ -1344,6 +1334,7 @@
           <dt>object</dt>
           <dd><em>value</em></dd>
         </dl>
+        <p>If the value is an array, generate a triple for each value of that array.</p>
       </li>
       <li>If the <a>registry</a> entry for <a>propertyURI</a>
         has an <code>subPropertyOf</code> key, and such a triple has not
@@ -1357,6 +1348,7 @@
           <dt>object</dt>
           <dd><em>value</em></dd>
         </dl>
+        <p>If the value is an array, generate a triple for each value of that array.</p>
       </li>
       <li>Return <em>expandedURI</em>.</li>
     </ol>