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

Consider testing repo with RDF_Queryable #1

Open
gkellogg opened this issue Oct 25, 2012 · 2 comments
Open

Consider testing repo with RDF_Queryable #1

gkellogg opened this issue Oct 25, 2012 · 2 comments

Comments

@gkellogg
Copy link
Member

Great to see progress on this adaptor! Consider testing the repo against RDF_Queryable.

@bensinober
Copy link
Contributor

Thanks, and sorry for late response!

Regarding RDF::Queryable, is this what you're referring to:
https://github.com/datagraph/blog.datagraph.org/blob/master/2010/04/rdf-repository-howto.md
Subclassing RDF::Virtuoso::Repository to RDF::Repository and using Sparql::Client for queries makes sense, but we have specific need for advanced Sparql 1.1. update and aggregate queries on the Virtuoso store and experienced issues regarding GET query length, http authentication, persistence, etc. so we made a mixin with the APISmith gem, and our own RDF::Virtuoso::Query.

I notice now that an Update class is underway on Sparql::Client
https://github.com/bendiken/sparql-client/commit/2d562bba3cb0d6580c4ca6b06455233e8700ee98
Do you know if there is a move towards standardization of a Sparql 1.1 Update in RDF.rb in general?

Benjamin
Oslo Public Library, Norway

@gkellogg
Copy link
Member Author

RDF::Queryable is a mixin module implemented by repositories supporting basic RDF queries; basically the work is done in #query_execute, or #query_pattern. The howto is a bit dated, but shows up as a general way to create a custom RDF Repository, which could support enumeration, querying and other persistence operations. It is probably not too difficult to have RDF::Virtuoso::Repository to either sub-class RDF::Repository, or to mix-in RDF::Queryable, which would also do the trick.

Doing this allows the #each_statement, #query and etc. methods, which is great idiomatic Ruby. Clearly, it won't give you the performance advantage of just using SPARQL::Client, but it is useful to operate like a normal RDF Repository.

@bendiken has been working on the SPARQL 1.1 updates for SPARQL::Client, including support for SPARQL Update; he might have more to say about it.

We're going to try to push out a 1.0 version of the RDF libraries soon, and do a 1.1 version along with the RDF 1.1 release. We're most of the way there, but there are some subtle changes to literals, Skolemnized BNodes and IRIs that we'll want to consider. Probably also some changes to RDF::Graph and RDF::Repository to be closer to the RDF 1.1 Concepts, but it shouldn't be too much.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants