- From: Chimezie Ogbuji <ogbujic@bio.ri.ccf.org>
- Date: Mon, 5 Mar 2007 21:10:40 -0500 (EST)
- To: public-grddl-wg <public-grddl-wg@w3.org>
A suggestion related to the later portion of Stefano's second
suggestion:
".. it *MUST* return RDF/XML or it *MUST* have a mechanism to indicate
what type of output the GRDDL-aware agent should expect"
We went back and forth on #issue-output-formats and essentially settled
[1] on demonstrating non RDF/XML coming out with an atom/turtle test case
which by itself does not demonstrate GRDDL conformance as currently formally
stated (which is not much of a problem since it is only one test out a set
of other tests).
Brian McBride offered [2] a table which summed up the media-type / output
decision tree:
output method media-type actual process
none none rdf/xml MUST?
none none turtle ????
None none rdfa ????
None none xml ????
Text none turtle ????
Text none rdf/xml ????
...
Text application/xml rdf/xml ????
...
Text rdf+xml rdf/xml ????
...
Text text/html rdfa ????
Text xhtml+xml ...
XML rdf-xml rdf/xml
...
...
Qname ... ...
I think a change can be made to the appropriate sections to capture what
is actually a web architecture best practice [3], leverage a mechanism
built-in to the only transformation language explicitely addressed by the
normative sections (XSLT), and have minimal impact on existing
implementations which (probably) already behave in this way.
It's easier for me to start with the (informal) rules and modify them to
ensure completeness than to start with the human-readable normative
section (ironically enough) so consider:
(?XSLTResult ?media-type) gspec:rdfParseByMediaType ?G.
(?TXNODE ?R) gspec:result ?XSLTResult.
?TXDOC gspec:ouputMediaType ?media-type.
?TXDOC grddl:transformationProperty ?TP;
log:uri [fn:doc ?TXNODE].
} => { ?R ?TP ?G }.
?RDFXML gspec:rdfParse ?G.
(?TXNODE ?R) gspec:resultTree ?RDFXML
?TXDOC grddl:transformationProperty ?TP;
log:uri [fn:doc ?TXNODE].
} => { ?R ?TP ?G}.
The bottom rule is same as before, so the top is an additional informative
rule.
Notice gspec:rdfParseByMediaType is included. Where ?gspec:rdfParse is
defined (same as before):
"Whenever the RDF/XML spec says that an RDF/XML document with root node
ROOT represents a graph G, we have ?ROOT gspec:rdfParse ?G."
Alternatively gspec:rdfParseByMediaType is
Where we have a RDF concrete syntax (turtle, n3, trix, etc..) associated
with a media-type, then we have ?RDFSyntax gspec:rdfParseByMediaType G
where G is an abstract RDF graph which corresponds with the result of
parsing ?RDFSyntax as mandated by the (registered?) media-type.
gspec:outputMediaType is essentially the result of applying
string(/xsl:stylesheet/xsl:output/@media-type) to ?TXNODE
gspec:anyResultTree associates an XSLT result tree (XML or otherwise) with
its source document and the ?TXNode.
so:
gspec:resultTree rdfs:subPropertyOf gspec:anyResultTree
Note that by definition via [http://www.w3.org/TR/xslt#output] ,
gspec:resultTree (the RDF/XML-only variety) applies only where the output
method is 'xml' explicitely, or by 'default'.
This covers everything except scenarios where there is no media-type (bad
practice [WEB ARCH]) and the output method is not 'xml'. XSLT gives rules
for determining a default output method which is one of either html
(definately not a GRDDL result) or 'xml' - we know what to do with the
latter.
[1] http://lists.w3.org/Archives/Public/public-grddl-wg/2006Dec/att-0011/06-grddl-wg-minutes.html__charset_us-ascii#item04
[2] http://lists.w3.org/Archives/Public/public-grddl-wg/2006Nov/0136.html
[2] http://www.w3.org/TR/webarch/#internet-media-type
Chimezie Ogbuji
Lead Systems Analyst
Thoracic and Cardiovascular Surgery
Cleveland Clinic Foundation
9500 Euclid Avenue/ W26
Cleveland, Ohio 44195
Office: (216)444-8593
ogbujic@ccf.org
Received on Tuesday, 6 March 2007 02:11:09 UTC