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

On 31 Okt 2014 at 10:57, Ruben Verborgh wrote:
> 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,

Yeah, that's what I had in mind


> but that would put a hard burden on servers.
> Easier to just not have blank nodes.

Probably true.


--
Markus Lanthaler
@markuslanthaler

Received on Friday, 31 October 2014 13:37:38 UTC