Re: C-SPARQL SPARQL Operators support

Dear Peter, (cc: RSP mailing list, since I believe the topic is of general interest)


On 05 Dec 2014, at 10:20, Wetz Peter <peter.wetz@tuwien.ac.at<mailto:peter.wetz@tuwien.ac.at>> wrote:
One more thing: How does C-SPARQL handle blank nodes? I mean, are there any special considerations or does it work “normal”?

very interesting question :-)

According to me, the problem here is that “normal” is not adequate.

Let me give you an example.

if I say:

{1} Alice gives _:1 .
{1} _:1 what pen ; to Bob .
{2} Bob returns _:1 .
{2} _:1 what pen ; to Alice .

where {i} is a timestamp

you do not expect a RSP engine to merge blank nodes at {1} with blank nodes at {2}, do you?

If yes, how  do you expect an RSP to act in the following case?

{1} Alice gives _:1
{2} Carl gives  _:1
{3} _:1 what pen ; to Bob .

you do want the engine to merge blank nodes at {1}, {2} and {3}, don't you?

Which of the two semantics is the correct one?

In defining the C-SPARQL language my co-authors and I meant the first semantics, but in implementing the C-SPARQL Engine I discovered that we did something like the second semantics (because we cannot achieve contemporaneity, i.e., all triples have a different timestamp). I said “something like the second semantics"  because it is the window that defines the scope of the blank nodes.

It is worth to note that the notion of RDF stream as timestamped RDF graphs solves this issue, because it scopes the blank nodes according to “normal" RDF semantics. Therefore, we should not run into this issue within the RSP community.

However, I think the topic is worth to discuss.

Best Regards,

Emanuele

Received on Wednesday, 10 December 2014 19:36:54 UTC