Re: RDF Design (Complaint) FAQ

On 16 May 2013, at 11:53, Sandro Hawke <sandro@w3.org> wrote:
> == Why can't predicates be blank nodes? ==

No sane use case. (There are use cases for literally as predicates, e.g. microdata.)

> * Because some people have written code that assumes they are not. (good  example?)
> 
> == Why can't subjects be literals? ==

Changing this now would require changing every syntax, every parser, most APIs, and many other standards and tools built on the RDF data model. Some RDF users would like to see this change, but many simply don't find the advantages gained very compelling, and find that the cost of change outweigh the benefits. Therefore, there's some vocal opposition to this change. The way the W3C process works, there's a bias towards the status quo, so the change is unlikely to happen.

> * 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? ==

Doing this properly would require putting lists right into the data model, moving away a bit from the simple set of triples data model. This would be too ambitious a change, given the narrow charter scope, so the group didn't go there.

Any attempt at encoding order in a set of triples is a hack. Different such hacks were tried over time, none of them make everyone happy.

> * 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? ==

A few vocal users who like reification, so no consensus that datasets are better, so we can't say it in the spec.

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

Historical reasons that are very complicated. Didn't find a way to retrofit a cleaner design without breaking too much.

> * 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? ==

They are disallowed in XML. There was an early decision to base
the RDF data types on XML Schema types, so we inherited these restrictions when we said that our strings are XSD strings. From an RDF point of view, the restrictions don't make sense.

> * 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.

Yes.

> == 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.

Yes.

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

TriG already existed as a separate language.

> * 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) ? ==

Because it predates SPARQL by several years.

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

Using the latter is fine. The TriG work was about getting an existing language through the W3C process. It doesn't have to be the last word on datasets syntaxes.

Richard



> 
> 
> 

Received on Thursday, 16 May 2013 13:24:05 UTC