--- 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>