- From: Micah Dubinko <mdubinko@yahoo-inc.com>
- Date: Sun, 20 Apr 2008 12:00:55 -0700
- To: RDFa <public-rdf-in-xhtml-tf@w3.org>
This is the sort of thing that works well for community development over a mailing list. Here is my first rough sketch (definitely buggy and incomplete) of a functional specification of RDFa, based on the latest editor's draft. If something looks wrong to you, it probably is. And if someone wants to run with this, be my guest. Given an XHTML document as input, define a mapping to a list of triples as output. Terminology: For the attributes rel, rev, typeof, and property, these may contain a whitespace separated list. So the terminology "rel value", "rev value", "typeof value", and "property value" refers to a single token in the overall attribute value. "nearest ancestor subject" means ... (TODO) "nearest ancestor hanging triple" means ... (TODO) (These might be more precise if it used XPath syntax..) For each property value: if the property value is a valid CURIE: generate a triple: subject = nearest ancestor subject predicate = URL from property value CURIE if content attribute is present object = value of content attribute else object = text node value of current element if xml:lang attribute is present language = language code from langauge attribute if datatype is present datatype = URL from datatype attribute CURIE For each rel value: if the rel value is a valid CURIE or value from the HTML relation list: generate a triple: subject = nearest ancestor subject predicate = URL from rel value CURIE if resource attribute is present: object = URL from resource attribute else object = bnode For each rev value: exactly per the "rel" rules above, except subject and object are exchanged when generating the triple For each typeof value: if the typeof value is a valid CURIE: generate a triple: if nearest ancestor subject is this node: subject = URL from nearest ancestor subject rules else subject = bnode predicate = rdf:type object = URL from typeof value CURIE For each about attribute if there exists a nearest ancestor hanging triple: generate a triple: if hanging triple used rel (forward triple): subject = URL from hanging triple predicate = URL from hanging triple object = URL from about attribute else (reverse triple): as forward triple, but exchanging subject and object TODO: this sketch doesn't yet mention src or href attributes... -m
Received on Sunday, 20 April 2008 19:02:15 UTC