README.md in sparql-3.1.8 vs README.md in sparql-3.2.0

- old
+ new

@@ -21,12 +21,11 @@ * SPARQL Update * [Rack][] and [Sinatra][] middleware to perform [HTTP content negotiation][conneg] for result formats * Compatible with any [Rack][] or [Sinatra][] application and any Rack-based framework. * Helper method for describing [SPARQL Service Description][SSD] * Implementation Report: {file:etc/earl.html EARL} -* Compatible with Ruby >= 2.2.2. -* Compatible with older Ruby versions with the help of the [Backports][] gem. +* Compatible with Ruby >= 2.6. * Supports Unicode query strings both on all versions of Ruby. * Provisional support for [SPARQL-star][]. ## Description @@ -246,51 +245,60 @@ require 'sparql' ### Querying a repository with a SPARQL query queryable = RDF::Repository.load("etc/doap.ttl") - sse = SPARQL.parse("SELECT * WHERE { ?s ?p ?o }") - queryable.query(sse) do |result| + query = SPARQL.parse("SELECT * WHERE { ?s ?p ?o }") + queryable.query(query) do |result| result.inspect end ### Executing a SPARQL query against a repository queryable = RDF::Repository.load("etc/doap.ttl") - sse = SPARQL.parse("SELECT * WHERE { ?s ?p ?o }") - sse.execute(queryable) do |result| + query = SPARQL.parse("SELECT * WHERE { ?s ?p ?o }") + query.execute(queryable) do |result| result.inspect end ### Updating a repository queryable = RDF::Repository.load("etc/doap.ttl") - sse = SPARQL.parse(%( + update = SPARQL.parse(%( PREFIX doap: <http://usefulinc.com/ns/doap#> INSERT DATA { <https://rubygems> doap:implements <http://www.w3.org/TR/sparql11-update/>} ), update: true) - sse.execute(queryable) + update.execute(queryable) ### Rendering solutions as JSON, XML, CSV, TSV or HTML queryable = RDF::Repository.load("etc/doap.ttl") solutions = SPARQL.execute("SELECT * WHERE { ?s ?p ?o }", queryable) solutions.to_json #to_xml #to_csv #to_tsv #to_html ### Parsing a SPARQL query string to SSE - sse = SPARQL.parse("SELECT * WHERE { ?s ?p ?o }") - sse.to_sxp #=> (bgp (triple ?s ?p ?o)) + query = SPARQL.parse("SELECT * WHERE { ?s ?p ?o }") + query.to_sxp #=> (bgp (triple ?s ?p ?o)) +### Parsing a SSE to SPARQL query or update string to SPARQL + + query = SPARQL::Algebra.parse(%{(bgp (triple ?s ?p ?o))}) + sparql = query.to_sparql #=> "SELECT * WHERE { ?s ?p ?o }" + ### Command line processing sparql execute --dataset etc/doap.ttl etc/from_default.rq sparql execute -e "SELECT * FROM <etc/doap.ttl> WHERE { ?s ?p ?o }" # Generate SPARQL Algebra Expression (SSE) format sparql parse etc/input.rq sparql parse -e "SELECT * WHERE { ?s ?p ?o }" + # Generate SPARQL Query from SSE + sparql parse --sse etc/input.sse --format sparql + sparql parse --sse --format sparql -e "(dataset (<http://usefulinc.com/ns/doap>) (bgp (triple ?s ?p ?o))))" + # Run query using SSE input sparql execute --dataset etc/doap.ttl --sse etc/input.sse sparql execute --sse -e "(dataset (<etc/doap.ttl>) (bgp (triple ?s ?p ?o))))" # Run a local SPARQL server using a dataset @@ -366,23 +374,23 @@ * {Rack::SPARQL} * {Rack::SPARQL::ContentNegotiation} ## Dependencies -* [Ruby](https://ruby-lang.org/) (>= 2.2.2) -* [RDF.rb](https://rubygems.org/gems/rdf) (~> 3.0) -* [SPARQL::Client](https://rubygems.org/gems/sparql-client) (~> 3.0) -* [SXP](https://rubygems.org/gems/sxp) (~> 1.0) -* [Builder](https://rubygems.org/gems/builder) (>= 3.0.0) -* [JSON](https://rubygems.org/gems/json) (>= 1.8.2) -* Soft dependency on [Linked Data][] (>= 3.0) -* Soft dependency on [Nokogiri](https://rubygems.org/gems/nokogiri) (>= 1.7) +* [Ruby](https://ruby-lang.org/) (>= 2.6) +* [RDF.rb](https://rubygems.org/gems/rdf) (~> 3.2) +* [SPARQL::Client](https://rubygems.org/gems/sparql-client) (~> 3.1) +* [SXP](https://rubygems.org/gems/sxp) (~> 1.2) +* [Builder](https://rubygems.org/gems/builder) (~> 3.2) +* [JSON](https://rubygems.org/gems/json) (~> 2.6) +* Soft dependency on [Linked Data][] (>= 3.1) +* Soft dependency on [Nokogiri](https://rubygems.org/gems/nokogiri) (~> 1.12) Falls back to REXML for XML parsing Builder for XML serializing. Nokogiri is much more efficient -* Soft dependency on [Equivalent XML](https://rubygems.org/gems/equivalent-xml) (>= 0.3.0) +* Soft dependency on [Equivalent XML](https://rubygems.org/gems/equivalent-xml) (>= 0.6) Equivalent XML performs more efficient comparisons of XML Literals when Nokogiri is included -* Soft dependency on [Rack][] (>= 2.0) -* Soft dependency on [Sinatra][] (>= 2.0) +* Soft dependency on [Rack][] (~> 2.2) +* Soft dependency on [Sinatra][] (~> 2.1) ## Installation The recommended installation method is via [RubyGems](https://rubygems.org/). To install the latest official release of the `SPARQL` gem, do: @@ -448,10 +456,9 @@ [grammar]: https://www.w3.org/TR/sparql11-query/#grammar [RDF 1.1]: https://www.w3.org/TR/rdf11-concepts [RDF.rb]: https://rubydoc.info/github/ruby-rdf/rdf [RDF-star]: https://w3c.github.io/rdf-star/rdf-star-cg-spec.html [SPARQL-star]: https://w3c.github.io/rdf-star/rdf-star-cg-spec.html#sparql-query-language -[Backports]: https://rubygems.org/gems/backports [Linked Data]: https://rubygems.org/gems/linkeddata [SPARQL doc]: https://rubydoc.info/github/ruby-rdf/sparql/frames [SPARQL XML]: https://www.w3.org/TR/rdf-sparql-XMLres/ [SPARQL JSON]: https://www.w3.org/TR/rdf-sparql-json-res/ [SPARQL EBNF]: https://www.w3.org/TR/sparql11-query/#sparqlGrammar