[redland-dev] implicit type of rdf:List in Turtle, Raptor
Dave Beckett
dave at dajobe.org
Sun Feb 11 18:45:50 UTC 2007
Joshua Shinavier wrote:
> This is primarily a question about Turtle; I hope it is not off-topic
> here. In parsing a Turtle list with Raptor, I noticed that the
> resulting graph is not typed. That is to say, each element in the
> list has an rdf:first and rdf:rest edge but no rdf:type edge. Looking
> at the Turtle spec, this is exactly what is supposed to happen, but I
> run into a problem when I feed the List to an application (Simile
> Exhibit's JSON writer) which expects resources / blank nodes to be
> explicitly typed. For occasions like this, it would be nice if a list
> expression like
>
> :a :b ( "apple" "banana" ) .
>
> were interpreted as
>
> :a :b
> [ rdf:type rdf:List ;
> rdf:first "apple";
> rdf:rest [ rdf:type rdf:List ;
> rdf:first "banana";
> rdf:rest rdf:nil ]
> ] .
>
> instead of
>
> :a :b
> [ rdf:first "apple";
> rdf:rest [ rdf:first "banana";
> rdf:rest rdf:nil ]
> ] .
>
> so the object has an obvious type which matches up with the
> rdfs:domain and rdfs:range of its rdf:first and rdf:rest edges,
> respectively. Was omitting them a conscious decision to cut down on
> excess statements? After all, you might expect a clever application
> to be able to infer them if they are important (above, from the
> rdfs:domain of :b).
Since I edited the RDF/XML spec, wrote Turtle and am the main
author of Redland, I feel uniquely overqualified to answer this
question :)
The rdf:List triple was removed from the RDF/XML spec before
the final version, and should not be generated by an RDF collection.
Any software that is relying on it, is out of date.
Example:
http://www.w3.org/TR/rdf-syntax-grammar/#section-Syntax-parsetype-Collection
and output ntriples:http://www.w3.org/TR/rdf-syntax-grammar/example19.nt
... which incidently, were made with Raptor back in 2004
Dave
More information about the redland-dev
mailing list