Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement RDF* #594

Closed
rubensworks opened this issue Dec 18, 2019 · 9 comments
Closed

Implement RDF* #594

rubensworks opened this issue Dec 18, 2019 · 9 comments

Comments

@rubensworks
Copy link
Member

Issue type:

  • ➕ Feature request

Description:

We should provide an (experimental) implementation of Olaf's RDF*: http://blog.liu.se/olafhartig/2019/01/10/position-statement-rdf-star-and-sparql-star/

@rubensworks
Copy link
Member Author

rubensworks commented May 10, 2020

Some implementation inspiration:

@rubensworks
Copy link
Member Author

rubensworks commented May 20, 2020

Some requirements before we can get started:

Only then can we properly add the final parts into Comunica.

@ragnorc
Copy link

ragnorc commented Apr 14, 2022

Seems like RDF* is now supported in N3.js and Sparql.js.
What would be left to do to get this supported in Comunica? Happy to help!

@jeswr
Copy link
Member

jeswr commented Apr 15, 2022

RDF* is now supported in N3.js

For parsing yes - for the store itself there is still an open issue around this rdfjs/N3.js#256. In particular, for performance I would suggest that

  1. The match method be extended to handle reified data
  2. The indexing method for reified quads be re-thought

That said - I believe that there should be a way to get around this in Comunica in the meantime; especially since the above suggestions for the match method in N3.js would also need to become part of the RDFJS spec before all RDFJS interfaces can be expected to have that kind of support.

IMO The first thing that needs to be done on the communica end is adding support for reified triples in the resolve-quad-pattern actors.

My suggestion for implementing this in the case of RDFJS sources (which can probably be extended to the other sources as well) is to treat reified triples containing variables, as a special case. The best way to explain how to handle this special case is by example: if you had <<?s a Person>> ex:annotation ex:value, you would first call match(null, ex:annotation, ex:value) on the store (that is, match against any subject), and then filter the resulting stream to limit the results to those such that the subject is a quad matching the pattern ?s a Person.

In addition to this there will need to be new query-operation actors for anything new/modified algebra operations in sparqlalgebrajs. @joachimvh probably has the best insight on this.

@rubensworks
Copy link
Member Author

To add upon what @jeswr has said above, there's also the issue of implementing supporting the evaluation of SPARQL* queries, since there are some specific new features in SPARQL* that did not exist before in SPARQL. (it's been too long ago since I looked into it, so I'm not sure anymore what exactly would be needed)

@ragnorc if you want to take up (part of) this effort, any help is definitely very welcome. Also happy to have a call to discuss what needs to be done.

@joachimvh
Copy link
Member

In addition to this there will need to be new query-operation actors for anything new/modified algebra operations in sparqlalgebrajs. @joachimvh probably has the best insight on this.

It could be that sparqlalgebrajs already works out of the box with this, since it copies the Term and Quad objects directly from the sparqljs output. That is for the BGP parts of a query though, I'm not really following RDF*/SPARQL* so not sure if other features are needed.

@ragnorc
Copy link

ragnorc commented Apr 20, 2022

Thank you @jeswr and @joachimvh for your input.
@rubensworks Happy to jump on a call to discuss this!

@rubensworks
Copy link
Member Author

@ragnorc Could you mail me some suggestions for meeting slots (next week or later)?

@rubensworks
Copy link
Member Author

Done in #1222.

@github-project-automation github-project-automation bot moved this from 📋 Backlog to ✅ Done in RDF-star Jun 28, 2023
@rubensworks rubensworks moved this to Done in Development May 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

No branches or pull requests

4 participants