W3C home > Mailing lists > Public > www-rdf-interest@w3.org > September 2004

RE: Generated RDF conformant with good practise?

From: Howard Katz <howardk@fatdog.com>
Date: Thu, 16 Sep 2004 09:27:39 -0700
To: "Libby Miller" <Libby.Miller@bristol.ac.uk>
Cc: <www-rdf-interest@w3.org>
Message-ID: <IKEOLCDFPBBPPAHGNKKOGEEGEPAA.howardk@fatdog.com>

Thanks for the reminder on rdf:parseType="Resource". I do like the concision
over <rdf:Description> when as you say there's no type info present. I don't
think that's hard to explain to users.

The question of whether there *is* type info present in the original XML or
not is one that endlessly fascinates (as you can see, it doesn't take much
to amuse me :-). I think you could parse it either way: even without a
schema present, <bib> could be considered both a type and an instance. Or
does madness that way lie? :-)

Howard

> -----Original Message-----
> From: www-rdf-interest-request@w3.org
> [mailto:www-rdf-interest-request@w3.org]On Behalf Of Libby Miller
> Sent: Thursday, September 16, 2004 2:47 AM
> To: Howard Katz
> Cc: www-rdf-interest@w3.org
> Subject: Re: Generated RDF conformant with good practise?
>
> On Wed, 15 Sep 2004, Howard Katz wrote:
> >
> > Hi all,
> >
> > I'd appreciate some feedback on something. I'm writing an tutorial-type
> > article that shows how to use XQuery to transform a standard
> XML datafile
> > (not RDF/XML) into RDF. The main focus of the article is on
> XQuery, but I
> > need to make sure that my RDF is also correct and not atypical. Here's a
> > snippet of the data I'm starting with (the "bib.xml" file that
> ships with
> > the XQuery specification):
> >
> > <bib>
> > 	...
> > 	<book year="1994">
> > 		<title>TCP/IP --- tcp --- Illustrated</title>
> > 		<author><last>Stevens</last><first>W.</first></author>
> > 		<publisher>Addison-Wesley</publisher>
> > 		<price> 65.95</price>
> > 	</book>
> > 	...
> > </bib>
> >
> > My XQuery script takes this particular book and
> programmatically produces
> > the following RDF/XML:
> >
> > <?xml version="1.0" encoding="UTF-8"?>
> > <rdf:RDF xmlns:bibterm="http://www.book-stuff.com/terms/"
> >         xmlns:dc="http://purl.org/dc/elements/1.0/"
> >         xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
> >    <rdf:Description rdf:about="http://www.book-stuff.com/bib">
> >        <bibterm:book>
> >            <rdf:Description>
> >                <bibterm:year>1994</bibterm:year>
> >                <dc:title>TCP/IP Illustrated</dc:title>
> >                <bibterm:author>
> >                    <rdf:Description>
> >                        <bibterm:last>Stevens</bibterm:last>
> >                        <bibterm:first>W.</bibterm:first>
> >                    </rdf:Description>
> >                </bibterm:author>
> >            </rdf:Description>
> >        </bibterm:book>
> >    </rdf:Description>
> > </rdf:RDF>
> >
>
> That looks fine to me Howard. Often you see rdf:parseType='Resource'
> being used instead of rdf:Description (i.e. where there are no
> types on the
> nodes) for brevity, but depending on your audience this might be more
> confusing than helpful. The result would be
>
>   <?xml version="1.0" encoding="UTF-8"?>
> <rdf:RDF xmlns:bibterm="http://www.book-stuff.com/terms/"
>          xmlns:dc="http://purl.org/dc/elements/1.0/"
>           xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
>     <rdf:Description rdf:about="http://www.book-stuff.com/bib">
>          <bibterm:book rdf:parseType="Resource">
>                  <bibterm:year>1994</bibterm:year>
>                  <dc:title>TCP/IP Illustrated</dc:title>
>                  <bibterm:author rdf:parseType="Resource">
>                          <bibterm:last>Stevens</bibterm:last>
>                          <bibterm:first>W.</bibterm:first>
>                  </bibterm:author>
>          </bibterm:book>
>      </rdf:Description>
> </rdf:RDF>
>
> which should give you exactly the same N-triples.
>
> I guess the other thing you could do is put types nodes book and author
> (typed nodes are by convention capitalized).
>
> hm, looking at it again, if it was me, I'd do something like this:
>
> <rdf:RDF xmlns:bibterm="http://www.book-stuff.com/terms/"
>           xmlns:dc="http://purl.org/dc/elements/1.0/"
>           xmlns:foaf="http://xmlns.com/foaf/0.1/"
>           xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
>
>          <bibterm:Book><!--now a class -->
>                   <bibterm:url
> rdf:resource="http://www.book-stuff.com/bib"/>
> <!-- I'm not sure what this url refers to -->
>                  <bibterm:year>1994</bibterm:year>
>                  <dc:title>TCP/IP Illustrated</dc:title>
>                  <bibterm:author>
>                      <foaf:Person><!--just a suggestion :) -->
>                          <bibterm:last>Stevens</bibterm:last>
>                          <bibterm:first>W.</bibterm:first>
>                      </foaf:Person>
>                  </bibterm:author>
>          </bibterm:Book>
>   </rdf:RDF>
>
> so now I've assumed the book itself is not the same as its url, but
> that it has an associated url (e.g like a foaf:homepage) - the url is
> not necessary by the way. I've made the book a typed node (which fits
> better with your xml I think), and there's no need for the 'book'
> predicate indirection from your first example.
>
> I hope that makes sense!
>
> Libby
>
>
> > Here's an N-Triples view of the same information:
> >
> > <http://www.book-stuff.com/bib> <http://www.book-stuff.com/terms/book>
> > _:jARP438894 .
> > _:jARP438894 <http://www.book-stuff.com/terms/year> "1994" .
> > _:jARP438894 <http://purl.org/dc/elements/1.0/title> "TCP/IP
> Illustrated" .
> > _:jARP438894 <http://www.book-stuff.com/terms/author>  _:jARP438895 .
> > _:jARP438895 <http://www.book-stuff.com/terms/last> "Stevens" .
> > _:jARP438895 <http://www.book-stuff.com/terms/first> "W." .
> >
> > My basic question, given that I'm still fairly new to RDF, is: does this
> > look like reasonably valid RDF to people, valid in the sense of
> not seeming
> > too odd or unusual in some way, as well as being true to the
> intent of the
> > original data? I basically want to make sure I'm not producing
> RDF that's at
> > odds with what's considered good practise.
> >
> > TIA for any thoughts,
> > Howard
> >
> >
> >
>
Received on Thursday, 16 September 2004 16:26:18 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:52:09 GMT