Make md:item a list (if more than one item). Correct some other list generation steps.
--- a/microdata-rdf/index.html Tue Oct 11 12:07:56 2011 -0700
+++ b/microdata-rdf/index.html Tue Oct 11 12:22:05 2011 -0700
@@ -475,14 +475,28 @@
algorithm generates:
</p>
+ <p>Set <em>item list</em> to an empty list.</p>
+
<p>For each element that is also a <tref>top-level item</tref> run the following algorithm:</p>
<ol class="algorithm">
<li>
- <a href="generate-the-triples">Generate the triples</a> for an item item, using the
+ <a href="generate-the-triples">Generate the triples</a> for an item <em>item</em>, using the
<tref>evaluation context</tref>.
Let <em>result</em> be the (<tref>URI reference</tref> or <tref>blank node</tref>) subject returned.
</li>
<li>
+ Append <em>result</em> to <em>item list</em>.
+ </li>
+ <li>
+ If <em>item list</em> contains multiple values, <a
+ href="generate-collection">generate an RDF Collection</a> <em>list</em> from the ordered list of values.
+ Set <em>value</em> to the value returned from <a href="generate-collection">generate an RDF
+ Collection</a>.
+ </li>
+ <li>
+ Otherwise, if <em>item list</em> contains a single value set <em>value</em> to that value.
+ </li>
+ <li>
Generate the following triple:
<dl class="triple">
<dt>subject</dt>
@@ -490,16 +504,8 @@
<dt>predicate</dt>
<dd><code>http://www.w3.org/1999/xhtml/microdata#item</code></dd>
<dt>object</dt>
- <dd><em>result</em></dd>
+ <dd><em>value</em></dd>
</dl>
- <div class="issue">
- Editor's suggestion, remove this generation of the <tref>item</tref> triple, which only serves to
- associate all top-level items to the document, something that is already done by virtue of being in
- the same document.
- </div>
- <div class="issue">
- If we keep md:item, the values should probably be in an rdf:List like other multi-value items.
- </div>
</li>
</ol>
</section>
@@ -539,16 +545,16 @@
<tref>Evaluation Context</tref> if not empty.
</li>
<li>
+ Set <em>property list</em> to an empty mapping between properties and one or more ordered
+ <em>value</em>s as established below.
+ </li>
+ <li>
For each element <em>element</em> that has one or more <tref>property names</tref> and is one of the
<tref title="item properties">properties of the item</tref> <em>item</em>, in the order those elements
are given by the algorithm that returns the <tref title="item properties">properties of the item</tref>,
run the following substep:
<ol class="algorithm">
<li>
- Set <em>property list</em> to an empty mapping between properties and one or more ordered
- <em>value</em>s as established below.
- </li>
- <li>
For each <em>name</em> in the element's <tref>property names</tref>, run the following substeps:
<ol class="algorithm">
<li>
@@ -590,6 +596,10 @@
Collection</a>.
</li>
<li>
+ Otherwise, if <em>predicate</em> in <em>property list</em> contains a single value set
+ <em>value</em> to that value.
+ </li>
+ <li>
Generate the following triple:
<dl class="triple">
<dt>subject</dt>