Re: blank nodes [was: DBpedia now available as triple pattern fragments]

Hi Markus,

>> It should probably even become a MUST;
>> i.e., blank nodes MUST be mapped to IRIs,
>> the RDF 1.1 spec SHOULD be followed for this.
> 
> Hmm... is that really necessary? Sure, you can't construct a request but
> what about simply including all statements about such a blank node directly
> in the response (so that there's no need for a separate query)?

You can never know whether all statements are there.
I.e., suppose we need to solve the following query:

SELECT * {
  ?person a foaf:Person.
  ?person foaf:firstName ?name.
  ?otherPerson foaf:knows ?person.
}

To solve this, we would need to get this triple pattern fragment:
    predicate: rdf:type, object: foaf:Person

This could return the following result:

dbpedia:Barack_Obama a foaf:Person.
_:b0 a foaf:Person.
_:b0 foaf:name "Somebody".

(Let's, for the sake of example, ignore that people likely wouldn't be blank nodes.)
As per your suggestion, I included other triples about this blank node in the response.

However, how can the client know that these are really all triples?
And if they are not, how can it ask for more?

There might still be triples like:
   _:b0 foaf:firstName "Some".
   dbpedia:Barack_Obama foaf:knows _:b0.

The server cannot tell "here is everything I have about _:b0".
Sure, we could spec this, but that would put a hard burden on servers.
Easier to just not have blank nodes.

Best,

Ruben

Received on Friday, 31 October 2014 09:58:06 UTC