Hi,
I'm working on a Microdata parser as part of an RDF toolkit. One thing
I've implemented but that isn't directly stated in the draft is the
generation of property URIs in the context of the itemtype. The spec
mentions that plain properties are to be used "within the context of
the types for which they are intended". And RDF vocabularies follow
the {namespace}/{type|prop} or {namespace}#{type|prop} pattern. So,
I made my parser extract the following RDF triples:
_:bnode a <http://xmlns.com/foaf/0.1/Person> .
_:bnode <http://xmlns.com/foaf/0.1/name> "Alec Tronnick" .
_:bnode <http://xmlns.com/foaf/0.1/img> <mypic.jpg> .
from the Microdata snippet:
<div itemscope="" itemtype="http://xmlns.com/foaf/0.1/Person">
My name is <span itemprop="name">Alec Tronnick</span>
<img itemprop="img" src="mypic.jpg" alt="" />
</div>
as "name" and "img" are supposed to be applicable to the "Person"
type from the FOAF vocabulary. This sort of rule leads to very
compact markup in most single-vocab use cases (even more compact
and readable than RDFa's CURIEs) and simple authoring.
A sophisticated parser *could* GET and check the RDF vocabulary
for valid use of properties, but RDF does not have instance-level
validation, so the transparent expansion of plain property names
does not conflict with the RDF spec(trum). An author can of
course still use full URIs to mix in terms from other vocabs.
Benji
--
Benjamin Nowack
http://bnode.org/http://semsol.com/