On Sat, 30 Jun 2001, Chris Croome wrote:
> Hi
>
> On Thu 14-Jun-2001 at 04:59:59 +0100, Dan Brickley wrote:
http://www.mathematik.uni-osnabrueck.de/projects/dcqual/qual21.3.1/
> >
> > What I would like to see on this list are some implementors
> > claiming victory w.r.t. the current proposed RDF/DCQ spec! Are we
> > done yet? Hands up anybody who feels they've got it implemented
> > (in whole or part...).
>
> I have added the ability of a content management system I'm working
> on to produce DC RDF metadata, just add dc.rdf to any document
Thanks :) This is just the kind of sanity check we need...
> address on this site http://testers.mkdoc.com/ to see the results,
> eg:
>
> http://testers.mkdoc.com/dc.rdf
>
> I don't know if it's valid because when I try the URI here:
>
> http://www.w3.org/RDF/Implementations/SiRPAC/
>
> I get this error message:
>
> Fatal error: Cannot nest a Description inside another Description
> (Line number = 144, Column number = 6)
The line numbering seems screwy, but SiRPAC was correct in spotting an
error.
I made an amended copy of your file at:
http://rdfweb.org/people/danbri/2001/06/dcarch-test/dc2.rdf
(though see comments below; I made another change later -> dc3.rdf)
...and tweaked in a couple of places:
<dc:creator>
<rdf:Description>
<rdfs:label>Postle, Bruno</rdfs:label>
<vCard:FN>Bruno Postle</vCard:FN>
<vCard:EMAIL>[log in to unmask]</vCard:EMAIL>
<vCard:N rdf:parseType="Resource">
<vCard:Family>Postle</vCard:Family>
<vCard:Given>Bruno</vCard:Given>
</vCard:N>
</rdf:Description>
</dc:creator>
and inside each <rdf:li>,
<rdf:li>
<rdf:Description>
<rdfs:label>Croome, Chris</rdfs:label>
<vCard:FN>Chris Croome</vCard:FN>
<vCard:EMAIL>[log in to unmask]</vCard:EMAIL>
<vCard:N rdf:parseType="Resource">
<vCard:Family>Croome</vCard:Family>
<vCard:Given>Chris</vCard:Given>
</vCard:N>
</rdf:Description>
</rdf:li>
In both cases, the RDF syntax requires a "striped" pattern to the
structure of the XML, ie. the "nodes" and "arcs" are encoded in each
level of nesting.
<dc:creator> -- an "arc"
<rdf:Description> -- a "node" (of no specific type)
<rdfs:label>Postle, Bruno</rdfs:label> -- an "arc"
and
<rdf:li> -- an "arc"
<rdf:Description> -- a "node" (of no specific type)
<rdfs:label>Croome, Chris</rdfs:label> -- an "arc"
..etc.
Where I have written <rdf:Description> we could have something like
<util:Person> ... etc., drawing from a DCMI namespace or some other
useful list of types of things.
>
> the file is 110 lines long... so I have no idea what is going on
> here.
>
> I can get some complicated looking diagrams from here:
>
> http://www.ilrt.bris.ac.uk/discovery/rdf-dev/rudolf/rdfviz/
>
> so I guess it might be more-or-less valid?
That one uses a different RDF parser, which seems to be more tolerant of
errors.
I'm increasingly using the Cara parser for this sort of checking; the
behaviour seems more accurate and the error reports are much more
helpful. I'll update RDFViz to use Cara next time I edit that service.
If you paste your example into
http://zoe.mathematik.uni-osnabrueck.de/RDF/parser.html
it reports an error, indicating the path to the problematic XML element:
[[
Can't have multiple objects for property in [6.12] at
/rdf:RDF/rdf:Description/dc:creator
]]
Trying my version, I notice it picks up another error which SiRPAC let
through (and which was puzzling me as I tried to figure things out from
the squiggly diagram):
Can't have multiple objects for property in [6.12] at
/rdf:RDF/rdf:Description/dc:date/dcq:created/dcq:W3CDTF
This is a variant on the previous syntax error: instead of the markup
being "striped" (node/arc/node/arc/...) we had arc/arc/node/arc, since
both dc:date and dcq:created represent arcs
(relationships; properties) in the graph. If I remove the surplus
<dc:date> elements, it parses OK in Cara.
OLD markup:
<dc:date>
<dcq:created>
<dcq:W3CDTF>
<rdf:value>2001-03-23T18:50:09Z</rdf:value>
<rdfs:label>Created</rdfs:label>
</dcq:W3CDTF>
</dcq:created>
</dc:date>
<dc:date>
<dcq:modified>
<dcq:W3CDTF>
<rdf:value>2001-06-19T17:45:20Z</rdf:value>
<rdfs:label>Modified</rdfs:label>
</dcq:W3CDTF>
</dcq:modified>
</dc:date>
Revised:
(see http://rdfweb.org/people/danbri/2001/06/dcarch-test/dc3.rdf )
<dcq:created>
<dcq:W3CDTF>
<rdf:value>2001-03-23T18:50:09Z</rdf:value>
<rdfs:label>Created</rdfs:label>
</dcq:W3CDTF>
</dcq:created>
<dcq:modified>
<dcq:W3CDTF>
<rdf:value>2001-06-19T17:45:20Z</rdf:value>
<rdfs:label>Modified</rdfs:label>
</dcq:W3CDTF>
</dcq:modified>
This gets us to the stage where the Cara parser can't see any errors.
We're not quite done though; looking at the diagram that
http://zoe.mathematik.uni-osnabrueck.de/RDF/parser.html
...will generate for us, there's still a little problem.
The <dc:relation> element also has the same syntax bug: you have both
dc:relation and dcq:references, both of which should show up in the
graph as arcs / relationships. Instead, Cara parses the dcq:references
element as a "typed node", and consequently mis-reads the remaining
nested elements.
Old version:
<dc:relation>
<dcq:references>
<dcq:URI>
<rdf:value>http://mkdoc.com/</rdf:value>
</dcq:URI>
</dcq:references>
</dc:relation>
Fixed version:
<dcq:references>
<dcq:URI>
<rdf:value>http://mkdoc.com/</rdf:value>
</dcq:URI>
</dcq:references>
As an aside, some feedback to the editors regarding the spec: do we need
to write:
<dc:identifier>
<dcq:URI>
<rdf:value>http://testers.mkdoc.com:80/</rdf:value>
</dcq:URI>
</dc:identifier>
...when we could write:
<dc:identifier rdf:resource="http://testers.mkdoc.com:80/"/>
(which implicitly tells RDF that the identifier is a resource), or at
least
<dc:identifier>
<dcq:URI rdf:about="http://testers.mkdoc.com:80/" />
</dc:identifier>
Hmm, I think this is a mistake actually, since it confuses the name
(which is a URI) with the thing named, in this case a Web document. So
I'd stick with:
<dc:identifier rdf:resource="http://testers.mkdoc.com:80/"/>
...the 'rdf:value' construction seems handy sometimes, but when the
string is a URI, it seems healthier to use RDF's built-in
representational mechanisms to make it clear the string is a URI.
Sample comment goes for dcq:references
> I'd be interested in any feedback anyone has, also I have a few
> specific questions relating to some more information that I'd like
> to add the the output:
>
> How would one add the name of the person who last modified this
> document to this:
I'll think about these questions (below) and hopefully reply in a later
mail. If I don't get to it, nutshell answer is that we'd do this by defining some
further RDF vocabulary in the first two cases, and in the 3rd case, the
answer's easy, if folk accept my reformulation above:
<dcq:references>
<rdf:Description rdf:about="http://mkdoc.com/">
<dc:title>title of referenced doc here...</dc:title>
<dc:description>etc etc., more metadata can be nested easily...</dc:description>
</rdf:Description>
</dcq:references>
Hope this helps. The final tweaked version of your file is at:
http://rdfweb.org/people/danbri/2001/06/dcarch-test/dc3.rdf and looks
OK to me if you feed it to
http://zoe.mathematik.uni-osnabrueck.de/RDF/parser.html and select
"visualize with GraphViz".
cheers,
Dan
>
> <dc:date>
> <dcq:modified>
> <dcq:W3CDTF>
> <rdf:value>2001-06-29T17:12:31Z</rdf:value>
> <rdfs:label>Modified</rdfs:label>
> </dcq:W3CDTF>
> </dcq:modified>
> </dc:date>
>
> How would one add the charset of the document to this:
>
> <dc:format>
> <dcq:IMT>
> <rdf:value>text/html</rdf:value>
> <rdfs:label>HTML Document</rdfs:label>
> </dcq:IMT>
> </dc:format>
>
> How would one add a title and description of the reference to this:
>
> <dc:relation>
> <dcq:references>
> <dcq:URI>
> <rdf:value>http://mkdoc.com/</rdf:value>
> </dcq:URI>
> </dcq:references>
> </dc:relation>
>
>
> Chris
>
> --
> Chris Croome
> http://www.webarchitects.co.uk/
>
>
|