RDF Design (Complaint) FAQ

At SemTech in SF (in 2-3 weeks) I'm presenting on RDF 1.1.   If any of 
you are going to be there, please let me know.  I'd like you to join me 
on stage for Q&A.

I'd love some help preparing answers for the hard questions. Hopefully 
it'll be useful elsewhere.   Right now I'm thinking about it as a FAQ of 
Design Complaints.    If necessary, I can just say "Sorry, that's how it 
came out", but if there are good reasons for why things are done some 
particular way, that would be helpful to know.    It would be nice if 
could be a general Design FAQ -- including the 90% of RDF that's awesome 
-- but people don't seem to ask questions about the good stuff.

Just reply by email (probably off-list, or this will get very noisy) and 
I'll put the answers together on a wiki page.

Feel free to suggest more items -- this is just the ones that came to my 
mind this morning, and my best vague stab at answers.

           -- Sandro

== Why can't predicates be blank nodes? ==

* Because some people have written code that assumes they are not. 
(good  example?)

== Why can't subjects be literals? ==

* Because some people have written code that assume they are not. (good 
example?)

* Because it would lead more people to bad modeling practice like  { 
"London" rdf:type eg:City }

== Why do we have so many kinds of collections/containers? ==

* No one's come up with a design that's enough better than all the 
others to make people be willing to give up the others

== Why wont you give guidance about whether to use reification or 
datasets? ==

== Why are language-tagged strings different from everything else? ==

* Historically, there was a believe that XML Schema datatypes had to be 
free from language tagging

== Why are there unicode characters disallowed from xsd:string literals? ==

* Because strings are intended to be displayed; the disallowed 
characters (like null) can't be displayed.  (Other datatypes can be used 
for representing binary data, although large binary items are best 
handled as separate resources.)

== Why did you change N-Triples to have multiple forms (not so good for 
testing)? ==

* Because utf-8 is so convenient, and we didn't think it made testing 
that much harder or broke that much code using n-triples.

== Why the @-signs in '@prefix' and '@base' in Turtle & TriG but not 
SPARQL ==

* Historically, they're both derived from N3, but SPARQL dropped the 
@-sign and Turtle didn't.  At this point, there are people using Turtle 
who don't want to drop the @-sign allowing both might be even more 
confusing.

== Why is TriG disjoint from Turtle, instead of an extension? ==

* Because some people don't want to write code which can safely load an 
untrusted dataset into a graph store.   (??)

== Why isn't TriG a subset of SPARQL GroupGraphPattern (+prefix & base) ? ==


== Why use TriG instead of SPARQL 'INSERT DATA' files? ==

Received on Thursday, 16 May 2013 10:53:39 UTC