Skip to content

Evaluation of GRAPH pattern ignores blank nodes as graph names #217

Closed
@hartig

Description

@hartig

The definition of how to evaluate GRAPH patterns uses the following pseudo code for the case of GRAPH patterns with a variable rather than an IRI.

eval(D(G), Graph(var,P)) =
    Let R be the empty multiset
    foreach IRI i in D
        R := Union(R, Join( eval(D(D[i]), P) , Ω(?var->i) ) )
    the result is R

The foreach loop in the third line considers only IRIs as graph names in the queried dataset. Yet, given that we now have adopted the RDF Concepts notion of RDF dataset also for SPARQL, graph names may also be blank nodes. The current definition GRAPH pattern evaluation ignores this option.

We can easily fix this issue by extending the third line of the pseudo code above such that it considers blank nodes as well, but this requires also extending the definition of the notation D[i] as used in the fourth line. Additionally, it would be useful to make more explicit that the third line actually refers to the graph names in D.

Implementing this fix has to wait until after PR #216 has been merged.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions