From dde47453a962fd93e183335410ae25ab0113370b Mon Sep 17 00:00:00 2001 From: Gregg Kellogg Date: Sun, 25 Jul 2021 13:39:49 -0700 Subject: [PATCH 1/7] Remove obsolete travis config. --- .travis.yml | 16 ---------------- 1 file changed, 16 deletions(-) delete mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 83a126bb..00000000 --- a/.travis.yml +++ /dev/null @@ -1,16 +0,0 @@ -language: ruby -script: "bundle exec rspec spec" -env: - - CI=true -rvm: - - 2.4 - - 2.5 - - 2.6 - - 2.7 - - jruby -cache: bundler -sudo: false -matrix: - allow_failures: - - rvm: jruby -dist: trusty From e3523847a8c04b930d81779a8f8bba10bd766bfd Mon Sep 17 00:00:00 2001 From: Gregg Kellogg Date: Sun, 25 Jul 2021 14:03:08 -0700 Subject: [PATCH 2/7] Update grammar for RDF-star Embedded => Quoted changes. --- etc/earl-rdf-star.ttl | 196 +-- etc/sparql11.bnf | 34 +- etc/sparql11.html | 74 +- etc/sparql11.ll1.sxp | 212 +-- etc/sparql11.sxp | 38 +- lib/sparql/grammar/meta.rb | 2472 ++++++++++++++++---------------- lib/sparql/grammar/parser11.rb | 120 +- spec/grammar/parser_spec.rb | 2 +- 8 files changed, 1571 insertions(+), 1577 deletions(-) diff --git a/etc/earl-rdf-star.ttl b/etc/earl-rdf-star.ttl index 7c25b289..ec0179b5 100644 --- a/etc/earl-rdf-star.ttl +++ b/etc/earl-rdf-star.ttl @@ -51,7 +51,7 @@ doap:created "2021-05-29"^^xsd:date; ] . <> foaf:primaryTopic ; - dc:issued "2021-05-29T11:33:48-07:00"^^xsd:dateTime ; + dc:issued "2021-07-25T14:02:40-07:00"^^xsd:dateTime ; foaf:maker . a earl:Assertor; @@ -65,7 +65,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - subject embedded triple"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -76,7 +76,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - object embedded triple"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -87,7 +87,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - subject embedded triple - vars"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -98,7 +98,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - object embedded triple - vars"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -109,7 +109,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - Embedded triple in VALUES"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -120,7 +120,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - Embedded triple in CONSTRUCT"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -131,7 +131,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - Embedded triples in CONSTRUCT WHERE"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -142,7 +142,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - embedded triple inside blankNodePropertyList"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -153,7 +153,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - embedded triple inside collection"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -164,7 +164,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - nested embedded triple, subject position"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -175,7 +175,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - nested embedded triple, object position"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -186,7 +186,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - compound forms"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -197,7 +197,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - blank node subject"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -208,7 +208,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - blank node object"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -219,7 +219,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - blank node"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -230,7 +230,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - Annotation form"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -241,7 +241,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - Annotation example"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -252,7 +252,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - Annotation example"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -263,7 +263,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - Annotation with embedding"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -274,7 +274,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - Annotation on triple with embedded object"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -285,7 +285,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - Annotation with path"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -296,7 +296,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - Annotation with nested path"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -307,7 +307,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - Annotation in CONSTRUCT """; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -318,7 +318,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - Annotation in CONSTRUCT WHERE"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -329,7 +329,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - Expressions - Embedded triple"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -340,7 +340,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - Expressions - Embedded triple"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -351,7 +351,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - Expressions - Functions"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -362,7 +362,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - Expressions - TRIPLE"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -373,7 +373,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - Expressions - Functions"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -384,7 +384,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - Expressions - BIND - CONSTRUCT"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -395,7 +395,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - bad - embedded triple as predicate"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -406,7 +406,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - bad - embedded triple outside triple"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -417,7 +417,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - bad - collection list in embedded triple"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -428,7 +428,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - bad - literal in subject position of embedded triple"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -439,7 +439,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - bad - blank node as predicate in embedded triple"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -450,7 +450,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - bad - compound blank node expression"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -461,7 +461,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - bad - incomplete embedded triple"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -472,7 +472,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - bad - quad embedded triple"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -483,7 +483,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - bad - variable in embedded triple in VALUES """; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -494,7 +494,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - bad - blank node in embedded triple in VALUES """; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -505,7 +505,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - bad - blank node in embedded triple in FILTER"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -516,7 +516,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - bad - blank node in embedded triple in BIND"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -527,7 +527,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - bad - empty annotation"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -538,7 +538,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - bad - triples in annotation"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -549,7 +549,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - bad - path - seq"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -560,7 +560,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - bad - path - alt"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -571,7 +571,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - bad - path - p*"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -582,7 +582,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - bad - path - p+"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -593,7 +593,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - bad - path - p?"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -604,7 +604,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - bad - path in CONSTRUCT"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -615,7 +615,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - bad - path in CONSTRUCT"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -626,7 +626,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - update"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -637,7 +637,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - update"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -648,7 +648,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - update"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -659,7 +659,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - update with embedding"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -670,7 +670,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - update with embedded object"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -681,7 +681,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - update with annotation template"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -692,7 +692,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - update with annotation, template and pattern"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -703,7 +703,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - update DATA with annotation"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -714,7 +714,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - update - bad syntax"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -725,7 +725,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - update - bad syntax"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -736,7 +736,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - update - bad syntax"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -747,7 +747,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - update - bad syntax"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -758,7 +758,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - all graph triples (JSON results)"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -769,7 +769,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - all graph triples (XML results)"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -780,7 +780,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - match constant embedded triple"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -791,7 +791,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - match embedded triple, var subject"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -802,7 +802,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - match embedded triple, var predicate"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -813,7 +813,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - match embedded triple, var object"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -824,7 +824,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - no match of embedded triple"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -835,7 +835,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - Asserted and embedded triple"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -846,7 +846,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - Asserted and embedded triple"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -857,7 +857,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - Pattern - Variable for embedded triple"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -868,7 +868,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - Pattern - No match"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -879,7 +879,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - Pattern - match variables in triple terms"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -890,7 +890,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - Pattern - Nesting 1"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -901,7 +901,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - Pattern - Nesting - 2"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -912,7 +912,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - Pattern - Match and nesting"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -923,7 +923,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - Pattern - Same variable"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -934,7 +934,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - CONSTRUCT with constant template"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -945,7 +945,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - CONSTRUCT WHERE with constant template"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -956,7 +956,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - CONSTRUCT - about every triple"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -967,7 +967,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - CONSTRUCT with annotation syntax"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -978,7 +978,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - CONSTRUCT WHERE with annotation syntax"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -989,7 +989,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - GRAPH"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -1000,7 +1000,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - GRAPHs with blank node"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -1011,7 +1011,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - Embedded triple - BIND - CONSTRUCT"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -1022,7 +1022,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - Embedded triple - Functions"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -1033,7 +1033,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - Embedded triple - sameTerm"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -1044,7 +1044,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - Embedded triple - value-equality"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -1055,7 +1055,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - Embedded triple - value-inequality"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -1066,7 +1066,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - Embedded triple - value-inequality"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -1077,7 +1077,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - Embedded triple - ORDER BY"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -1088,7 +1088,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - Embedded triple - ordering"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -1099,7 +1099,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - Update"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -1110,7 +1110,7 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - Update - annotation"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . [ a earl:Assertion; @@ -1121,5 +1121,5 @@ a earl:TestResult; earl:outcome earl:passed; dc:name """SPARQL-star - Update - data"""; - dc:date "2021-05-29T11:33:48-07:00"^^xsd:dateTime]; + dc:date "2021-07-25T14:02:40-07:00"^^xsd:dateTime]; earl:mode earl:automatic ] . diff --git a/etc/sparql11.bnf b/etc/sparql11.bnf index be4c9e0f..02ef0973 100644 --- a/etc/sparql11.bnf +++ b/etc/sparql11.bnf @@ -79,7 +79,7 @@ [63] InlineDataOneVar ::= Var '{' DataBlockValue* '}' [64] InlineDataFull ::= ( NIL | '(' Var* ')' ) '{' ( '(' DataBlockValue* ')' | NIL )* '}' - [65] DataBlockValue ::= EmbTD | iri | RDFLiteral | NumericLiteral | BooleanLiteral | 'UNDEF' + [65] DataBlockValue ::= QuotedTriple | iri | RDFLiteral | NumericLiteral | BooleanLiteral | 'UNDEF' [66] MinusGraphPattern ::= 'MINUS' GroupGraphPattern [67] GroupOrUnionGraphPattern::= GroupGraphPattern ( 'UNION' GroupGraphPattern )* [68] Filter ::= 'FILTER' Constraint @@ -89,14 +89,14 @@ [72] ExpressionList ::= NIL | '(' Expression ( ',' Expression )* ')' [73] ConstructTemplate ::= '{' ConstructTriples? '}' [74] ConstructTriples ::= TriplesSameSubject ( '.' ConstructTriples? )? - [75] TriplesSameSubject ::= VarOrTermOrEmbTP PropertyListNotEmpty + [75] TriplesSameSubject ::= VarOrTermOrQuotedTP PropertyListNotEmpty | TriplesNode PropertyList [76] PropertyList ::= PropertyListNotEmpty? [77] PropertyListNotEmpty ::= Verb ObjectList ( ';' ( Verb ObjectList )? )* [78] Verb ::= VarOrIri | 'a' [79] ObjectList ::= Object ( ',' Object )* [80] Object ::= GraphNode AnnotationPattern? - [81] TriplesSameSubjectPath ::= VarOrTermOrEmbTP PropertyListPathNotEmpty + [81] TriplesSameSubjectPath ::= VarOrTermOrQuotedTP PropertyListPathNotEmpty | TriplesNodePath PropertyListPath [82] PropertyListPath ::= PropertyListPathNotEmpty? [83] PropertyListPathNotEmpty::= ( VerbPath | VerbSimple ) ObjectListPath @@ -122,8 +122,8 @@ [101] BlankNodePropertyListPath::= '[' PropertyListPathNotEmpty ']' [102] Collection ::= '(' GraphNode+ ')' [103] CollectionPath ::= '(' GraphNodePath+ ')' - [104] GraphNode ::= VarOrTermOrEmbTP | TriplesNode - [105] GraphNodePath ::= VarOrTermOrEmbTP | TriplesNodePath + [104] GraphNode ::= VarOrTermOrQuotedTP | TriplesNode + [105] GraphNodePath ::= VarOrTermOrQuotedTP | TriplesNodePath [106] VarOrTerm ::= Var | GraphTerm [107] VarOrIri ::= Var | iri [108] Var ::= VAR1 | VAR2 @@ -157,10 +157,7 @@ [119] PrimaryExpression ::= BrackettedExpression | BuiltInCall | iriOrFunction | RDFLiteral | NumericLiteral | BooleanLiteral | Var - | ExprEmbTP - [119a] ExprEmbTP ::= '<<' ExprVarOrTerm Verb ExprVarOrTerm '>>' - [119b] ExprVarOrTerm ::= iri | RDFLiteral | NumericLiteral | BooleanLiteral - | Var | ExprEmbTP + | ExprQuotedTP [120] BrackettedExpression ::= '(' Expression ')' [121] BuiltInCall ::= Aggregate | 'STR' '(' Expression ')' @@ -248,14 +245,17 @@ [136] iri ::= IRIREF | PrefixedName [137] PrefixedName ::= PNAME_LN | PNAME_NS [138] BlankNode ::= BLANK_NODE_LABEL | ANON - [174] EmbTP ::= '<<' EmbSubjectOrObject Verb EmbSubjectOrObject '>>' - [175] EmbSubjectOrObject ::= Var | BlankNode | iri | RDFLiteral - | NumericLiteral | BooleanLiteral | EmbTP - [176] VarOrTermOrEmbTP ::= Var | GraphTerm | EmbTP - [177] AnnotationPattern ::= '{|' PropertyListNotEmpty '|}' - [178] AnnotationPatternPath ::= '{|' PropertyListPathNotEmpty '|}' - [179] EmbTD ::= '<<' DataValueTerm ( iri | 'a' ) DataValueTerm '>>' - [180] DataValueTerm ::= EmbTD | iri | RDFLiteral | NumericLiteral | BooleanLiteral + + [174] QuotedTP ::= '<<' qtSubjectOrObject Verb qtSubjectOrObject '>>' + [175] QuotedTriple ::= '<<' DataValueTerm (iri | 'a' ) DataValueTerm '>>' + [176] qtSubjectOrObject ::= Var | BlankNode | iri | RDFLiteral + | NumericLiteral | BooleanLiteral | QuotedTP + [177] DataValueTerm ::= iri | RDFLiteral | NumericLiteral | BooleanLiteral | QuotedTriple + [178] VarOrTermOrQuotedTP ::= Var | GraphTerm | QuotedTP + [179] AnnotationPattern ::= '{|' PropertyListNotEmpty '|}' + [180] AnnotationPatternPath ::= '{|' PropertyListPathNotEmpty '|}' + [181] ExprQuotedTP ::= '<<' ExprVarOrTerm Verb ExprVarOrTerm '>>' + [182] ExprVarOrTerm ::= iri | RDFLiteral | NumericLiteral | BooleanLiteral | Var | ExprQuotedTP @terminals diff --git a/etc/sparql11.html b/etc/sparql11.html index 8c4bd4fc..fd9fe33c 100644 --- a/etc/sparql11.html +++ b/etc/sparql11.html @@ -399,7 +399,7 @@ [65] DataBlockValue ::= - EmbTD | iri | RDFLiteral | NumericLiteral | BooleanLiteral | "UNDEF" + QuotedTriple | iri | RDFLiteral | NumericLiteral | BooleanLiteral | "UNDEF" [66] @@ -459,7 +459,7 @@ [75] TriplesSameSubject ::= - ( VarOrTermOrEmbTP PropertyListNotEmpty) | ( TriplesNode PropertyList) + ( VarOrTermOrQuotedTP PropertyListNotEmpty) | ( TriplesNode PropertyList) [76] @@ -495,7 +495,7 @@ [81] TriplesSameSubjectPath ::= - ( VarOrTermOrEmbTP PropertyListPathNotEmpty) | ( TriplesNodePath PropertyListPath) + ( VarOrTermOrQuotedTP PropertyListPathNotEmpty) | ( TriplesNodePath PropertyListPath) [82] @@ -633,13 +633,13 @@ [104] GraphNode ::= - VarOrTermOrEmbTP | TriplesNode + VarOrTermOrQuotedTP | TriplesNode [105] GraphNodePath ::= - VarOrTermOrEmbTP | TriplesNodePath + VarOrTermOrQuotedTP | TriplesNodePath [106] @@ -733,19 +733,7 @@ [119] PrimaryExpression ::= - BrackettedExpression | BuiltInCall | iriOrFunction | RDFLiteral | NumericLiteral | BooleanLiteral | Var | ExprEmbTP - - - [119a] - ExprEmbTP - ::= - "<<" ExprVarOrTerm Verb ExprVarOrTerm ">>" - - - [119b] - ExprVarOrTerm - ::= - iri | RDFLiteral | NumericLiteral | BooleanLiteral | Var | ExprEmbTP + BrackettedExpression | BuiltInCall | iriOrFunction | RDFLiteral | NumericLiteral | BooleanLiteral | Var | ExprQuotedTP [120] @@ -1191,47 +1179,59 @@ ::= BLANK_NODE_LABEL | ANON - + [174] - EmbTP + QuotedTP ::= - "<<" EmbSubjectOrObject Verb EmbSubjectOrObject ">>" + "<<" qtSubjectOrObject Verb qtSubjectOrObject ">>" - + [175] - EmbSubjectOrObject + QuotedTriple ::= - Var | BlankNode | iri | RDFLiteral | NumericLiteral | BooleanLiteral | EmbTP + "<<" DataValueTerm ( iri | "a") DataValueTerm ">>" - + [176] - VarOrTermOrEmbTP + qtSubjectOrObject ::= - Var | GraphTerm | EmbTP + Var | BlankNode | iri | RDFLiteral | NumericLiteral | BooleanLiteral | QuotedTP - + [177] + DataValueTerm + ::= + iri | RDFLiteral | NumericLiteral | BooleanLiteral | QuotedTriple + + + [178] + VarOrTermOrQuotedTP + ::= + Var | GraphTerm | QuotedTP + + + [179] AnnotationPattern ::= "{|" PropertyListNotEmpty "|}" - [178] + [180] AnnotationPatternPath ::= "{|" PropertyListPathNotEmpty "|}" - - [179] - EmbTD + + [181] + ExprQuotedTP ::= - "<<" DataValueTerm ( iri | "a") DataValueTerm ">>" + "<<" ExprVarOrTerm Verb ExprVarOrTerm ">>" - - [180] - DataValueTerm + + [182] + ExprVarOrTerm ::= - EmbTD | iri | RDFLiteral | NumericLiteral | BooleanLiteral + iri | RDFLiteral | NumericLiteral | BooleanLiteral | Var | ExprQuotedTP @terminals diff --git a/etc/sparql11.ll1.sxp b/etc/sparql11.ll1.sxp index 46ac2b78..a720e8de 100644 --- a/etc/sparql11.ll1.sxp +++ b/etc/sparql11.ll1.sxp @@ -1098,7 +1098,7 @@ DOUBLE_NEGATIVE DOUBLE_POSITIVE INTEGER INTEGER_NEGATIVE INTEGER_POSITIVE IRIREF PNAME_LN PNAME_NS STRING_LITERAL1 STRING_LITERAL2 STRING_LITERAL_LONG1 STRING_LITERAL_LONG2 "UNDEF" "false" "true" "}" ) - (alt EmbTD iri RDFLiteral NumericLiteral BooleanLiteral "UNDEF")) + (alt QuotedTriple iri RDFLiteral NumericLiteral BooleanLiteral "UNDEF")) (rule MinusGraphPattern "66" (first "MINUS") (follow "(" "." "<<" ANON "BIND" BLANK_NODE_LABEL DECIMAL DECIMAL_NEGATIVE @@ -1363,7 +1363,7 @@ STRING_LITERAL2 STRING_LITERAL_LONG1 STRING_LITERAL_LONG2 VAR1 VAR2 "false" "true" ) (follow "." "GRAPH" "}") - (seq VarOrTermOrEmbTP PropertyListNotEmpty)) + (seq VarOrTermOrQuotedTP PropertyListNotEmpty)) (rule _TriplesSameSubject_2 "75.2" (first "(" "[") (follow "." "GRAPH" "}") @@ -1464,7 +1464,7 @@ STRING_LITERAL2 STRING_LITERAL_LONG1 STRING_LITERAL_LONG2 VAR1 VAR2 "false" "true" ) (follow "." "BIND" "FILTER" "GRAPH" "MINUS" "OPTIONAL" "SERVICE" "VALUES" "{" "}") - (seq VarOrTermOrEmbTP PropertyListPathNotEmpty)) + (seq VarOrTermOrQuotedTP PropertyListPathNotEmpty)) (rule _TriplesSameSubjectPath_2 "81.2" (first "(" "[") (follow "." "BIND" "FILTER" "GRAPH" "MINUS" "OPTIONAL" "SERVICE" "VALUES" "{" "}") @@ -1908,7 +1908,7 @@ NIL "OPTIONAL" PNAME_LN PNAME_NS "SERVICE" STRING_LITERAL1 STRING_LITERAL2 STRING_LITERAL_LONG1 STRING_LITERAL_LONG2 "VALUES" VAR1 VAR2 "[" "]" "false" "true" "{" "{|" "|}" "}" ) - (alt VarOrTermOrEmbTP TriplesNode)) + (alt VarOrTermOrQuotedTP TriplesNode)) (rule GraphNodePath "105" (first "(" "<<" ANON BLANK_NODE_LABEL DECIMAL DECIMAL_NEGATIVE DECIMAL_POSITIVE DOUBLE DOUBLE_NEGATIVE DOUBLE_POSITIVE INTEGER @@ -1921,7 +1921,7 @@ NIL "OPTIONAL" PNAME_LN PNAME_NS "SERVICE" STRING_LITERAL1 STRING_LITERAL2 STRING_LITERAL_LONG1 STRING_LITERAL_LONG2 "VALUES" VAR1 VAR2 "[" "]" "false" "true" "{" "{|" "|}" "}" ) - (alt VarOrTermOrEmbTP TriplesNodePath)) + (alt VarOrTermOrQuotedTP TriplesNodePath)) (rule VarOrTerm "106" (first ANON BLANK_NODE_LABEL DECIMAL DECIMAL_NEGATIVE DECIMAL_POSITIVE DOUBLE DOUBLE_NEGATIVE DOUBLE_POSITIVE INTEGER INTEGER_NEGATIVE INTEGER_POSITIVE @@ -2315,21 +2315,7 @@ DECIMAL_NEGATIVE DECIMAL_POSITIVE DOUBLE_NEGATIVE DOUBLE_POSITIVE "IN" INTEGER_NEGATIVE INTEGER_POSITIVE "NOT" "||" ) (alt BrackettedExpression BuiltInCall iriOrFunction RDFLiteral NumericLiteral - BooleanLiteral Var ExprEmbTP )) - (rule ExprEmbTP "119a" - (first "<<") - (follow "!=" "&&" ")" "*" "+" "," "-" "/" ";" "<" "<=" "=" ">" ">=" ">>" "AS" - DECIMAL_NEGATIVE DECIMAL_POSITIVE DOUBLE_NEGATIVE DOUBLE_POSITIVE "IN" - INTEGER_NEGATIVE INTEGER_POSITIVE IRIREF "NOT" PNAME_LN PNAME_NS VAR1 VAR2 - "a" "||" ) - (seq "<<" ExprVarOrTerm Verb ExprVarOrTerm ">>")) - (rule ExprVarOrTerm "119b" - (first "<<" DECIMAL DECIMAL_NEGATIVE DECIMAL_POSITIVE DOUBLE DOUBLE_NEGATIVE - DOUBLE_POSITIVE INTEGER INTEGER_NEGATIVE INTEGER_POSITIVE IRIREF PNAME_LN - PNAME_NS STRING_LITERAL1 STRING_LITERAL2 STRING_LITERAL_LONG1 - STRING_LITERAL_LONG2 VAR1 VAR2 "false" "true" ) - (follow ">>" IRIREF PNAME_LN PNAME_NS VAR1 VAR2 "a") - (alt iri RDFLiteral NumericLiteral BooleanLiteral Var ExprEmbTP)) + BooleanLiteral Var ExprQuotedTP )) (rule BrackettedExpression "120" (first "(") (follow "!=" "&&" "(" ")" "*" "+" "," "-" "." "/" ";" "<" "<<" "<=" "=" ">" @@ -4022,7 +4008,7 @@ STRING_LITERAL2 STRING_LITERAL_LONG1 STRING_LITERAL_LONG2 "VALUES" VAR1 VAR2 "[" "]" "^" "a" "false" "true" "{" "{|" "|}" "}" ) (alt BLANK_NODE_LABEL ANON)) - (rule EmbTP "174" + (rule QuotedTP "174" (first "<<") (follow "!" "(" ")" "," "." ";" "<<" ">>" ANON "BIND" BLANK_NODE_LABEL DECIMAL DECIMAL_NEGATIVE DECIMAL_POSITIVE DOUBLE DOUBLE_NEGATIVE @@ -4030,15 +4016,36 @@ IRIREF "MINUS" NIL "OPTIONAL" PNAME_LN PNAME_NS "SERVICE" STRING_LITERAL1 STRING_LITERAL2 STRING_LITERAL_LONG1 STRING_LITERAL_LONG2 "VALUES" VAR1 VAR2 "[" "]" "^" "a" "false" "true" "{" "{|" "|}" "}" ) - (seq "<<" EmbSubjectOrObject Verb EmbSubjectOrObject ">>")) - (rule EmbSubjectOrObject "175" + (seq "<<" qtSubjectOrObject Verb qtSubjectOrObject ">>")) + (rule QuotedTriple "175" + (first "<<") + (follow ")" "<<" ">>" DECIMAL DECIMAL_NEGATIVE DECIMAL_POSITIVE DOUBLE + DOUBLE_NEGATIVE DOUBLE_POSITIVE INTEGER INTEGER_NEGATIVE INTEGER_POSITIVE + IRIREF PNAME_LN PNAME_NS STRING_LITERAL1 STRING_LITERAL2 + STRING_LITERAL_LONG1 STRING_LITERAL_LONG2 "UNDEF" "a" "false" "true" "}" ) + (seq "<<" DataValueTerm _QuotedTriple_1 DataValueTerm ">>")) + (rule _QuotedTriple_1 "175.1" + (first IRIREF PNAME_LN PNAME_NS "a") + (follow "<<" DECIMAL DECIMAL_NEGATIVE DECIMAL_POSITIVE DOUBLE DOUBLE_NEGATIVE + DOUBLE_POSITIVE INTEGER INTEGER_NEGATIVE INTEGER_POSITIVE IRIREF PNAME_LN + PNAME_NS STRING_LITERAL1 STRING_LITERAL2 STRING_LITERAL_LONG1 + STRING_LITERAL_LONG2 "false" "true" ) + (alt iri "a")) + (rule qtSubjectOrObject "176" (first "<<" ANON BLANK_NODE_LABEL DECIMAL DECIMAL_NEGATIVE DECIMAL_POSITIVE DOUBLE DOUBLE_NEGATIVE DOUBLE_POSITIVE INTEGER INTEGER_NEGATIVE INTEGER_POSITIVE IRIREF PNAME_LN PNAME_NS STRING_LITERAL1 STRING_LITERAL2 STRING_LITERAL_LONG1 STRING_LITERAL_LONG2 VAR1 VAR2 "false" "true" ) (follow ">>" IRIREF PNAME_LN PNAME_NS VAR1 VAR2 "a") - (alt Var BlankNode iri RDFLiteral NumericLiteral BooleanLiteral EmbTP)) - (rule VarOrTermOrEmbTP "176" + (alt Var BlankNode iri RDFLiteral NumericLiteral BooleanLiteral QuotedTP)) + (rule DataValueTerm "177" + (first "<<" DECIMAL DECIMAL_NEGATIVE DECIMAL_POSITIVE DOUBLE DOUBLE_NEGATIVE + DOUBLE_POSITIVE INTEGER INTEGER_NEGATIVE INTEGER_POSITIVE IRIREF PNAME_LN + PNAME_NS STRING_LITERAL1 STRING_LITERAL2 STRING_LITERAL_LONG1 + STRING_LITERAL_LONG2 "false" "true" ) + (follow ">>" IRIREF PNAME_LN PNAME_NS "a") + (alt iri RDFLiteral NumericLiteral BooleanLiteral QuotedTriple)) + (rule VarOrTermOrQuotedTP "178" (first "<<" ANON BLANK_NODE_LABEL DECIMAL DECIMAL_NEGATIVE DECIMAL_POSITIVE DOUBLE DOUBLE_NEGATIVE DOUBLE_POSITIVE INTEGER INTEGER_NEGATIVE INTEGER_POSITIVE IRIREF NIL PNAME_LN PNAME_NS STRING_LITERAL1 @@ -4050,38 +4057,31 @@ NIL "OPTIONAL" PNAME_LN PNAME_NS "SERVICE" STRING_LITERAL1 STRING_LITERAL2 STRING_LITERAL_LONG1 STRING_LITERAL_LONG2 "VALUES" VAR1 VAR2 "[" "]" "^" "a" "false" "true" "{" "{|" "|}" "}" ) - (alt Var GraphTerm EmbTP)) - (rule AnnotationPattern "177" + (alt Var GraphTerm QuotedTP)) + (rule AnnotationPattern "179" (first "{|") (follow "," "." ";" "BIND" "FILTER" "GRAPH" "MINUS" "OPTIONAL" "SERVICE" "VALUES" "]" "{" "|}" "}" ) (seq "{|" PropertyListNotEmpty "|}")) - (rule AnnotationPatternPath "178" + (rule AnnotationPatternPath "180" (first "{|") (follow "," "." ";" "BIND" "FILTER" "GRAPH" "MINUS" "OPTIONAL" "SERVICE" "VALUES" "]" "{" "|}" "}" ) (seq "{|" PropertyListPathNotEmpty "|}")) - (rule EmbTD "179" + (rule ExprQuotedTP "181" (first "<<") - (follow ")" "<<" ">>" DECIMAL DECIMAL_NEGATIVE DECIMAL_POSITIVE DOUBLE - DOUBLE_NEGATIVE DOUBLE_POSITIVE INTEGER INTEGER_NEGATIVE INTEGER_POSITIVE - IRIREF PNAME_LN PNAME_NS STRING_LITERAL1 STRING_LITERAL2 - STRING_LITERAL_LONG1 STRING_LITERAL_LONG2 "UNDEF" "a" "false" "true" "}" ) - (seq "<<" DataValueTerm _EmbTD_1 DataValueTerm ">>")) - (rule _EmbTD_1 "179.1" - (first IRIREF PNAME_LN PNAME_NS "a") - (follow "<<" DECIMAL DECIMAL_NEGATIVE DECIMAL_POSITIVE DOUBLE DOUBLE_NEGATIVE - DOUBLE_POSITIVE INTEGER INTEGER_NEGATIVE INTEGER_POSITIVE IRIREF PNAME_LN - PNAME_NS STRING_LITERAL1 STRING_LITERAL2 STRING_LITERAL_LONG1 - STRING_LITERAL_LONG2 "false" "true" ) - (alt iri "a")) - (rule DataValueTerm "180" + (follow "!=" "&&" ")" "*" "+" "," "-" "/" ";" "<" "<=" "=" ">" ">=" ">>" "AS" + DECIMAL_NEGATIVE DECIMAL_POSITIVE DOUBLE_NEGATIVE DOUBLE_POSITIVE "IN" + INTEGER_NEGATIVE INTEGER_POSITIVE IRIREF "NOT" PNAME_LN PNAME_NS VAR1 VAR2 + "a" "||" ) + (seq "<<" ExprVarOrTerm Verb ExprVarOrTerm ">>")) + (rule ExprVarOrTerm "182" (first "<<" DECIMAL DECIMAL_NEGATIVE DECIMAL_POSITIVE DOUBLE DOUBLE_NEGATIVE DOUBLE_POSITIVE INTEGER INTEGER_NEGATIVE INTEGER_POSITIVE IRIREF PNAME_LN PNAME_NS STRING_LITERAL1 STRING_LITERAL2 STRING_LITERAL_LONG1 - STRING_LITERAL_LONG2 "false" "true" ) - (follow ">>" IRIREF PNAME_LN PNAME_NS "a") - (alt EmbTD iri RDFLiteral NumericLiteral BooleanLiteral)) + STRING_LITERAL_LONG2 VAR1 VAR2 "false" "true" ) + (follow ">>" IRIREF PNAME_LN PNAME_NS VAR1 VAR2 "a") + (alt iri RDFLiteral NumericLiteral BooleanLiteral Var ExprQuotedTP)) (terminals _terminals (seq)) (terminal IRIREF "139" (seq "<" (star (alt (range "^#x00-#x20<>\"{}|^`\\") UCHAR)) ">")) (terminal PNAME_NS "140" (seq (opt PN_PREFIX) ":")) @@ -5460,16 +5460,6 @@ DECIMAL_NEGATIVE DECIMAL_POSITIVE DOUBLE_NEGATIVE DOUBLE_POSITIVE "IN" INTEGER_NEGATIVE INTEGER_POSITIVE "NOT" "||" ) (seq PrimaryExpression)) - (rule _ExprEmbTP_1 "119a.1" - (first "<<" DECIMAL DECIMAL_NEGATIVE DECIMAL_POSITIVE DOUBLE DOUBLE_NEGATIVE - DOUBLE_POSITIVE INTEGER INTEGER_NEGATIVE INTEGER_POSITIVE IRIREF PNAME_LN - PNAME_NS STRING_LITERAL1 STRING_LITERAL2 STRING_LITERAL_LONG1 - STRING_LITERAL_LONG2 VAR1 VAR2 "false" "true" ) - (follow "!=" "&&" ")" "*" "+" "," "-" "/" ";" "<" "<=" "=" ">" ">=" ">>" "AS" - DECIMAL_NEGATIVE DECIMAL_POSITIVE DOUBLE_NEGATIVE DOUBLE_POSITIVE "IN" - INTEGER_NEGATIVE INTEGER_POSITIVE IRIREF "NOT" PNAME_LN PNAME_NS VAR1 VAR2 - "a" "||" ) - (seq ExprVarOrTerm Verb ExprVarOrTerm ">>")) (rule _BrackettedExpression_1 "120.1" (first "!" "(" "+" "-" "<<" "ABS" "AVG" "BNODE" "BOUND" "CEIL" "COALESCE" "CONCAT" "CONTAINS" "COUNT" "DATATYPE" "DAY" DECIMAL DECIMAL_NEGATIVE @@ -6165,7 +6155,7 @@ STRING_LITERAL_LONG1 STRING_LITERAL_LONG2 "UNDEF" "VALUES" VAR1 VAR2 "[" "]" "^" "a" "false" "true" "{" "{|" "||" "|}" "}" ) (seq _RDFLiteral_1)) - (rule _EmbTP_1 "174.1" + (rule _QuotedTP_1 "174.1" (first "<<" ANON BLANK_NODE_LABEL DECIMAL DECIMAL_NEGATIVE DECIMAL_POSITIVE DOUBLE DOUBLE_NEGATIVE DOUBLE_POSITIVE INTEGER INTEGER_NEGATIVE INTEGER_POSITIVE IRIREF PNAME_LN PNAME_NS STRING_LITERAL1 STRING_LITERAL2 @@ -6176,27 +6166,37 @@ IRIREF "MINUS" NIL "OPTIONAL" PNAME_LN PNAME_NS "SERVICE" STRING_LITERAL1 STRING_LITERAL2 STRING_LITERAL_LONG1 STRING_LITERAL_LONG2 "VALUES" VAR1 VAR2 "[" "]" "^" "a" "false" "true" "{" "{|" "|}" "}" ) - (seq EmbSubjectOrObject Verb EmbSubjectOrObject ">>")) - (rule _AnnotationPattern_1 "177.1" + (seq qtSubjectOrObject Verb qtSubjectOrObject ">>")) + (rule _QuotedTriple_2 "175.2" + (first "<<" DECIMAL DECIMAL_NEGATIVE DECIMAL_POSITIVE DOUBLE DOUBLE_NEGATIVE + DOUBLE_POSITIVE INTEGER INTEGER_NEGATIVE INTEGER_POSITIVE IRIREF PNAME_LN + PNAME_NS STRING_LITERAL1 STRING_LITERAL2 STRING_LITERAL_LONG1 + STRING_LITERAL_LONG2 "false" "true" ) + (follow ")" "<<" ">>" DECIMAL DECIMAL_NEGATIVE DECIMAL_POSITIVE DOUBLE + DOUBLE_NEGATIVE DOUBLE_POSITIVE INTEGER INTEGER_NEGATIVE INTEGER_POSITIVE + IRIREF PNAME_LN PNAME_NS STRING_LITERAL1 STRING_LITERAL2 + STRING_LITERAL_LONG1 STRING_LITERAL_LONG2 "UNDEF" "a" "false" "true" "}" ) + (seq DataValueTerm _QuotedTriple_1 DataValueTerm ">>")) + (rule _AnnotationPattern_1 "179.1" (first IRIREF PNAME_LN PNAME_NS VAR1 VAR2 "a") (follow "," "." ";" "BIND" "FILTER" "GRAPH" "MINUS" "OPTIONAL" "SERVICE" "VALUES" "]" "{" "|}" "}" ) (seq PropertyListNotEmpty "|}")) - (rule _AnnotationPatternPath_1 "178.1" + (rule _AnnotationPatternPath_1 "180.1" (first "!" "(" IRIREF PNAME_LN PNAME_NS VAR1 VAR2 "^" "a") (follow "," "." ";" "BIND" "FILTER" "GRAPH" "MINUS" "OPTIONAL" "SERVICE" "VALUES" "]" "{" "|}" "}" ) (seq PropertyListPathNotEmpty "|}")) - (rule _EmbTD_2 "179.2" + (rule _ExprQuotedTP_1 "181.1" (first "<<" DECIMAL DECIMAL_NEGATIVE DECIMAL_POSITIVE DOUBLE DOUBLE_NEGATIVE DOUBLE_POSITIVE INTEGER INTEGER_NEGATIVE INTEGER_POSITIVE IRIREF PNAME_LN PNAME_NS STRING_LITERAL1 STRING_LITERAL2 STRING_LITERAL_LONG1 - STRING_LITERAL_LONG2 "false" "true" ) - (follow ")" "<<" ">>" DECIMAL DECIMAL_NEGATIVE DECIMAL_POSITIVE DOUBLE - DOUBLE_NEGATIVE DOUBLE_POSITIVE INTEGER INTEGER_NEGATIVE INTEGER_POSITIVE - IRIREF PNAME_LN PNAME_NS STRING_LITERAL1 STRING_LITERAL2 - STRING_LITERAL_LONG1 STRING_LITERAL_LONG2 "UNDEF" "a" "false" "true" "}" ) - (seq DataValueTerm _EmbTD_1 DataValueTerm ">>")) + STRING_LITERAL_LONG2 VAR1 VAR2 "false" "true" ) + (follow "!=" "&&" ")" "*" "+" "," "-" "/" ";" "<" "<=" "=" ">" ">=" ">>" "AS" + DECIMAL_NEGATIVE DECIMAL_POSITIVE DOUBLE_NEGATIVE DOUBLE_POSITIVE "IN" + INTEGER_NEGATIVE INTEGER_POSITIVE IRIREF "NOT" PNAME_LN PNAME_NS VAR1 VAR2 + "a" "||" ) + (seq ExprVarOrTerm Verb ExprVarOrTerm ">>")) (rule _SubSelect_2 "8.2" (first "GROUP" "HAVING" "LIMIT" "OFFSET" "ORDER" "VALUES" _eps) (follow _eof "}") @@ -6499,13 +6499,6 @@ STRING_LITERAL_LONG1 STRING_LITERAL_LONG2 "VALUES" VAR1 VAR2 "[" "]" "^" "a" "false" "true" "{" "{|" "|}" "}" ) (seq ")")) - (rule _ExprEmbTP_2 "119a.2" - (first IRIREF PNAME_LN PNAME_NS VAR1 VAR2 "a") - (follow "!=" "&&" ")" "*" "+" "," "-" "/" ";" "<" "<=" "=" ">" ">=" ">>" "AS" - DECIMAL_NEGATIVE DECIMAL_POSITIVE DOUBLE_NEGATIVE DOUBLE_POSITIVE "IN" - INTEGER_NEGATIVE INTEGER_POSITIVE IRIREF "NOT" PNAME_LN PNAME_NS VAR1 VAR2 - "a" "||" ) - (seq Verb ExprVarOrTerm ">>")) (rule _BrackettedExpression_2 "120.2" (first ")") (follow "!=" "&&" "(" ")" "*" "+" "," "-" "." "/" ";" "<" "<<" "<=" "=" ">" @@ -7201,7 +7194,7 @@ "||" "}" ) (seq _Aggregate_15 Expression _Aggregate_16 ")")) (rule _Aggregate_33 "127.33" (first "=") (follow ")") (seq "=" String)) - (rule _EmbTP_2 "174.2" + (rule _QuotedTP_2 "174.2" (first IRIREF PNAME_LN PNAME_NS VAR1 VAR2 "a") (follow "!" "(" ")" "," "." ";" "<<" ">>" ANON "BIND" BLANK_NODE_LABEL DECIMAL DECIMAL_NEGATIVE DECIMAL_POSITIVE DOUBLE DOUBLE_NEGATIVE @@ -7209,24 +7202,31 @@ IRIREF "MINUS" NIL "OPTIONAL" PNAME_LN PNAME_NS "SERVICE" STRING_LITERAL1 STRING_LITERAL2 STRING_LITERAL_LONG1 STRING_LITERAL_LONG2 "VALUES" VAR1 VAR2 "[" "]" "^" "a" "false" "true" "{" "{|" "|}" "}" ) - (seq Verb EmbSubjectOrObject ">>")) - (rule _AnnotationPattern_2 "177.2" + (seq Verb qtSubjectOrObject ">>")) + (rule _QuotedTriple_3 "175.3" + (first IRIREF PNAME_LN PNAME_NS "a") + (follow ")" "<<" ">>" DECIMAL DECIMAL_NEGATIVE DECIMAL_POSITIVE DOUBLE + DOUBLE_NEGATIVE DOUBLE_POSITIVE INTEGER INTEGER_NEGATIVE INTEGER_POSITIVE + IRIREF PNAME_LN PNAME_NS STRING_LITERAL1 STRING_LITERAL2 + STRING_LITERAL_LONG1 STRING_LITERAL_LONG2 "UNDEF" "a" "false" "true" "}" ) + (seq _QuotedTriple_1 DataValueTerm ">>")) + (rule _AnnotationPattern_2 "179.2" (first "|}") (follow "," "." ";" "BIND" "FILTER" "GRAPH" "MINUS" "OPTIONAL" "SERVICE" "VALUES" "]" "{" "|}" "}" ) (seq "|}")) - (rule _AnnotationPatternPath_2 "178.2" + (rule _AnnotationPatternPath_2 "180.2" (first "|}") (follow "," "." ";" "BIND" "FILTER" "GRAPH" "MINUS" "OPTIONAL" "SERVICE" "VALUES" "]" "{" "|}" "}" ) (seq "|}")) - (rule _EmbTD_3 "179.3" - (first IRIREF PNAME_LN PNAME_NS "a") - (follow ")" "<<" ">>" DECIMAL DECIMAL_NEGATIVE DECIMAL_POSITIVE DOUBLE - DOUBLE_NEGATIVE DOUBLE_POSITIVE INTEGER INTEGER_NEGATIVE INTEGER_POSITIVE - IRIREF PNAME_LN PNAME_NS STRING_LITERAL1 STRING_LITERAL2 - STRING_LITERAL_LONG1 STRING_LITERAL_LONG2 "UNDEF" "a" "false" "true" "}" ) - (seq _EmbTD_1 DataValueTerm ">>")) + (rule _ExprQuotedTP_2 "181.2" + (first IRIREF PNAME_LN PNAME_NS VAR1 VAR2 "a") + (follow "!=" "&&" ")" "*" "+" "," "-" "/" ";" "<" "<=" "=" ">" ">=" ">>" "AS" + DECIMAL_NEGATIVE DECIMAL_POSITIVE DOUBLE_NEGATIVE DOUBLE_POSITIVE "IN" + INTEGER_NEGATIVE INTEGER_POSITIVE IRIREF "NOT" PNAME_LN PNAME_NS VAR1 VAR2 + "a" "||" ) + (seq Verb ExprVarOrTerm ">>")) (rule _ConstructQuery_17 "10.17" (first "GROUP" "HAVING" "LIMIT" "OFFSET" "ORDER" _eps) (follow "VALUES" _eof) @@ -7286,16 +7286,6 @@ "isIRI" "isLITERAL" "isNUMERIC" "isTRIPLE" "isURI" "sameTerm" "true" "{" "||" "}" ) (seq _ArgList_3 ")")) - (rule _ExprEmbTP_3 "119a.3" - (first "<<" DECIMAL DECIMAL_NEGATIVE DECIMAL_POSITIVE DOUBLE DOUBLE_NEGATIVE - DOUBLE_POSITIVE INTEGER INTEGER_NEGATIVE INTEGER_POSITIVE IRIREF PNAME_LN - PNAME_NS STRING_LITERAL1 STRING_LITERAL2 STRING_LITERAL_LONG1 - STRING_LITERAL_LONG2 VAR1 VAR2 "false" "true" ) - (follow "!=" "&&" ")" "*" "+" "," "-" "/" ";" "<" "<=" "=" ">" ">=" ">>" "AS" - DECIMAL_NEGATIVE DECIMAL_POSITIVE DOUBLE_NEGATIVE DOUBLE_POSITIVE "IN" - INTEGER_NEGATIVE INTEGER_POSITIVE IRIREF "NOT" PNAME_LN PNAME_NS VAR1 VAR2 - "a" "||" ) - (seq ExprVarOrTerm ">>")) (rule _BuiltInCall_91 "121.91" (first ",") (follow "!=" "&&" "(" ")" "*" "+" "," "-" "." "/" ";" "<" "<<" "<=" "=" ">" @@ -7626,7 +7616,7 @@ (first STRING_LITERAL1 STRING_LITERAL2 STRING_LITERAL_LONG1 STRING_LITERAL_LONG2) (follow ")") (seq String)) - (rule _EmbTP_3 "174.3" + (rule _QuotedTP_3 "174.3" (first "<<" ANON BLANK_NODE_LABEL DECIMAL DECIMAL_NEGATIVE DECIMAL_POSITIVE DOUBLE DOUBLE_NEGATIVE DOUBLE_POSITIVE INTEGER INTEGER_NEGATIVE INTEGER_POSITIVE IRIREF PNAME_LN PNAME_NS STRING_LITERAL1 STRING_LITERAL2 @@ -7637,8 +7627,8 @@ IRIREF "MINUS" NIL "OPTIONAL" PNAME_LN PNAME_NS "SERVICE" STRING_LITERAL1 STRING_LITERAL2 STRING_LITERAL_LONG1 STRING_LITERAL_LONG2 "VALUES" VAR1 VAR2 "[" "]" "^" "a" "false" "true" "{" "{|" "|}" "}" ) - (seq EmbSubjectOrObject ">>")) - (rule _EmbTD_4 "179.4" + (seq qtSubjectOrObject ">>")) + (rule _QuotedTriple_4 "175.4" (first "<<" DECIMAL DECIMAL_NEGATIVE DECIMAL_POSITIVE DOUBLE DOUBLE_NEGATIVE DOUBLE_POSITIVE INTEGER INTEGER_NEGATIVE INTEGER_POSITIVE IRIREF PNAME_LN PNAME_NS STRING_LITERAL1 STRING_LITERAL2 STRING_LITERAL_LONG1 @@ -7648,6 +7638,16 @@ IRIREF PNAME_LN PNAME_NS STRING_LITERAL1 STRING_LITERAL2 STRING_LITERAL_LONG1 STRING_LITERAL_LONG2 "UNDEF" "a" "false" "true" "}" ) (seq DataValueTerm ">>")) + (rule _ExprQuotedTP_3 "181.3" + (first "<<" DECIMAL DECIMAL_NEGATIVE DECIMAL_POSITIVE DOUBLE DOUBLE_NEGATIVE + DOUBLE_POSITIVE INTEGER INTEGER_NEGATIVE INTEGER_POSITIVE IRIREF PNAME_LN + PNAME_NS STRING_LITERAL1 STRING_LITERAL2 STRING_LITERAL_LONG1 + STRING_LITERAL_LONG2 VAR1 VAR2 "false" "true" ) + (follow "!=" "&&" ")" "*" "+" "," "-" "/" ";" "<" "<=" "=" ">" ">=" ">>" "AS" + DECIMAL_NEGATIVE DECIMAL_POSITIVE DOUBLE_NEGATIVE DOUBLE_POSITIVE "IN" + INTEGER_NEGATIVE INTEGER_POSITIVE IRIREF "NOT" PNAME_LN PNAME_NS VAR1 VAR2 + "a" "||" ) + (seq ExprVarOrTerm ">>")) (rule _ConstructQuery_19 "10.19" (first "}") (follow "VALUES" _eof) @@ -7664,13 +7664,6 @@ (first "DEFAULT" "GRAPH" IRIREF PNAME_LN PNAME_NS) (follow ";" _eof) (seq GraphOrDefault)) - (rule _ExprEmbTP_4 "119a.4" - (first ">>") - (follow "!=" "&&" ")" "*" "+" "," "-" "/" ";" "<" "<=" "=" ">" ">=" ">>" "AS" - DECIMAL_NEGATIVE DECIMAL_POSITIVE DOUBLE_NEGATIVE DOUBLE_POSITIVE "IN" - INTEGER_NEGATIVE INTEGER_POSITIVE IRIREF "NOT" PNAME_LN PNAME_NS VAR1 VAR2 - "a" "||" ) - (seq ">>")) (rule _RegexExpression_7 "122.7" (first "!" "(" "+" "-" "<<" "ABS" "AVG" "BNODE" "BOUND" "CEIL" "COALESCE" "CONCAT" "CONTAINS" "COUNT" "DATATYPE" "DAY" DECIMAL DECIMAL_NEGATIVE @@ -7780,7 +7773,7 @@ "isIRI" "isLITERAL" "isNUMERIC" "isTRIPLE" "isURI" "sameTerm" "true" "{" "||" "}" ) (seq _Aggregate_16 ")")) - (rule _EmbTP_4 "174.4" + (rule _QuotedTP_4 "174.4" (first ">>") (follow "!" "(" ")" "," "." ";" "<<" ">>" ANON "BIND" BLANK_NODE_LABEL DECIMAL DECIMAL_NEGATIVE DECIMAL_POSITIVE DOUBLE DOUBLE_NEGATIVE @@ -7789,13 +7782,20 @@ STRING_LITERAL2 STRING_LITERAL_LONG1 STRING_LITERAL_LONG2 "VALUES" VAR1 VAR2 "[" "]" "^" "a" "false" "true" "{" "{|" "|}" "}" ) (seq ">>")) - (rule _EmbTD_5 "179.5" + (rule _QuotedTriple_5 "175.5" (first ">>") (follow ")" "<<" ">>" DECIMAL DECIMAL_NEGATIVE DECIMAL_POSITIVE DOUBLE DOUBLE_NEGATIVE DOUBLE_POSITIVE INTEGER INTEGER_NEGATIVE INTEGER_POSITIVE IRIREF PNAME_LN PNAME_NS STRING_LITERAL1 STRING_LITERAL2 STRING_LITERAL_LONG1 STRING_LITERAL_LONG2 "UNDEF" "a" "false" "true" "}" ) (seq ">>")) + (rule _ExprQuotedTP_4 "181.4" + (first ">>") + (follow "!=" "&&" ")" "*" "+" "," "-" "/" ";" "<" "<=" "=" ">" ">=" ">>" "AS" + DECIMAL_NEGATIVE DECIMAL_POSITIVE DOUBLE_NEGATIVE DOUBLE_POSITIVE "IN" + INTEGER_NEGATIVE INTEGER_POSITIVE IRIREF "NOT" PNAME_LN PNAME_NS VAR1 VAR2 + "a" "||" ) + (seq ">>")) (rule _RegexExpression_8 "122.8" (first ")" ",") (follow "!=" "&&" "(" ")" "*" "+" "," "-" "." "/" ";" "<" "<<" "<=" "=" ">" diff --git a/etc/sparql11.sxp b/etc/sparql11.sxp index 24bef299..c53baf1a 100644 --- a/etc/sparql11.sxp +++ b/etc/sparql11.sxp @@ -202,7 +202,7 @@ (cleanup merge) (seq DataBlockValue _InlineDataFull_9)) (rule DataBlockValue "65" - (alt EmbTD iri RDFLiteral NumericLiteral BooleanLiteral "UNDEF")) + (alt QuotedTriple iri RDFLiteral NumericLiteral BooleanLiteral "UNDEF")) (rule MinusGraphPattern "66" (seq "MINUS" GroupGraphPattern)) (rule GroupOrUnionGraphPattern "67" (seq GroupGraphPattern _GroupOrUnionGraphPattern_1)) @@ -236,7 +236,7 @@ (rule _ConstructTriples_2 "74.2" (seq "." _ConstructTriples_3)) (rule _ConstructTriples_3 "74.3" (cleanup opt) (alt _empty ConstructTriples)) (rule TriplesSameSubject "75" (alt _TriplesSameSubject_1 _TriplesSameSubject_2)) - (rule _TriplesSameSubject_1 "75.1" (seq VarOrTermOrEmbTP PropertyListNotEmpty)) + (rule _TriplesSameSubject_1 "75.1" (seq VarOrTermOrQuotedTP PropertyListNotEmpty)) (rule _TriplesSameSubject_2 "75.2" (seq TriplesNode PropertyList)) (rule PropertyList "76" (cleanup opt) (alt _empty PropertyListNotEmpty)) (rule PropertyListNotEmpty "77" (seq Verb ObjectList _PropertyListNotEmpty_1)) @@ -261,7 +261,7 @@ (rule TriplesSameSubjectPath "81" (alt _TriplesSameSubjectPath_1 _TriplesSameSubjectPath_2)) (rule _TriplesSameSubjectPath_1 "81.1" - (seq VarOrTermOrEmbTP PropertyListPathNotEmpty)) + (seq VarOrTermOrQuotedTP PropertyListPathNotEmpty)) (rule _TriplesSameSubjectPath_2 "81.2" (seq TriplesNodePath PropertyListPath)) (rule PropertyListPath "82" (cleanup opt) (alt _empty PropertyListPathNotEmpty)) (rule PropertyListPathNotEmpty "83" @@ -340,8 +340,8 @@ (rule _CollectionPath_1 "103.1" (cleanup plus) (seq GraphNodePath _CollectionPath_2)) (rule _CollectionPath_2 "103.2" (cleanup star) (alt _empty _CollectionPath_3)) (rule _CollectionPath_3 "103.3" (cleanup merge) (seq GraphNodePath _CollectionPath_2)) - (rule GraphNode "104" (alt VarOrTermOrEmbTP TriplesNode)) - (rule GraphNodePath "105" (alt VarOrTermOrEmbTP TriplesNodePath)) + (rule GraphNode "104" (alt VarOrTermOrQuotedTP TriplesNode)) + (rule GraphNodePath "105" (alt VarOrTermOrQuotedTP TriplesNodePath)) (rule VarOrTerm "106" (alt Var GraphTerm)) (rule VarOrIri "107" (alt Var iri)) (rule Var "108" (alt VAR1 VAR2)) @@ -420,10 +420,7 @@ (rule _UnaryExpression_3 "118.3" (seq "-" PrimaryExpression)) (rule PrimaryExpression "119" (alt BrackettedExpression BuiltInCall iriOrFunction RDFLiteral NumericLiteral - BooleanLiteral Var ExprEmbTP )) - (rule ExprEmbTP "119a" (seq "<<" ExprVarOrTerm Verb ExprVarOrTerm ">>")) - (rule ExprVarOrTerm "119b" - (alt iri RDFLiteral NumericLiteral BooleanLiteral Var ExprEmbTP)) + BooleanLiteral Var ExprQuotedTP )) (rule BrackettedExpression "120" (seq "(" Expression ")")) (rule BuiltInCall "121" (alt Aggregate _BuiltInCall_1 _BuiltInCall_2 _BuiltInCall_3 _BuiltInCall_4 @@ -559,15 +556,20 @@ (rule iri "136" (alt IRIREF PrefixedName)) (rule PrefixedName "137" (alt PNAME_LN PNAME_NS)) (rule BlankNode "138" (alt BLANK_NODE_LABEL ANON)) - (rule EmbTP "174" (seq "<<" EmbSubjectOrObject Verb EmbSubjectOrObject ">>")) - (rule EmbSubjectOrObject "175" - (alt Var BlankNode iri RDFLiteral NumericLiteral BooleanLiteral EmbTP)) - (rule VarOrTermOrEmbTP "176" (alt Var GraphTerm EmbTP)) - (rule AnnotationPattern "177" (seq "{|" PropertyListNotEmpty "|}")) - (rule AnnotationPatternPath "178" (seq "{|" PropertyListPathNotEmpty "|}")) - (rule EmbTD "179" (seq "<<" DataValueTerm _EmbTD_1 DataValueTerm ">>")) - (rule _EmbTD_1 "179.1" (alt iri "a")) - (rule DataValueTerm "180" (alt EmbTD iri RDFLiteral NumericLiteral BooleanLiteral)) + (rule QuotedTP "174" (seq "<<" qtSubjectOrObject Verb qtSubjectOrObject ">>")) + (rule QuotedTriple "175" + (seq "<<" DataValueTerm _QuotedTriple_1 DataValueTerm ">>")) + (rule _QuotedTriple_1 "175.1" (alt iri "a")) + (rule qtSubjectOrObject "176" + (alt Var BlankNode iri RDFLiteral NumericLiteral BooleanLiteral QuotedTP)) + (rule DataValueTerm "177" + (alt iri RDFLiteral NumericLiteral BooleanLiteral QuotedTriple)) + (rule VarOrTermOrQuotedTP "178" (alt Var GraphTerm QuotedTP)) + (rule AnnotationPattern "179" (seq "{|" PropertyListNotEmpty "|}")) + (rule AnnotationPatternPath "180" (seq "{|" PropertyListPathNotEmpty "|}")) + (rule ExprQuotedTP "181" (seq "<<" ExprVarOrTerm Verb ExprVarOrTerm ">>")) + (rule ExprVarOrTerm "182" + (alt iri RDFLiteral NumericLiteral BooleanLiteral Var ExprQuotedTP)) (terminals _terminals (seq)) (terminal IRIREF "139" (seq "<" (star (alt (range "^#x00-#x20<>\"{}|^`\\") UCHAR)) ">")) (terminal PNAME_NS "140" (seq (opt PN_PREFIX) ":")) diff --git a/lib/sparql/grammar/meta.rb b/lib/sparql/grammar/meta.rb index bf9599b7..a069717f 100644 --- a/lib/sparql/grammar/meta.rb +++ b/lib/sparql/grammar/meta.rb @@ -1,4 +1,4 @@ -# This file is automatically generated by ebnf version 2.1.2 +# This file is automatically generated by ebnf version 2.1.3 # Derived from etc/sparql11.bnf module SPARQL::Grammar::Meta START = :QueryUnit @@ -2055,7 +2055,7 @@ module SPARQL::Grammar::Meta :VAR2 => [:InlineDataOneVar], }, :DataBlockValue => { - "<<" => [:EmbTD], + "<<" => [:QuotedTriple], :DECIMAL => [:NumericLiteral], :DECIMAL_NEGATIVE => [:NumericLiteral], :DECIMAL_POSITIVE => [:NumericLiteral], @@ -2077,7 +2077,7 @@ module SPARQL::Grammar::Meta "true" => [:BooleanLiteral], }, :DataValueTerm => { - "<<" => [:EmbTD], + "<<" => [:QuotedTriple], :DECIMAL => [:NumericLiteral], :DECIMAL_NEGATIVE => [:NumericLiteral], :DECIMAL_POSITIVE => [:NumericLiteral], @@ -2195,51 +2195,14 @@ module SPARQL::Grammar::Meta "NAMED" => [], "SILENT" => ["SILENT"], }, - :EmbSubjectOrObject => { - "<<" => [:EmbTP], - :ANON => [:BlankNode], - :BLANK_NODE_LABEL => [:BlankNode], - :DECIMAL => [:NumericLiteral], - :DECIMAL_NEGATIVE => [:NumericLiteral], - :DECIMAL_POSITIVE => [:NumericLiteral], - :DOUBLE => [:NumericLiteral], - :DOUBLE_NEGATIVE => [:NumericLiteral], - :DOUBLE_POSITIVE => [:NumericLiteral], - :INTEGER => [:NumericLiteral], - :INTEGER_NEGATIVE => [:NumericLiteral], - :INTEGER_POSITIVE => [:NumericLiteral], - :IRIREF => [:iri], - :PNAME_LN => [:iri], - :PNAME_NS => [:iri], - :STRING_LITERAL1 => [:RDFLiteral], - :STRING_LITERAL2 => [:RDFLiteral], - :STRING_LITERAL_LONG1 => [:RDFLiteral], - :STRING_LITERAL_LONG2 => [:RDFLiteral], - :VAR1 => [:Var], - :VAR2 => [:Var], - "false" => [:BooleanLiteral], - "true" => [:BooleanLiteral], - }, - :EmbTD => { - "<<" => ["<<", :DataValueTerm, :_EmbTD_1, :DataValueTerm, ">>"], - }, - :_EmbTD_1 => { - :IRIREF => [:iri], - :PNAME_LN => [:iri], - :PNAME_NS => [:iri], - "a" => ["a"], - }, - :EmbTP => { - "<<" => ["<<", :EmbSubjectOrObject, :Verb, :EmbSubjectOrObject, ">>"], - }, :ExistsFunc => { "EXISTS" => ["EXISTS", :GroupGraphPattern], }, - :ExprEmbTP => { + :ExprQuotedTP => { "<<" => ["<<", :ExprVarOrTerm, :Verb, :ExprVarOrTerm, ">>"], }, :ExprVarOrTerm => { - "<<" => [:ExprEmbTP], + "<<" => [:ExprQuotedTP], :DECIMAL => [:NumericLiteral], :DECIMAL_NEGATIVE => [:NumericLiteral], :DECIMAL_POSITIVE => [:NumericLiteral], @@ -2385,59 +2348,59 @@ module SPARQL::Grammar::Meta }, :GraphNode => { "(" => [:TriplesNode], - "<<" => [:VarOrTermOrEmbTP], - :ANON => [:VarOrTermOrEmbTP], - :BLANK_NODE_LABEL => [:VarOrTermOrEmbTP], - :DECIMAL => [:VarOrTermOrEmbTP], - :DECIMAL_NEGATIVE => [:VarOrTermOrEmbTP], - :DECIMAL_POSITIVE => [:VarOrTermOrEmbTP], - :DOUBLE => [:VarOrTermOrEmbTP], - :DOUBLE_NEGATIVE => [:VarOrTermOrEmbTP], - :DOUBLE_POSITIVE => [:VarOrTermOrEmbTP], - :INTEGER => [:VarOrTermOrEmbTP], - :INTEGER_NEGATIVE => [:VarOrTermOrEmbTP], - :INTEGER_POSITIVE => [:VarOrTermOrEmbTP], - :IRIREF => [:VarOrTermOrEmbTP], - :NIL => [:VarOrTermOrEmbTP], - :PNAME_LN => [:VarOrTermOrEmbTP], - :PNAME_NS => [:VarOrTermOrEmbTP], - :STRING_LITERAL1 => [:VarOrTermOrEmbTP], - :STRING_LITERAL2 => [:VarOrTermOrEmbTP], - :STRING_LITERAL_LONG1 => [:VarOrTermOrEmbTP], - :STRING_LITERAL_LONG2 => [:VarOrTermOrEmbTP], - :VAR1 => [:VarOrTermOrEmbTP], - :VAR2 => [:VarOrTermOrEmbTP], + "<<" => [:VarOrTermOrQuotedTP], + :ANON => [:VarOrTermOrQuotedTP], + :BLANK_NODE_LABEL => [:VarOrTermOrQuotedTP], + :DECIMAL => [:VarOrTermOrQuotedTP], + :DECIMAL_NEGATIVE => [:VarOrTermOrQuotedTP], + :DECIMAL_POSITIVE => [:VarOrTermOrQuotedTP], + :DOUBLE => [:VarOrTermOrQuotedTP], + :DOUBLE_NEGATIVE => [:VarOrTermOrQuotedTP], + :DOUBLE_POSITIVE => [:VarOrTermOrQuotedTP], + :INTEGER => [:VarOrTermOrQuotedTP], + :INTEGER_NEGATIVE => [:VarOrTermOrQuotedTP], + :INTEGER_POSITIVE => [:VarOrTermOrQuotedTP], + :IRIREF => [:VarOrTermOrQuotedTP], + :NIL => [:VarOrTermOrQuotedTP], + :PNAME_LN => [:VarOrTermOrQuotedTP], + :PNAME_NS => [:VarOrTermOrQuotedTP], + :STRING_LITERAL1 => [:VarOrTermOrQuotedTP], + :STRING_LITERAL2 => [:VarOrTermOrQuotedTP], + :STRING_LITERAL_LONG1 => [:VarOrTermOrQuotedTP], + :STRING_LITERAL_LONG2 => [:VarOrTermOrQuotedTP], + :VAR1 => [:VarOrTermOrQuotedTP], + :VAR2 => [:VarOrTermOrQuotedTP], "[" => [:TriplesNode], - "false" => [:VarOrTermOrEmbTP], - "true" => [:VarOrTermOrEmbTP], + "false" => [:VarOrTermOrQuotedTP], + "true" => [:VarOrTermOrQuotedTP], }, :GraphNodePath => { "(" => [:TriplesNodePath], - "<<" => [:VarOrTermOrEmbTP], - :ANON => [:VarOrTermOrEmbTP], - :BLANK_NODE_LABEL => [:VarOrTermOrEmbTP], - :DECIMAL => [:VarOrTermOrEmbTP], - :DECIMAL_NEGATIVE => [:VarOrTermOrEmbTP], - :DECIMAL_POSITIVE => [:VarOrTermOrEmbTP], - :DOUBLE => [:VarOrTermOrEmbTP], - :DOUBLE_NEGATIVE => [:VarOrTermOrEmbTP], - :DOUBLE_POSITIVE => [:VarOrTermOrEmbTP], - :INTEGER => [:VarOrTermOrEmbTP], - :INTEGER_NEGATIVE => [:VarOrTermOrEmbTP], - :INTEGER_POSITIVE => [:VarOrTermOrEmbTP], - :IRIREF => [:VarOrTermOrEmbTP], - :NIL => [:VarOrTermOrEmbTP], - :PNAME_LN => [:VarOrTermOrEmbTP], - :PNAME_NS => [:VarOrTermOrEmbTP], - :STRING_LITERAL1 => [:VarOrTermOrEmbTP], - :STRING_LITERAL2 => [:VarOrTermOrEmbTP], - :STRING_LITERAL_LONG1 => [:VarOrTermOrEmbTP], - :STRING_LITERAL_LONG2 => [:VarOrTermOrEmbTP], - :VAR1 => [:VarOrTermOrEmbTP], - :VAR2 => [:VarOrTermOrEmbTP], + "<<" => [:VarOrTermOrQuotedTP], + :ANON => [:VarOrTermOrQuotedTP], + :BLANK_NODE_LABEL => [:VarOrTermOrQuotedTP], + :DECIMAL => [:VarOrTermOrQuotedTP], + :DECIMAL_NEGATIVE => [:VarOrTermOrQuotedTP], + :DECIMAL_POSITIVE => [:VarOrTermOrQuotedTP], + :DOUBLE => [:VarOrTermOrQuotedTP], + :DOUBLE_NEGATIVE => [:VarOrTermOrQuotedTP], + :DOUBLE_POSITIVE => [:VarOrTermOrQuotedTP], + :INTEGER => [:VarOrTermOrQuotedTP], + :INTEGER_NEGATIVE => [:VarOrTermOrQuotedTP], + :INTEGER_POSITIVE => [:VarOrTermOrQuotedTP], + :IRIREF => [:VarOrTermOrQuotedTP], + :NIL => [:VarOrTermOrQuotedTP], + :PNAME_LN => [:VarOrTermOrQuotedTP], + :PNAME_NS => [:VarOrTermOrQuotedTP], + :STRING_LITERAL1 => [:VarOrTermOrQuotedTP], + :STRING_LITERAL2 => [:VarOrTermOrQuotedTP], + :STRING_LITERAL_LONG1 => [:VarOrTermOrQuotedTP], + :STRING_LITERAL_LONG2 => [:VarOrTermOrQuotedTP], + :VAR1 => [:VarOrTermOrQuotedTP], + :VAR2 => [:VarOrTermOrQuotedTP], "[" => [:TriplesNodePath], - "false" => [:VarOrTermOrEmbTP], - "true" => [:VarOrTermOrEmbTP], + "false" => [:VarOrTermOrQuotedTP], + "true" => [:VarOrTermOrQuotedTP], }, :GraphOrDefault => { "DEFAULT" => ["DEFAULT"], @@ -4700,7 +4663,7 @@ module SPARQL::Grammar::Meta }, :PrimaryExpression => { "(" => [:BrackettedExpression], - "<<" => [:ExprEmbTP], + "<<" => [:ExprQuotedTP], "ABS" => [:BuiltInCall], "AVG" => [:BuiltInCall], "BNODE" => [:BuiltInCall], @@ -5174,6 +5137,18 @@ module SPARQL::Grammar::Meta "DESCRIBE" => [:DescribeQuery], "SELECT" => [:SelectQuery], }, + :QuotedTP => { + "<<" => ["<<", :qtSubjectOrObject, :Verb, :qtSubjectOrObject, ">>"], + }, + :QuotedTriple => { + "<<" => ["<<", :DataValueTerm, :_QuotedTriple_1, :DataValueTerm, ">>"], + }, + :_QuotedTriple_1 => { + :IRIREF => [:iri], + :PNAME_LN => [:iri], + :PNAME_NS => [:iri], + "a" => ["a"], + }, :RDFLiteral => { :STRING_LITERAL1 => [:String, :_RDFLiteral_1], :STRING_LITERAL2 => [:String, :_RDFLiteral_1], @@ -5694,60 +5669,60 @@ module SPARQL::Grammar::Meta "true" => [:_TriplesSameSubjectPath_1], }, :_TriplesSameSubjectPath_1 => { - "<<" => [:VarOrTermOrEmbTP, :PropertyListPathNotEmpty], - :ANON => [:VarOrTermOrEmbTP, :PropertyListPathNotEmpty], - :BLANK_NODE_LABEL => [:VarOrTermOrEmbTP, :PropertyListPathNotEmpty], - :DECIMAL => [:VarOrTermOrEmbTP, :PropertyListPathNotEmpty], - :DECIMAL_NEGATIVE => [:VarOrTermOrEmbTP, :PropertyListPathNotEmpty], - :DECIMAL_POSITIVE => [:VarOrTermOrEmbTP, :PropertyListPathNotEmpty], - :DOUBLE => [:VarOrTermOrEmbTP, :PropertyListPathNotEmpty], - :DOUBLE_NEGATIVE => [:VarOrTermOrEmbTP, :PropertyListPathNotEmpty], - :DOUBLE_POSITIVE => [:VarOrTermOrEmbTP, :PropertyListPathNotEmpty], - :INTEGER => [:VarOrTermOrEmbTP, :PropertyListPathNotEmpty], - :INTEGER_NEGATIVE => [:VarOrTermOrEmbTP, :PropertyListPathNotEmpty], - :INTEGER_POSITIVE => [:VarOrTermOrEmbTP, :PropertyListPathNotEmpty], - :IRIREF => [:VarOrTermOrEmbTP, :PropertyListPathNotEmpty], - :NIL => [:VarOrTermOrEmbTP, :PropertyListPathNotEmpty], - :PNAME_LN => [:VarOrTermOrEmbTP, :PropertyListPathNotEmpty], - :PNAME_NS => [:VarOrTermOrEmbTP, :PropertyListPathNotEmpty], - :STRING_LITERAL1 => [:VarOrTermOrEmbTP, :PropertyListPathNotEmpty], - :STRING_LITERAL2 => [:VarOrTermOrEmbTP, :PropertyListPathNotEmpty], - :STRING_LITERAL_LONG1 => [:VarOrTermOrEmbTP, :PropertyListPathNotEmpty], - :STRING_LITERAL_LONG2 => [:VarOrTermOrEmbTP, :PropertyListPathNotEmpty], - :VAR1 => [:VarOrTermOrEmbTP, :PropertyListPathNotEmpty], - :VAR2 => [:VarOrTermOrEmbTP, :PropertyListPathNotEmpty], - "false" => [:VarOrTermOrEmbTP, :PropertyListPathNotEmpty], - "true" => [:VarOrTermOrEmbTP, :PropertyListPathNotEmpty], + "<<" => [:VarOrTermOrQuotedTP, :PropertyListPathNotEmpty], + :ANON => [:VarOrTermOrQuotedTP, :PropertyListPathNotEmpty], + :BLANK_NODE_LABEL => [:VarOrTermOrQuotedTP, :PropertyListPathNotEmpty], + :DECIMAL => [:VarOrTermOrQuotedTP, :PropertyListPathNotEmpty], + :DECIMAL_NEGATIVE => [:VarOrTermOrQuotedTP, :PropertyListPathNotEmpty], + :DECIMAL_POSITIVE => [:VarOrTermOrQuotedTP, :PropertyListPathNotEmpty], + :DOUBLE => [:VarOrTermOrQuotedTP, :PropertyListPathNotEmpty], + :DOUBLE_NEGATIVE => [:VarOrTermOrQuotedTP, :PropertyListPathNotEmpty], + :DOUBLE_POSITIVE => [:VarOrTermOrQuotedTP, :PropertyListPathNotEmpty], + :INTEGER => [:VarOrTermOrQuotedTP, :PropertyListPathNotEmpty], + :INTEGER_NEGATIVE => [:VarOrTermOrQuotedTP, :PropertyListPathNotEmpty], + :INTEGER_POSITIVE => [:VarOrTermOrQuotedTP, :PropertyListPathNotEmpty], + :IRIREF => [:VarOrTermOrQuotedTP, :PropertyListPathNotEmpty], + :NIL => [:VarOrTermOrQuotedTP, :PropertyListPathNotEmpty], + :PNAME_LN => [:VarOrTermOrQuotedTP, :PropertyListPathNotEmpty], + :PNAME_NS => [:VarOrTermOrQuotedTP, :PropertyListPathNotEmpty], + :STRING_LITERAL1 => [:VarOrTermOrQuotedTP, :PropertyListPathNotEmpty], + :STRING_LITERAL2 => [:VarOrTermOrQuotedTP, :PropertyListPathNotEmpty], + :STRING_LITERAL_LONG1 => [:VarOrTermOrQuotedTP, :PropertyListPathNotEmpty], + :STRING_LITERAL_LONG2 => [:VarOrTermOrQuotedTP, :PropertyListPathNotEmpty], + :VAR1 => [:VarOrTermOrQuotedTP, :PropertyListPathNotEmpty], + :VAR2 => [:VarOrTermOrQuotedTP, :PropertyListPathNotEmpty], + "false" => [:VarOrTermOrQuotedTP, :PropertyListPathNotEmpty], + "true" => [:VarOrTermOrQuotedTP, :PropertyListPathNotEmpty], }, :_TriplesSameSubjectPath_2 => { "(" => [:TriplesNodePath, :PropertyListPath], "[" => [:TriplesNodePath, :PropertyListPath], }, :_TriplesSameSubject_1 => { - "<<" => [:VarOrTermOrEmbTP, :PropertyListNotEmpty], - :ANON => [:VarOrTermOrEmbTP, :PropertyListNotEmpty], - :BLANK_NODE_LABEL => [:VarOrTermOrEmbTP, :PropertyListNotEmpty], - :DECIMAL => [:VarOrTermOrEmbTP, :PropertyListNotEmpty], - :DECIMAL_NEGATIVE => [:VarOrTermOrEmbTP, :PropertyListNotEmpty], - :DECIMAL_POSITIVE => [:VarOrTermOrEmbTP, :PropertyListNotEmpty], - :DOUBLE => [:VarOrTermOrEmbTP, :PropertyListNotEmpty], - :DOUBLE_NEGATIVE => [:VarOrTermOrEmbTP, :PropertyListNotEmpty], - :DOUBLE_POSITIVE => [:VarOrTermOrEmbTP, :PropertyListNotEmpty], - :INTEGER => [:VarOrTermOrEmbTP, :PropertyListNotEmpty], - :INTEGER_NEGATIVE => [:VarOrTermOrEmbTP, :PropertyListNotEmpty], - :INTEGER_POSITIVE => [:VarOrTermOrEmbTP, :PropertyListNotEmpty], - :IRIREF => [:VarOrTermOrEmbTP, :PropertyListNotEmpty], - :NIL => [:VarOrTermOrEmbTP, :PropertyListNotEmpty], - :PNAME_LN => [:VarOrTermOrEmbTP, :PropertyListNotEmpty], - :PNAME_NS => [:VarOrTermOrEmbTP, :PropertyListNotEmpty], - :STRING_LITERAL1 => [:VarOrTermOrEmbTP, :PropertyListNotEmpty], - :STRING_LITERAL2 => [:VarOrTermOrEmbTP, :PropertyListNotEmpty], - :STRING_LITERAL_LONG1 => [:VarOrTermOrEmbTP, :PropertyListNotEmpty], - :STRING_LITERAL_LONG2 => [:VarOrTermOrEmbTP, :PropertyListNotEmpty], - :VAR1 => [:VarOrTermOrEmbTP, :PropertyListNotEmpty], - :VAR2 => [:VarOrTermOrEmbTP, :PropertyListNotEmpty], - "false" => [:VarOrTermOrEmbTP, :PropertyListNotEmpty], - "true" => [:VarOrTermOrEmbTP, :PropertyListNotEmpty], + "<<" => [:VarOrTermOrQuotedTP, :PropertyListNotEmpty], + :ANON => [:VarOrTermOrQuotedTP, :PropertyListNotEmpty], + :BLANK_NODE_LABEL => [:VarOrTermOrQuotedTP, :PropertyListNotEmpty], + :DECIMAL => [:VarOrTermOrQuotedTP, :PropertyListNotEmpty], + :DECIMAL_NEGATIVE => [:VarOrTermOrQuotedTP, :PropertyListNotEmpty], + :DECIMAL_POSITIVE => [:VarOrTermOrQuotedTP, :PropertyListNotEmpty], + :DOUBLE => [:VarOrTermOrQuotedTP, :PropertyListNotEmpty], + :DOUBLE_NEGATIVE => [:VarOrTermOrQuotedTP, :PropertyListNotEmpty], + :DOUBLE_POSITIVE => [:VarOrTermOrQuotedTP, :PropertyListNotEmpty], + :INTEGER => [:VarOrTermOrQuotedTP, :PropertyListNotEmpty], + :INTEGER_NEGATIVE => [:VarOrTermOrQuotedTP, :PropertyListNotEmpty], + :INTEGER_POSITIVE => [:VarOrTermOrQuotedTP, :PropertyListNotEmpty], + :IRIREF => [:VarOrTermOrQuotedTP, :PropertyListNotEmpty], + :NIL => [:VarOrTermOrQuotedTP, :PropertyListNotEmpty], + :PNAME_LN => [:VarOrTermOrQuotedTP, :PropertyListNotEmpty], + :PNAME_NS => [:VarOrTermOrQuotedTP, :PropertyListNotEmpty], + :STRING_LITERAL1 => [:VarOrTermOrQuotedTP, :PropertyListNotEmpty], + :STRING_LITERAL2 => [:VarOrTermOrQuotedTP, :PropertyListNotEmpty], + :STRING_LITERAL_LONG1 => [:VarOrTermOrQuotedTP, :PropertyListNotEmpty], + :STRING_LITERAL_LONG2 => [:VarOrTermOrQuotedTP, :PropertyListNotEmpty], + :VAR1 => [:VarOrTermOrQuotedTP, :PropertyListNotEmpty], + :VAR2 => [:VarOrTermOrQuotedTP, :PropertyListNotEmpty], + "false" => [:VarOrTermOrQuotedTP, :PropertyListNotEmpty], + "true" => [:VarOrTermOrQuotedTP, :PropertyListNotEmpty], }, :_TriplesSameSubject_2 => { "(" => [:TriplesNode, :PropertyList], @@ -6131,8 +6106,8 @@ module SPARQL::Grammar::Meta :VAR1 => [:Var], :VAR2 => [:Var], }, - :VarOrTermOrEmbTP => { - "<<" => [:EmbTP], + :VarOrTermOrQuotedTP => { + "<<" => [:QuotedTP], :ANON => [:GraphTerm], :BLANK_NODE_LABEL => [:GraphTerm], :DECIMAL => [:GraphTerm], @@ -6224,6 +6199,31 @@ module SPARQL::Grammar::Meta "NOT" => [], "||" => [], }, + :qtSubjectOrObject => { + "<<" => [:QuotedTP], + :ANON => [:BlankNode], + :BLANK_NODE_LABEL => [:BlankNode], + :DECIMAL => [:NumericLiteral], + :DECIMAL_NEGATIVE => [:NumericLiteral], + :DECIMAL_POSITIVE => [:NumericLiteral], + :DOUBLE => [:NumericLiteral], + :DOUBLE_NEGATIVE => [:NumericLiteral], + :DOUBLE_POSITIVE => [:NumericLiteral], + :INTEGER => [:NumericLiteral], + :INTEGER_NEGATIVE => [:NumericLiteral], + :INTEGER_POSITIVE => [:NumericLiteral], + :IRIREF => [:iri], + :PNAME_LN => [:iri], + :PNAME_NS => [:iri], + :STRING_LITERAL1 => [:RDFLiteral], + :STRING_LITERAL2 => [:RDFLiteral], + :STRING_LITERAL_LONG1 => [:RDFLiteral], + :STRING_LITERAL_LONG2 => [:RDFLiteral], + :VAR1 => [:Var], + :VAR2 => [:Var], + "false" => [:BooleanLiteral], + "true" => [:BooleanLiteral], + }, }.freeze TERMINALS = [ "!", @@ -10976,10 +10976,10 @@ module SPARQL::Grammar::Meta :DECIMAL_NEGATIVE, :DOUBLE_NEGATIVE], :DataValueTerm => [ - "<<", :IRIREF, "true", "false", + "<<", :PNAME_LN, :PNAME_NS, :STRING_LITERAL1, @@ -11121,94 +11121,18 @@ module SPARQL::Grammar::Meta "NAMED", "ALL", "GRAPH"], - :EmbSubjectOrObject => [ - :VAR1, - :VAR2, - :BLANK_NODE_LABEL, - :ANON, - :IRIREF, - "true", - "false", - "<<", - :PNAME_LN, - :PNAME_NS, - :STRING_LITERAL1, - :STRING_LITERAL2, - :STRING_LITERAL_LONG1, - :STRING_LITERAL_LONG2, - :INTEGER, - :DECIMAL, - :DOUBLE, - :INTEGER_POSITIVE, - :DECIMAL_POSITIVE, - :DOUBLE_POSITIVE, - :INTEGER_NEGATIVE, - :DECIMAL_NEGATIVE, - :DOUBLE_NEGATIVE], - :EmbTD => [ + :ExistsFunc => [ + "EXISTS"], + :_ExistsFunc_1 => [ + "{"], + :ExprQuotedTP => [ "<<"], - :_EmbTD_1 => [ - "a", - :IRIREF, - :PNAME_LN, - :PNAME_NS], - :_EmbTD_2 => [ - "<<", + :_ExprQuotedTP_1 => [ :IRIREF, "true", "false", - :PNAME_LN, - :PNAME_NS, - :STRING_LITERAL1, - :STRING_LITERAL2, - :STRING_LITERAL_LONG1, - :STRING_LITERAL_LONG2, - :INTEGER, - :DECIMAL, - :DOUBLE, - :INTEGER_POSITIVE, - :DECIMAL_POSITIVE, - :DOUBLE_POSITIVE, - :INTEGER_NEGATIVE, - :DECIMAL_NEGATIVE, - :DOUBLE_NEGATIVE], - :_EmbTD_3 => [ - "a", - :IRIREF, - :PNAME_LN, - :PNAME_NS], - :_EmbTD_4 => [ - "<<", - :IRIREF, - "true", - "false", - :PNAME_LN, - :PNAME_NS, - :STRING_LITERAL1, - :STRING_LITERAL2, - :STRING_LITERAL_LONG1, - :STRING_LITERAL_LONG2, - :INTEGER, - :DECIMAL, - :DOUBLE, - :INTEGER_POSITIVE, - :DECIMAL_POSITIVE, - :DOUBLE_POSITIVE, - :INTEGER_NEGATIVE, - :DECIMAL_NEGATIVE, - :DOUBLE_NEGATIVE], - :_EmbTD_5 => [ - ">>"], - :EmbTP => [ - "<<"], - :_EmbTP_1 => [ :VAR1, :VAR2, - :BLANK_NODE_LABEL, - :ANON, - :IRIREF, - "true", - "false", "<<", :PNAME_LN, :PNAME_NS, @@ -11225,21 +11149,19 @@ module SPARQL::Grammar::Meta :INTEGER_NEGATIVE, :DECIMAL_NEGATIVE, :DOUBLE_NEGATIVE], - :_EmbTP_2 => [ + :_ExprQuotedTP_2 => [ "a", :VAR1, :VAR2, :IRIREF, :PNAME_LN, :PNAME_NS], - :_EmbTP_3 => [ - :VAR1, - :VAR2, - :BLANK_NODE_LABEL, - :ANON, + :_ExprQuotedTP_3 => [ :IRIREF, "true", "false", + :VAR1, + :VAR2, "<<", :PNAME_LN, :PNAME_NS, @@ -11256,50 +11178,15 @@ module SPARQL::Grammar::Meta :INTEGER_NEGATIVE, :DECIMAL_NEGATIVE, :DOUBLE_NEGATIVE], - :_EmbTP_4 => [ + :_ExprQuotedTP_4 => [ ">>"], - :ExistsFunc => [ - "EXISTS"], - :_ExistsFunc_1 => [ - "{"], - :ExprEmbTP => [ - "<<"], - :_ExprEmbTP_1 => [ - :VAR1, - :VAR2, - "<<", + :ExprVarOrTerm => [ :IRIREF, "true", "false", - :PNAME_LN, - :PNAME_NS, - :STRING_LITERAL1, - :STRING_LITERAL2, - :STRING_LITERAL_LONG1, - :STRING_LITERAL_LONG2, - :INTEGER, - :DECIMAL, - :DOUBLE, - :INTEGER_POSITIVE, - :DECIMAL_POSITIVE, - :DOUBLE_POSITIVE, - :INTEGER_NEGATIVE, - :DECIMAL_NEGATIVE, - :DOUBLE_NEGATIVE], - :_ExprEmbTP_2 => [ - "a", - :VAR1, - :VAR2, - :IRIREF, - :PNAME_LN, - :PNAME_NS], - :_ExprEmbTP_3 => [ :VAR1, :VAR2, "<<", - :IRIREF, - "true", - "false", :PNAME_LN, :PNAME_NS, :STRING_LITERAL1, @@ -11315,17 +11202,77 @@ module SPARQL::Grammar::Meta :INTEGER_NEGATIVE, :DECIMAL_NEGATIVE, :DOUBLE_NEGATIVE], - :_ExprEmbTP_4 => [ - ">>"], - :ExprVarOrTerm => [ + :Expression => [ + "!", + "+", + "-", :VAR1, :VAR2, - "<<", - :IRIREF, + "(", "true", "false", - :PNAME_LN, - :PNAME_NS, + "<<", + "STR", + "LANG", + "LANGMATCHES", + "DATATYPE", + "BOUND", + "IRI", + "URI", + "BNODE", + "RAND", + "ABS", + "CEIL", + "FLOOR", + "ROUND", + "CONCAT", + "SUBSTR", + "STRLEN", + "REPLACE", + "UCASE", + "LCASE", + "ENCODE_FOR_URI", + "CONTAINS", + "STRSTARTS", + "STRENDS", + "STRBEFORE", + "STRAFTER", + "YEAR", + "MONTH", + "DAY", + "HOURS", + "MINUTES", + "SECONDS", + "TIMEZONE", + "TZ", + "NOW", + "UUID", + "STRUUID", + "MD5", + "SHA1", + "SHA224", + "SHA256", + "SHA384", + "SHA512", + "COALESCE", + "IF", + "STRLANG", + "STRDT", + "sameTerm", + "isIRI", + "isURI", + "isBLANK", + "isLITERAL", + "isNUMERIC", + "TRIPLE", + "SUBJECT", + "PREDICATE", + "OBJECT", + "isTRIPLE", + "REGEX", + "EXISTS", + "NOT", + :IRIREF, :STRING_LITERAL1, :STRING_LITERAL2, :STRING_LITERAL_LONG1, @@ -11338,113 +11285,29 @@ module SPARQL::Grammar::Meta :DOUBLE_POSITIVE, :INTEGER_NEGATIVE, :DECIMAL_NEGATIVE, - :DOUBLE_NEGATIVE], - :Expression => [ - "!", - "+", - "-", - :VAR1, - :VAR2, - "(", - "true", - "false", - "<<", - "STR", - "LANG", - "LANGMATCHES", - "DATATYPE", - "BOUND", - "IRI", - "URI", - "BNODE", - "RAND", - "ABS", - "CEIL", - "FLOOR", - "ROUND", - "CONCAT", - "SUBSTR", - "STRLEN", - "REPLACE", - "UCASE", - "LCASE", - "ENCODE_FOR_URI", - "CONTAINS", - "STRSTARTS", - "STRENDS", - "STRBEFORE", - "STRAFTER", - "YEAR", - "MONTH", - "DAY", - "HOURS", - "MINUTES", - "SECONDS", - "TIMEZONE", - "TZ", - "NOW", - "UUID", - "STRUUID", - "MD5", - "SHA1", - "SHA224", - "SHA256", - "SHA384", - "SHA512", - "COALESCE", - "IF", - "STRLANG", - "STRDT", - "sameTerm", - "isIRI", - "isURI", - "isBLANK", - "isLITERAL", - "isNUMERIC", - "TRIPLE", - "SUBJECT", - "PREDICATE", - "OBJECT", - "isTRIPLE", - "REGEX", - "EXISTS", - "NOT", - :IRIREF, - :STRING_LITERAL1, - :STRING_LITERAL2, - :STRING_LITERAL_LONG1, - :STRING_LITERAL_LONG2, - :INTEGER, - :DECIMAL, - :DOUBLE, - :INTEGER_POSITIVE, - :DECIMAL_POSITIVE, - :DOUBLE_POSITIVE, - :INTEGER_NEGATIVE, - :DECIMAL_NEGATIVE, - :DOUBLE_NEGATIVE, - "COUNT", - "SUM", - "MIN", - "MAX", - "AVG", - "SAMPLE", - "GROUP_CONCAT", - :PNAME_LN, - :PNAME_NS], - :ExpressionList => [ - :NIL, - "("], - :_ExpressionList_1 => [ - "("], - :_ExpressionList_2 => [ - :_eps, - ","], - :_ExpressionList_3 => [ - ","], - :_ExpressionList_4 => [ - ","], - :_ExpressionList_5 => [ + :DOUBLE_NEGATIVE, + "COUNT", + "SUM", + "MIN", + "MAX", + "AVG", + "SAMPLE", + "GROUP_CONCAT", + :PNAME_LN, + :PNAME_NS], + :ExpressionList => [ + :NIL, + "("], + :_ExpressionList_1 => [ + "("], + :_ExpressionList_2 => [ + :_eps, + ","], + :_ExpressionList_3 => [ + ","], + :_ExpressionList_4 => [ + ","], + :_ExpressionList_5 => [ "!", "+", "-", @@ -15659,104 +15522,19 @@ module SPARQL::Grammar::Meta "DESCRIBE", "ASK", "SELECT"], - :RDFLiteral => [ - :STRING_LITERAL1, - :STRING_LITERAL2, - :STRING_LITERAL_LONG1, - :STRING_LITERAL_LONG2], - :_RDFLiteral_1 => [ - :_eps, - :LANGTAG, - "^^"], - :_RDFLiteral_2 => [ - :LANGTAG, - "^^"], - :_RDFLiteral_3 => [ - "^^"], - :_RDFLiteral_4 => [ - :LANGTAG, - :_eps, - "^^"], - :RegexExpression => [ - "REGEX"], - :_RegexExpression_1 => [ - :_eps, - ","], - :_RegexExpression_2 => [ - ","], - :_RegexExpression_3 => [ - "("], - :_RegexExpression_4 => [ - "!", - "+", - "-", + :QuotedTP => [ + "<<"], + :_QuotedTP_1 => [ :VAR1, :VAR2, - "(", + :BLANK_NODE_LABEL, + :ANON, + :IRIREF, "true", "false", "<<", - "STR", - "LANG", - "LANGMATCHES", - "DATATYPE", - "BOUND", - "IRI", - "URI", - "BNODE", - "RAND", - "ABS", - "CEIL", - "FLOOR", - "ROUND", - "CONCAT", - "SUBSTR", - "STRLEN", - "REPLACE", - "UCASE", - "LCASE", - "ENCODE_FOR_URI", - "CONTAINS", - "STRSTARTS", - "STRENDS", - "STRBEFORE", - "STRAFTER", - "YEAR", - "MONTH", - "DAY", - "HOURS", - "MINUTES", - "SECONDS", - "TIMEZONE", - "TZ", - "NOW", - "UUID", - "STRUUID", - "MD5", - "SHA1", - "SHA224", - "SHA256", - "SHA384", - "SHA512", - "COALESCE", - "IF", - "STRLANG", - "STRDT", - "sameTerm", - "isIRI", - "isURI", - "isBLANK", - "isLITERAL", - "isNUMERIC", - "TRIPLE", - "SUBJECT", - "PREDICATE", - "OBJECT", - "isTRIPLE", - "REGEX", - "EXISTS", - "NOT", - :IRIREF, + :PNAME_LN, + :PNAME_NS, :STRING_LITERAL1, :STRING_LITERAL2, :STRING_LITERAL_LONG1, @@ -15769,87 +15547,54 @@ module SPARQL::Grammar::Meta :DOUBLE_POSITIVE, :INTEGER_NEGATIVE, :DECIMAL_NEGATIVE, - :DOUBLE_NEGATIVE, - "COUNT", - "SUM", - "MIN", - "MAX", - "AVG", - "SAMPLE", - "GROUP_CONCAT", + :DOUBLE_NEGATIVE], + :_QuotedTP_2 => [ + "a", + :VAR1, + :VAR2, + :IRIREF, :PNAME_LN, :PNAME_NS], - :_RegexExpression_5 => [ - "!", - "+", - "-", + :_QuotedTP_3 => [ :VAR1, :VAR2, - "(", + :BLANK_NODE_LABEL, + :ANON, + :IRIREF, "true", "false", "<<", - "STR", - "LANG", - "LANGMATCHES", - "DATATYPE", - "BOUND", - "IRI", - "URI", - "BNODE", - "RAND", - "ABS", - "CEIL", - "FLOOR", - "ROUND", - "CONCAT", - "SUBSTR", - "STRLEN", - "REPLACE", - "UCASE", - "LCASE", - "ENCODE_FOR_URI", - "CONTAINS", - "STRSTARTS", - "STRENDS", - "STRBEFORE", - "STRAFTER", - "YEAR", - "MONTH", - "DAY", - "HOURS", - "MINUTES", - "SECONDS", - "TIMEZONE", - "TZ", - "NOW", - "UUID", - "STRUUID", - "MD5", - "SHA1", - "SHA224", - "SHA256", - "SHA384", - "SHA512", - "COALESCE", - "IF", - "STRLANG", - "STRDT", - "sameTerm", - "isIRI", - "isURI", - "isBLANK", - "isLITERAL", - "isNUMERIC", - "TRIPLE", - "SUBJECT", - "PREDICATE", - "OBJECT", - "isTRIPLE", - "REGEX", - "EXISTS", - "NOT", + :PNAME_LN, + :PNAME_NS, + :STRING_LITERAL1, + :STRING_LITERAL2, + :STRING_LITERAL_LONG1, + :STRING_LITERAL_LONG2, + :INTEGER, + :DECIMAL, + :DOUBLE, + :INTEGER_POSITIVE, + :DECIMAL_POSITIVE, + :DOUBLE_POSITIVE, + :INTEGER_NEGATIVE, + :DECIMAL_NEGATIVE, + :DOUBLE_NEGATIVE], + :_QuotedTP_4 => [ + ">>"], + :QuotedTriple => [ + "<<"], + :_QuotedTriple_1 => [ + "a", + :IRIREF, + :PNAME_LN, + :PNAME_NS], + :_QuotedTriple_2 => [ :IRIREF, + "true", + "false", + "<<", + :PNAME_LN, + :PNAME_NS, :STRING_LITERAL1, :STRING_LITERAL2, :STRING_LITERAL_LONG1, @@ -15862,19 +15607,62 @@ module SPARQL::Grammar::Meta :DOUBLE_POSITIVE, :INTEGER_NEGATIVE, :DECIMAL_NEGATIVE, - :DOUBLE_NEGATIVE, - "COUNT", - "SUM", - "MIN", - "MAX", - "AVG", - "SAMPLE", - "GROUP_CONCAT", + :DOUBLE_NEGATIVE], + :_QuotedTriple_3 => [ + "a", + :IRIREF, :PNAME_LN, :PNAME_NS], - :_RegexExpression_6 => [ + :_QuotedTriple_4 => [ + :IRIREF, + "true", + "false", + "<<", + :PNAME_LN, + :PNAME_NS, + :STRING_LITERAL1, + :STRING_LITERAL2, + :STRING_LITERAL_LONG1, + :STRING_LITERAL_LONG2, + :INTEGER, + :DECIMAL, + :DOUBLE, + :INTEGER_POSITIVE, + :DECIMAL_POSITIVE, + :DOUBLE_POSITIVE, + :INTEGER_NEGATIVE, + :DECIMAL_NEGATIVE, + :DOUBLE_NEGATIVE], + :_QuotedTriple_5 => [ + ">>"], + :RDFLiteral => [ + :STRING_LITERAL1, + :STRING_LITERAL2, + :STRING_LITERAL_LONG1, + :STRING_LITERAL_LONG2], + :_RDFLiteral_1 => [ + :_eps, + :LANGTAG, + "^^"], + :_RDFLiteral_2 => [ + :LANGTAG, + "^^"], + :_RDFLiteral_3 => [ + "^^"], + :_RDFLiteral_4 => [ + :LANGTAG, + :_eps, + "^^"], + :RegexExpression => [ + "REGEX"], + :_RegexExpression_1 => [ + :_eps, ","], - :_RegexExpression_7 => [ + :_RegexExpression_2 => [ + ","], + :_RegexExpression_3 => [ + "("], + :_RegexExpression_4 => [ "!", "+", "-", @@ -15967,10 +15755,7 @@ module SPARQL::Grammar::Meta "GROUP_CONCAT", :PNAME_LN, :PNAME_NS], - :_RegexExpression_8 => [ - ",", - ")"], - :RelationalExpression => [ + :_RegexExpression_5 => [ "!", "+", "-", @@ -16063,29 +15848,9 @@ module SPARQL::Grammar::Meta "GROUP_CONCAT", :PNAME_LN, :PNAME_NS], - :_RelationalExpression_1 => [ - :_eps, - "=", - "!=", - "<", - ">", - "<=", - ">=", - "IN", - "NOT"], - :_RelationalExpression_10 => [ - "NOT"], - :_RelationalExpression_11 => [ - :_eps, - "=", - "!=", - "<", - ">", - "<=", - ">=", - "IN", - "NOT"], - :_RelationalExpression_12 => [ + :_RegexExpression_6 => [ + ","], + :_RegexExpression_7 => [ "!", "+", "-", @@ -16178,7 +15943,10 @@ module SPARQL::Grammar::Meta "GROUP_CONCAT", :PNAME_LN, :PNAME_NS], - :_RelationalExpression_13 => [ + :_RegexExpression_8 => [ + ",", + ")"], + :RelationalExpression => [ "!", "+", "-", @@ -16271,7 +16039,29 @@ module SPARQL::Grammar::Meta "GROUP_CONCAT", :PNAME_LN, :PNAME_NS], - :_RelationalExpression_14 => [ + :_RelationalExpression_1 => [ + :_eps, + "=", + "!=", + "<", + ">", + "<=", + ">=", + "IN", + "NOT"], + :_RelationalExpression_10 => [ + "NOT"], + :_RelationalExpression_11 => [ + :_eps, + "=", + "!=", + "<", + ">", + "<=", + ">=", + "IN", + "NOT"], + :_RelationalExpression_12 => [ "!", "+", "-", @@ -16364,7 +16154,7 @@ module SPARQL::Grammar::Meta "GROUP_CONCAT", :PNAME_LN, :PNAME_NS], - :_RelationalExpression_15 => [ + :_RelationalExpression_13 => [ "!", "+", "-", @@ -16457,7 +16247,7 @@ module SPARQL::Grammar::Meta "GROUP_CONCAT", :PNAME_LN, :PNAME_NS], - :_RelationalExpression_16 => [ + :_RelationalExpression_14 => [ "!", "+", "-", @@ -16550,7 +16340,7 @@ module SPARQL::Grammar::Meta "GROUP_CONCAT", :PNAME_LN, :PNAME_NS], - :_RelationalExpression_17 => [ + :_RelationalExpression_15 => [ "!", "+", "-", @@ -16643,49 +16433,7 @@ module SPARQL::Grammar::Meta "GROUP_CONCAT", :PNAME_LN, :PNAME_NS], - :_RelationalExpression_18 => [ - :NIL, - "("], - :_RelationalExpression_2 => [ - "=", - "!=", - "<", - ">", - "<=", - ">=", - "IN", - "NOT"], - :_RelationalExpression_3 => [ - "="], - :_RelationalExpression_4 => [ - "!="], - :_RelationalExpression_5 => [ - "<"], - :_RelationalExpression_6 => [ - ">"], - :_RelationalExpression_7 => [ - "<="], - :_RelationalExpression_8 => [ - ">="], - :_RelationalExpression_9 => [ - "IN"], - :SelectClause => [ - "SELECT"], - :_SelectClause_1 => [ - :_eps, - "DISTINCT", - "REDUCED"], - :_SelectClause_10 => [ - :_eps, - :VAR1, - :VAR2, - "("], - :_SelectClause_11 => [ - :_eps, - :VAR1, - :VAR2, - "("], - :_SelectClause_12 => [ + :_RelationalExpression_16 => [ "!", "+", "-", @@ -16778,125 +16526,7 @@ module SPARQL::Grammar::Meta "GROUP_CONCAT", :PNAME_LN, :PNAME_NS], - :_SelectClause_13 => [ - "*", - :VAR1, - :VAR2, - "("], - :_SelectClause_14 => [ - "AS"], - :_SelectClause_2 => [ - "*", - :VAR1, - :VAR2, - "("], - :_SelectClause_3 => [ - "DISTINCT", - "REDUCED"], - :_SelectClause_4 => [ - :VAR1, - :VAR2, - "("], - :_SelectClause_5 => [ - :VAR1, - :VAR2, - "("], - :_SelectClause_6 => [ - :_eps, - :VAR1, - :VAR2, - "("], - :_SelectClause_7 => [ - :VAR1, - :VAR2, - "("], - :_SelectClause_8 => [ - "("], - :_SelectClause_9 => [ - "DISTINCT", - "REDUCED", - "*", - :VAR1, - :VAR2, - "("], - :SelectQuery => [ - "SELECT"], - :_SelectQuery_1 => [ - :_eps, - "FROM"], - :_SelectQuery_2 => [ - "FROM"], - :_SelectQuery_3 => [ - "FROM", - "WHERE", - "{"], - :_SelectQuery_4 => [ - :_eps, - "FROM"], - :ServiceGraphPattern => [ - "SERVICE"], - :_ServiceGraphPattern_1 => [ - "SILENT", - :_eps], - :_ServiceGraphPattern_2 => [ - "SILENT", - :VAR1, - :VAR2, - :IRIREF, - :PNAME_LN, - :PNAME_NS], - :SolutionModifier => [ - "GROUP", - "HAVING", - "ORDER", - :_eps, - "LIMIT", - "OFFSET"], - :_SolutionModifier_1 => [ - :_eps, - "GROUP"], - :_SolutionModifier_2 => [ - :_eps, - "HAVING"], - :_SolutionModifier_3 => [ - :_eps, - "ORDER"], - :_SolutionModifier_4 => [ - :_eps, - "LIMIT", - "OFFSET"], - :_SolutionModifier_5 => [ - "HAVING", - "ORDER", - :_eps, - "LIMIT", - "OFFSET"], - :_SolutionModifier_6 => [ - "ORDER", - :_eps, - "LIMIT", - "OFFSET"], - :_SolutionModifier_7 => [ - :_eps, - "LIMIT", - "OFFSET"], - :SourceSelector => [ - :IRIREF, - :PNAME_LN, - :PNAME_NS], - :StrReplaceExpression => [ - "REPLACE"], - :_StrReplaceExpression_1 => [ - :_eps, - ","], - :_StrReplaceExpression_10 => [ - ",", - ")"], - :_StrReplaceExpression_2 => [ - ","], - :_StrReplaceExpression_3 => [ - "("], - :_StrReplaceExpression_4 => [ + :_RelationalExpression_17 => [ "!", "+", "-", @@ -16989,7 +16619,353 @@ module SPARQL::Grammar::Meta "GROUP_CONCAT", :PNAME_LN, :PNAME_NS], - :_StrReplaceExpression_5 => [ + :_RelationalExpression_18 => [ + :NIL, + "("], + :_RelationalExpression_2 => [ + "=", + "!=", + "<", + ">", + "<=", + ">=", + "IN", + "NOT"], + :_RelationalExpression_3 => [ + "="], + :_RelationalExpression_4 => [ + "!="], + :_RelationalExpression_5 => [ + "<"], + :_RelationalExpression_6 => [ + ">"], + :_RelationalExpression_7 => [ + "<="], + :_RelationalExpression_8 => [ + ">="], + :_RelationalExpression_9 => [ + "IN"], + :SelectClause => [ + "SELECT"], + :_SelectClause_1 => [ + :_eps, + "DISTINCT", + "REDUCED"], + :_SelectClause_10 => [ + :_eps, + :VAR1, + :VAR2, + "("], + :_SelectClause_11 => [ + :_eps, + :VAR1, + :VAR2, + "("], + :_SelectClause_12 => [ + "!", + "+", + "-", + :VAR1, + :VAR2, + "(", + "true", + "false", + "<<", + "STR", + "LANG", + "LANGMATCHES", + "DATATYPE", + "BOUND", + "IRI", + "URI", + "BNODE", + "RAND", + "ABS", + "CEIL", + "FLOOR", + "ROUND", + "CONCAT", + "SUBSTR", + "STRLEN", + "REPLACE", + "UCASE", + "LCASE", + "ENCODE_FOR_URI", + "CONTAINS", + "STRSTARTS", + "STRENDS", + "STRBEFORE", + "STRAFTER", + "YEAR", + "MONTH", + "DAY", + "HOURS", + "MINUTES", + "SECONDS", + "TIMEZONE", + "TZ", + "NOW", + "UUID", + "STRUUID", + "MD5", + "SHA1", + "SHA224", + "SHA256", + "SHA384", + "SHA512", + "COALESCE", + "IF", + "STRLANG", + "STRDT", + "sameTerm", + "isIRI", + "isURI", + "isBLANK", + "isLITERAL", + "isNUMERIC", + "TRIPLE", + "SUBJECT", + "PREDICATE", + "OBJECT", + "isTRIPLE", + "REGEX", + "EXISTS", + "NOT", + :IRIREF, + :STRING_LITERAL1, + :STRING_LITERAL2, + :STRING_LITERAL_LONG1, + :STRING_LITERAL_LONG2, + :INTEGER, + :DECIMAL, + :DOUBLE, + :INTEGER_POSITIVE, + :DECIMAL_POSITIVE, + :DOUBLE_POSITIVE, + :INTEGER_NEGATIVE, + :DECIMAL_NEGATIVE, + :DOUBLE_NEGATIVE, + "COUNT", + "SUM", + "MIN", + "MAX", + "AVG", + "SAMPLE", + "GROUP_CONCAT", + :PNAME_LN, + :PNAME_NS], + :_SelectClause_13 => [ + "*", + :VAR1, + :VAR2, + "("], + :_SelectClause_14 => [ + "AS"], + :_SelectClause_2 => [ + "*", + :VAR1, + :VAR2, + "("], + :_SelectClause_3 => [ + "DISTINCT", + "REDUCED"], + :_SelectClause_4 => [ + :VAR1, + :VAR2, + "("], + :_SelectClause_5 => [ + :VAR1, + :VAR2, + "("], + :_SelectClause_6 => [ + :_eps, + :VAR1, + :VAR2, + "("], + :_SelectClause_7 => [ + :VAR1, + :VAR2, + "("], + :_SelectClause_8 => [ + "("], + :_SelectClause_9 => [ + "DISTINCT", + "REDUCED", + "*", + :VAR1, + :VAR2, + "("], + :SelectQuery => [ + "SELECT"], + :_SelectQuery_1 => [ + :_eps, + "FROM"], + :_SelectQuery_2 => [ + "FROM"], + :_SelectQuery_3 => [ + "FROM", + "WHERE", + "{"], + :_SelectQuery_4 => [ + :_eps, + "FROM"], + :ServiceGraphPattern => [ + "SERVICE"], + :_ServiceGraphPattern_1 => [ + "SILENT", + :_eps], + :_ServiceGraphPattern_2 => [ + "SILENT", + :VAR1, + :VAR2, + :IRIREF, + :PNAME_LN, + :PNAME_NS], + :SolutionModifier => [ + "GROUP", + "HAVING", + "ORDER", + :_eps, + "LIMIT", + "OFFSET"], + :_SolutionModifier_1 => [ + :_eps, + "GROUP"], + :_SolutionModifier_2 => [ + :_eps, + "HAVING"], + :_SolutionModifier_3 => [ + :_eps, + "ORDER"], + :_SolutionModifier_4 => [ + :_eps, + "LIMIT", + "OFFSET"], + :_SolutionModifier_5 => [ + "HAVING", + "ORDER", + :_eps, + "LIMIT", + "OFFSET"], + :_SolutionModifier_6 => [ + "ORDER", + :_eps, + "LIMIT", + "OFFSET"], + :_SolutionModifier_7 => [ + :_eps, + "LIMIT", + "OFFSET"], + :SourceSelector => [ + :IRIREF, + :PNAME_LN, + :PNAME_NS], + :StrReplaceExpression => [ + "REPLACE"], + :_StrReplaceExpression_1 => [ + :_eps, + ","], + :_StrReplaceExpression_10 => [ + ",", + ")"], + :_StrReplaceExpression_2 => [ + ","], + :_StrReplaceExpression_3 => [ + "("], + :_StrReplaceExpression_4 => [ + "!", + "+", + "-", + :VAR1, + :VAR2, + "(", + "true", + "false", + "<<", + "STR", + "LANG", + "LANGMATCHES", + "DATATYPE", + "BOUND", + "IRI", + "URI", + "BNODE", + "RAND", + "ABS", + "CEIL", + "FLOOR", + "ROUND", + "CONCAT", + "SUBSTR", + "STRLEN", + "REPLACE", + "UCASE", + "LCASE", + "ENCODE_FOR_URI", + "CONTAINS", + "STRSTARTS", + "STRENDS", + "STRBEFORE", + "STRAFTER", + "YEAR", + "MONTH", + "DAY", + "HOURS", + "MINUTES", + "SECONDS", + "TIMEZONE", + "TZ", + "NOW", + "UUID", + "STRUUID", + "MD5", + "SHA1", + "SHA224", + "SHA256", + "SHA384", + "SHA512", + "COALESCE", + "IF", + "STRLANG", + "STRDT", + "sameTerm", + "isIRI", + "isURI", + "isBLANK", + "isLITERAL", + "isNUMERIC", + "TRIPLE", + "SUBJECT", + "PREDICATE", + "OBJECT", + "isTRIPLE", + "REGEX", + "EXISTS", + "NOT", + :IRIREF, + :STRING_LITERAL1, + :STRING_LITERAL2, + :STRING_LITERAL_LONG1, + :STRING_LITERAL_LONG2, + :INTEGER, + :DECIMAL, + :DOUBLE, + :INTEGER_POSITIVE, + :DECIMAL_POSITIVE, + :DOUBLE_POSITIVE, + :INTEGER_NEGATIVE, + :DECIMAL_NEGATIVE, + :DOUBLE_NEGATIVE, + "COUNT", + "SUM", + "MIN", + "MAX", + "AVG", + "SAMPLE", + "GROUP_CONCAT", + :PNAME_LN, + :PNAME_NS], + :_StrReplaceExpression_5 => [ "!", "+", "-", @@ -18536,7 +18512,7 @@ module SPARQL::Grammar::Meta :INTEGER_NEGATIVE, :DECIMAL_NEGATIVE, :DOUBLE_NEGATIVE], - :VarOrTermOrEmbTP => [ + :VarOrTermOrQuotedTP => [ :VAR1, :VAR2, :NIL, @@ -18605,6 +18581,30 @@ module SPARQL::Grammar::Meta :NIL, "(", :_eps], + :qtSubjectOrObject => [ + :VAR1, + :VAR2, + :BLANK_NODE_LABEL, + :ANON, + :IRIREF, + "true", + "false", + "<<", + :PNAME_LN, + :PNAME_NS, + :STRING_LITERAL1, + :STRING_LITERAL2, + :STRING_LITERAL_LONG1, + :STRING_LITERAL_LONG2, + :INTEGER, + :DECIMAL, + :DOUBLE, + :INTEGER_POSITIVE, + :DECIMAL_POSITIVE, + :DOUBLE_POSITIVE, + :INTEGER_NEGATIVE, + :DECIMAL_NEGATIVE, + :DOUBLE_NEGATIVE], }.freeze FOLLOW = { :Add => [ @@ -38503,394 +38503,6 @@ module SPARQL::Grammar::Meta :_Drop_3 => [ ";", :_eof], - :EmbSubjectOrObject => [ - "a", - ">>", - :VAR1, - :VAR2, - :IRIREF, - :PNAME_LN, - :PNAME_NS], - :EmbTD => [ - "}", - ")", - "a", - :IRIREF, - ">>", - "UNDEF", - :PNAME_LN, - :PNAME_NS, - "<<", - "true", - "false", - :STRING_LITERAL1, - :STRING_LITERAL2, - :STRING_LITERAL_LONG1, - :STRING_LITERAL_LONG2, - :INTEGER, - :DECIMAL, - :DOUBLE, - :INTEGER_POSITIVE, - :DECIMAL_POSITIVE, - :DOUBLE_POSITIVE, - :INTEGER_NEGATIVE, - :DECIMAL_NEGATIVE, - :DOUBLE_NEGATIVE], - :_EmbTD_1 => [ - "<<", - :IRIREF, - "true", - "false", - :PNAME_LN, - :PNAME_NS, - :STRING_LITERAL1, - :STRING_LITERAL2, - :STRING_LITERAL_LONG1, - :STRING_LITERAL_LONG2, - :INTEGER, - :DECIMAL, - :DOUBLE, - :INTEGER_POSITIVE, - :DECIMAL_POSITIVE, - :DOUBLE_POSITIVE, - :INTEGER_NEGATIVE, - :DECIMAL_NEGATIVE, - :DOUBLE_NEGATIVE], - :_EmbTD_2 => [ - "}", - ")", - "a", - :IRIREF, - ">>", - "UNDEF", - :PNAME_LN, - :PNAME_NS, - "<<", - "true", - "false", - :STRING_LITERAL1, - :STRING_LITERAL2, - :STRING_LITERAL_LONG1, - :STRING_LITERAL_LONG2, - :INTEGER, - :DECIMAL, - :DOUBLE, - :INTEGER_POSITIVE, - :DECIMAL_POSITIVE, - :DOUBLE_POSITIVE, - :INTEGER_NEGATIVE, - :DECIMAL_NEGATIVE, - :DOUBLE_NEGATIVE], - :_EmbTD_3 => [ - "}", - ")", - "a", - :IRIREF, - ">>", - "UNDEF", - :PNAME_LN, - :PNAME_NS, - "<<", - "true", - "false", - :STRING_LITERAL1, - :STRING_LITERAL2, - :STRING_LITERAL_LONG1, - :STRING_LITERAL_LONG2, - :INTEGER, - :DECIMAL, - :DOUBLE, - :INTEGER_POSITIVE, - :DECIMAL_POSITIVE, - :DOUBLE_POSITIVE, - :INTEGER_NEGATIVE, - :DECIMAL_NEGATIVE, - :DOUBLE_NEGATIVE], - :_EmbTD_4 => [ - "}", - ")", - "a", - :IRIREF, - ">>", - "UNDEF", - :PNAME_LN, - :PNAME_NS, - "<<", - "true", - "false", - :STRING_LITERAL1, - :STRING_LITERAL2, - :STRING_LITERAL_LONG1, - :STRING_LITERAL_LONG2, - :INTEGER, - :DECIMAL, - :DOUBLE, - :INTEGER_POSITIVE, - :DECIMAL_POSITIVE, - :DOUBLE_POSITIVE, - :INTEGER_NEGATIVE, - :DECIMAL_NEGATIVE, - :DOUBLE_NEGATIVE], - :_EmbTD_5 => [ - "}", - ")", - "a", - :IRIREF, - ">>", - "UNDEF", - :PNAME_LN, - :PNAME_NS, - "<<", - "true", - "false", - :STRING_LITERAL1, - :STRING_LITERAL2, - :STRING_LITERAL_LONG1, - :STRING_LITERAL_LONG2, - :INTEGER, - :DECIMAL, - :DOUBLE, - :INTEGER_POSITIVE, - :DECIMAL_POSITIVE, - :DOUBLE_POSITIVE, - :INTEGER_NEGATIVE, - :DECIMAL_NEGATIVE, - :DOUBLE_NEGATIVE], - :EmbTP => [ - "a", - ">>", - "{|", - ")", - ",", - "]", - "|}", - :VAR1, - :VAR2, - :IRIREF, - ";", - ".", - "}", - :NIL, - "<<", - "(", - "[", - :PNAME_LN, - :PNAME_NS, - "true", - "false", - :BLANK_NODE_LABEL, - :ANON, - "GRAPH", - :STRING_LITERAL1, - :STRING_LITERAL2, - :STRING_LITERAL_LONG1, - :STRING_LITERAL_LONG2, - :INTEGER, - :DECIMAL, - :DOUBLE, - :INTEGER_POSITIVE, - :DECIMAL_POSITIVE, - :DOUBLE_POSITIVE, - :INTEGER_NEGATIVE, - :DECIMAL_NEGATIVE, - :DOUBLE_NEGATIVE, - "{", - "OPTIONAL", - "MINUS", - "SERVICE", - "FILTER", - "BIND", - "VALUES", - "^", - "!"], - :_EmbTP_1 => [ - "a", - ">>", - "{|", - ")", - ",", - "]", - "|}", - :VAR1, - :VAR2, - :IRIREF, - ";", - ".", - "}", - :NIL, - "<<", - "(", - "[", - :PNAME_LN, - :PNAME_NS, - "true", - "false", - :BLANK_NODE_LABEL, - :ANON, - "GRAPH", - :STRING_LITERAL1, - :STRING_LITERAL2, - :STRING_LITERAL_LONG1, - :STRING_LITERAL_LONG2, - :INTEGER, - :DECIMAL, - :DOUBLE, - :INTEGER_POSITIVE, - :DECIMAL_POSITIVE, - :DOUBLE_POSITIVE, - :INTEGER_NEGATIVE, - :DECIMAL_NEGATIVE, - :DOUBLE_NEGATIVE, - "{", - "OPTIONAL", - "MINUS", - "SERVICE", - "FILTER", - "BIND", - "VALUES", - "^", - "!"], - :_EmbTP_2 => [ - "a", - ">>", - "{|", - ")", - ",", - "]", - "|}", - :VAR1, - :VAR2, - :IRIREF, - ";", - ".", - "}", - :NIL, - "<<", - "(", - "[", - :PNAME_LN, - :PNAME_NS, - "true", - "false", - :BLANK_NODE_LABEL, - :ANON, - "GRAPH", - :STRING_LITERAL1, - :STRING_LITERAL2, - :STRING_LITERAL_LONG1, - :STRING_LITERAL_LONG2, - :INTEGER, - :DECIMAL, - :DOUBLE, - :INTEGER_POSITIVE, - :DECIMAL_POSITIVE, - :DOUBLE_POSITIVE, - :INTEGER_NEGATIVE, - :DECIMAL_NEGATIVE, - :DOUBLE_NEGATIVE, - "{", - "OPTIONAL", - "MINUS", - "SERVICE", - "FILTER", - "BIND", - "VALUES", - "^", - "!"], - :_EmbTP_3 => [ - "a", - ">>", - "{|", - ")", - ",", - "]", - "|}", - :VAR1, - :VAR2, - :IRIREF, - ";", - ".", - "}", - :NIL, - "<<", - "(", - "[", - :PNAME_LN, - :PNAME_NS, - "true", - "false", - :BLANK_NODE_LABEL, - :ANON, - "GRAPH", - :STRING_LITERAL1, - :STRING_LITERAL2, - :STRING_LITERAL_LONG1, - :STRING_LITERAL_LONG2, - :INTEGER, - :DECIMAL, - :DOUBLE, - :INTEGER_POSITIVE, - :DECIMAL_POSITIVE, - :DOUBLE_POSITIVE, - :INTEGER_NEGATIVE, - :DECIMAL_NEGATIVE, - :DOUBLE_NEGATIVE, - "{", - "OPTIONAL", - "MINUS", - "SERVICE", - "FILTER", - "BIND", - "VALUES", - "^", - "!"], - :_EmbTP_4 => [ - "a", - ">>", - "{|", - ")", - ",", - "]", - "|}", - :VAR1, - :VAR2, - :IRIREF, - ";", - ".", - "}", - :NIL, - "<<", - "(", - "[", - :PNAME_LN, - :PNAME_NS, - "true", - "false", - :BLANK_NODE_LABEL, - :ANON, - "GRAPH", - :STRING_LITERAL1, - :STRING_LITERAL2, - :STRING_LITERAL_LONG1, - :STRING_LITERAL_LONG2, - :INTEGER, - :DECIMAL, - :DOUBLE, - :INTEGER_POSITIVE, - :DECIMAL_POSITIVE, - :DOUBLE_POSITIVE, - :INTEGER_NEGATIVE, - :DECIMAL_NEGATIVE, - :DOUBLE_NEGATIVE, - "{", - "OPTIONAL", - "MINUS", - "SERVICE", - "FILTER", - "BIND", - "VALUES", - "^", - "!"], :ExistsFunc => [ ".", "AS", @@ -39147,7 +38759,7 @@ module SPARQL::Grammar::Meta :INTEGER, :DECIMAL, :DOUBLE], - :ExprEmbTP => [ + :ExprQuotedTP => [ "AS", ")", ",", @@ -39179,7 +38791,7 @@ module SPARQL::Grammar::Meta :INTEGER_NEGATIVE, :DECIMAL_NEGATIVE, :DOUBLE_NEGATIVE], - :_ExprEmbTP_1 => [ + :_ExprQuotedTP_1 => [ "AS", ")", ",", @@ -39211,7 +38823,7 @@ module SPARQL::Grammar::Meta :INTEGER_NEGATIVE, :DECIMAL_NEGATIVE, :DOUBLE_NEGATIVE], - :_ExprEmbTP_2 => [ + :_ExprQuotedTP_2 => [ "AS", ")", ",", @@ -39243,7 +38855,7 @@ module SPARQL::Grammar::Meta :INTEGER_NEGATIVE, :DECIMAL_NEGATIVE, :DOUBLE_NEGATIVE], - :_ExprEmbTP_3 => [ + :_ExprQuotedTP_3 => [ "AS", ")", ",", @@ -39275,7 +38887,7 @@ module SPARQL::Grammar::Meta :INTEGER_NEGATIVE, :DECIMAL_NEGATIVE, :DOUBLE_NEGATIVE], - :_ExprEmbTP_4 => [ + :_ExprQuotedTP_4 => [ "AS", ")", ",", @@ -42809,10 +42421,10 @@ module SPARQL::Grammar::Meta ")", "AS", ",", - "a", - ">>", "*", "/", + "a", + ">>", :IRIREF, "UNDEF", "{|", @@ -42872,10 +42484,10 @@ module SPARQL::Grammar::Meta ")", "AS", ",", - "a", - ">>", "*", "/", + "a", + ">>", :IRIREF, "UNDEF", "{|", @@ -44910,16 +44522,16 @@ module SPARQL::Grammar::Meta "{", :VAR1, :VAR2, - "<<", :BLANK_NODE_LABEL, :ANON, :IRIREF, "true", "false", - "a", - ">>", + "<<", "AS", ",", + "a", + ">>", "INTO", ";", :_eof, @@ -45412,25 +45024,262 @@ module SPARQL::Grammar::Meta :INTEGER_NEGATIVE, :DECIMAL_NEGATIVE, :DOUBLE_NEGATIVE], - :Quads => [ + :Quads => [ + "}"], + :QuadsNotTriples => [ + ".", + "}", + "GRAPH", + :VAR1, + :VAR2, + :NIL, + "<<", + :IRIREF, + "true", + "false", + :BLANK_NODE_LABEL, + :ANON, + "(", + "[", + :PNAME_LN, + :PNAME_NS, + :STRING_LITERAL1, + :STRING_LITERAL2, + :STRING_LITERAL_LONG1, + :STRING_LITERAL_LONG2, + :INTEGER, + :DECIMAL, + :DOUBLE, + :INTEGER_POSITIVE, + :DECIMAL_POSITIVE, + :DOUBLE_POSITIVE, + :INTEGER_NEGATIVE, + :DECIMAL_NEGATIVE, + :DOUBLE_NEGATIVE], + :_QuadsNotTriples_1 => [ + "}"], + :_QuadsNotTriples_2 => [ + ".", + "}", + "GRAPH", + :VAR1, + :VAR2, + :NIL, + "<<", + :IRIREF, + "true", + "false", + :BLANK_NODE_LABEL, + :ANON, + "(", + "[", + :PNAME_LN, + :PNAME_NS, + :STRING_LITERAL1, + :STRING_LITERAL2, + :STRING_LITERAL_LONG1, + :STRING_LITERAL_LONG2, + :INTEGER, + :DECIMAL, + :DOUBLE, + :INTEGER_POSITIVE, + :DECIMAL_POSITIVE, + :DOUBLE_POSITIVE, + :INTEGER_NEGATIVE, + :DECIMAL_NEGATIVE, + :DOUBLE_NEGATIVE], + :_QuadsNotTriples_3 => [ + ".", + "}", + "GRAPH", + :VAR1, + :VAR2, + :NIL, + "<<", + :IRIREF, + "true", + "false", + :BLANK_NODE_LABEL, + :ANON, + "(", + "[", + :PNAME_LN, + :PNAME_NS, + :STRING_LITERAL1, + :STRING_LITERAL2, + :STRING_LITERAL_LONG1, + :STRING_LITERAL_LONG2, + :INTEGER, + :DECIMAL, + :DOUBLE, + :INTEGER_POSITIVE, + :DECIMAL_POSITIVE, + :DOUBLE_POSITIVE, + :INTEGER_NEGATIVE, + :DECIMAL_NEGATIVE, + :DOUBLE_NEGATIVE], + :_QuadsNotTriples_4 => [ + ".", + "}", + "GRAPH", + :VAR1, + :VAR2, + :NIL, + "<<", + :IRIREF, + "true", + "false", + :BLANK_NODE_LABEL, + :ANON, + "(", + "[", + :PNAME_LN, + :PNAME_NS, + :STRING_LITERAL1, + :STRING_LITERAL2, + :STRING_LITERAL_LONG1, + :STRING_LITERAL_LONG2, + :INTEGER, + :DECIMAL, + :DOUBLE, + :INTEGER_POSITIVE, + :DECIMAL_POSITIVE, + :DOUBLE_POSITIVE, + :INTEGER_NEGATIVE, + :DECIMAL_NEGATIVE, + :DOUBLE_NEGATIVE], + :_Quads_1 => [ + "}", + "GRAPH"], + :_Quads_10 => [ + "}", + "GRAPH"], + :_Quads_2 => [ + "}"], + :_Quads_3 => [ + "}", + "GRAPH"], + :_Quads_4 => [ + "}"], + :_Quads_5 => [ + "}", + "GRAPH", + :VAR1, + :VAR2, + :NIL, + "<<", + :IRIREF, + "true", + "false", + :BLANK_NODE_LABEL, + :ANON, + "(", + "[", + :PNAME_LN, + :PNAME_NS, + :STRING_LITERAL1, + :STRING_LITERAL2, + :STRING_LITERAL_LONG1, + :STRING_LITERAL_LONG2, + :INTEGER, + :DECIMAL, + :DOUBLE, + :INTEGER_POSITIVE, + :DECIMAL_POSITIVE, + :DOUBLE_POSITIVE, + :INTEGER_NEGATIVE, + :DECIMAL_NEGATIVE, + :DOUBLE_NEGATIVE], + :_Quads_6 => [ + "}", + "GRAPH"], + :_Quads_7 => [ "}"], - :QuadsNotTriples => [ - ".", + :_Quads_8 => [ + "}"], + :_Quads_9 => [ "}", - "GRAPH", + "GRAPH"], + :Query => [ + :_eof], + :QueryUnit => [ + :_eof], + :_Query_1 => [ + :_eof], + :_Query_2 => [ + :_eof], + :QuotedTP => [ + "a", + ">>", + "{|", + ")", + ",", + "]", + "|}", :VAR1, :VAR2, + :IRIREF, + ";", + ".", + "}", :NIL, "<<", - :IRIREF, + "(", + "[", + :PNAME_LN, + :PNAME_NS, "true", "false", :BLANK_NODE_LABEL, :ANON, + "GRAPH", + :STRING_LITERAL1, + :STRING_LITERAL2, + :STRING_LITERAL_LONG1, + :STRING_LITERAL_LONG2, + :INTEGER, + :DECIMAL, + :DOUBLE, + :INTEGER_POSITIVE, + :DECIMAL_POSITIVE, + :DOUBLE_POSITIVE, + :INTEGER_NEGATIVE, + :DECIMAL_NEGATIVE, + :DOUBLE_NEGATIVE, + "{", + "OPTIONAL", + "MINUS", + "SERVICE", + "FILTER", + "BIND", + "VALUES", + "^", + "!"], + :_QuotedTP_1 => [ + "a", + ">>", + "{|", + ")", + ",", + "]", + "|}", + :VAR1, + :VAR2, + :IRIREF, + ";", + ".", + "}", + :NIL, + "<<", "(", "[", :PNAME_LN, :PNAME_NS, + "true", + "false", + :BLANK_NODE_LABEL, + :ANON, + "GRAPH", :STRING_LITERAL1, :STRING_LITERAL2, :STRING_LITERAL_LONG1, @@ -45443,26 +45292,88 @@ module SPARQL::Grammar::Meta :DOUBLE_POSITIVE, :INTEGER_NEGATIVE, :DECIMAL_NEGATIVE, - :DOUBLE_NEGATIVE], - :_QuadsNotTriples_1 => [ - "}"], - :_QuadsNotTriples_2 => [ - ".", - "}", - "GRAPH", + :DOUBLE_NEGATIVE, + "{", + "OPTIONAL", + "MINUS", + "SERVICE", + "FILTER", + "BIND", + "VALUES", + "^", + "!"], + :_QuotedTP_2 => [ + "a", + ">>", + "{|", + ")", + ",", + "]", + "|}", :VAR1, :VAR2, + :IRIREF, + ";", + ".", + "}", :NIL, "<<", - :IRIREF, + "(", + "[", + :PNAME_LN, + :PNAME_NS, "true", "false", :BLANK_NODE_LABEL, :ANON, + "GRAPH", + :STRING_LITERAL1, + :STRING_LITERAL2, + :STRING_LITERAL_LONG1, + :STRING_LITERAL_LONG2, + :INTEGER, + :DECIMAL, + :DOUBLE, + :INTEGER_POSITIVE, + :DECIMAL_POSITIVE, + :DOUBLE_POSITIVE, + :INTEGER_NEGATIVE, + :DECIMAL_NEGATIVE, + :DOUBLE_NEGATIVE, + "{", + "OPTIONAL", + "MINUS", + "SERVICE", + "FILTER", + "BIND", + "VALUES", + "^", + "!"], + :_QuotedTP_3 => [ + "a", + ">>", + "{|", + ")", + ",", + "]", + "|}", + :VAR1, + :VAR2, + :IRIREF, + ";", + ".", + "}", + :NIL, + "<<", "(", "[", :PNAME_LN, :PNAME_NS, + "true", + "false", + :BLANK_NODE_LABEL, + :ANON, + "GRAPH", :STRING_LITERAL1, :STRING_LITERAL2, :STRING_LITERAL_LONG1, @@ -45475,24 +45386,75 @@ module SPARQL::Grammar::Meta :DOUBLE_POSITIVE, :INTEGER_NEGATIVE, :DECIMAL_NEGATIVE, - :DOUBLE_NEGATIVE], - :_QuadsNotTriples_3 => [ - ".", - "}", - "GRAPH", + :DOUBLE_NEGATIVE, + "{", + "OPTIONAL", + "MINUS", + "SERVICE", + "FILTER", + "BIND", + "VALUES", + "^", + "!"], + :_QuotedTP_4 => [ + "a", + ">>", + "{|", + ")", + ",", + "]", + "|}", :VAR1, :VAR2, + :IRIREF, + ";", + ".", + "}", :NIL, "<<", - :IRIREF, + "(", + "[", + :PNAME_LN, + :PNAME_NS, "true", "false", :BLANK_NODE_LABEL, :ANON, - "(", - "[", + "GRAPH", + :STRING_LITERAL1, + :STRING_LITERAL2, + :STRING_LITERAL_LONG1, + :STRING_LITERAL_LONG2, + :INTEGER, + :DECIMAL, + :DOUBLE, + :INTEGER_POSITIVE, + :DECIMAL_POSITIVE, + :DOUBLE_POSITIVE, + :INTEGER_NEGATIVE, + :DECIMAL_NEGATIVE, + :DOUBLE_NEGATIVE, + "{", + "OPTIONAL", + "MINUS", + "SERVICE", + "FILTER", + "BIND", + "VALUES", + "^", + "!"], + :QuotedTriple => [ + "}", + ")", + "a", + :IRIREF, + ">>", + "UNDEF", :PNAME_LN, :PNAME_NS, + "<<", + "true", + "false", :STRING_LITERAL1, :STRING_LITERAL2, :STRING_LITERAL_LONG1, @@ -45506,21 +45468,11 @@ module SPARQL::Grammar::Meta :INTEGER_NEGATIVE, :DECIMAL_NEGATIVE, :DOUBLE_NEGATIVE], - :_QuadsNotTriples_4 => [ - ".", - "}", - "GRAPH", - :VAR1, - :VAR2, - :NIL, - "<<", + :_QuotedTriple_1 => [ :IRIREF, "true", "false", - :BLANK_NODE_LABEL, - :ANON, - "(", - "[", + "<<", :PNAME_LN, :PNAME_NS, :STRING_LITERAL1, @@ -45536,35 +45488,43 @@ module SPARQL::Grammar::Meta :INTEGER_NEGATIVE, :DECIMAL_NEGATIVE, :DOUBLE_NEGATIVE], - :_Quads_1 => [ + :_QuotedTriple_2 => [ "}", - "GRAPH"], - :_Quads_10 => [ - "}", - "GRAPH"], - :_Quads_2 => [ - "}"], - :_Quads_3 => [ - "}", - "GRAPH"], - :_Quads_4 => [ - "}"], - :_Quads_5 => [ - "}", - "GRAPH", - :VAR1, - :VAR2, - :NIL, - "<<", + ")", + "a", :IRIREF, + ">>", + "UNDEF", + :PNAME_LN, + :PNAME_NS, + "<<", "true", "false", - :BLANK_NODE_LABEL, - :ANON, - "(", - "[", + :STRING_LITERAL1, + :STRING_LITERAL2, + :STRING_LITERAL_LONG1, + :STRING_LITERAL_LONG2, + :INTEGER, + :DECIMAL, + :DOUBLE, + :INTEGER_POSITIVE, + :DECIMAL_POSITIVE, + :DOUBLE_POSITIVE, + :INTEGER_NEGATIVE, + :DECIMAL_NEGATIVE, + :DOUBLE_NEGATIVE], + :_QuotedTriple_3 => [ + "}", + ")", + "a", + :IRIREF, + ">>", + "UNDEF", :PNAME_LN, :PNAME_NS, + "<<", + "true", + "false", :STRING_LITERAL1, :STRING_LITERAL2, :STRING_LITERAL_LONG1, @@ -45578,24 +45538,56 @@ module SPARQL::Grammar::Meta :INTEGER_NEGATIVE, :DECIMAL_NEGATIVE, :DOUBLE_NEGATIVE], - :_Quads_6 => [ + :_QuotedTriple_4 => [ "}", - "GRAPH"], - :_Quads_7 => [ - "}"], - :_Quads_8 => [ - "}"], - :_Quads_9 => [ + ")", + "a", + :IRIREF, + ">>", + "UNDEF", + :PNAME_LN, + :PNAME_NS, + "<<", + "true", + "false", + :STRING_LITERAL1, + :STRING_LITERAL2, + :STRING_LITERAL_LONG1, + :STRING_LITERAL_LONG2, + :INTEGER, + :DECIMAL, + :DOUBLE, + :INTEGER_POSITIVE, + :DECIMAL_POSITIVE, + :DOUBLE_POSITIVE, + :INTEGER_NEGATIVE, + :DECIMAL_NEGATIVE, + :DOUBLE_NEGATIVE], + :_QuotedTriple_5 => [ "}", - "GRAPH"], - :Query => [ - :_eof], - :QueryUnit => [ - :_eof], - :_Query_1 => [ - :_eof], - :_Query_2 => [ - :_eof], + ")", + "a", + :IRIREF, + ">>", + "UNDEF", + :PNAME_LN, + :PNAME_NS, + "<<", + "true", + "false", + :STRING_LITERAL1, + :STRING_LITERAL2, + :STRING_LITERAL_LONG1, + :STRING_LITERAL_LONG2, + :INTEGER, + :DECIMAL, + :DOUBLE, + :INTEGER_POSITIVE, + :DECIMAL_POSITIVE, + :DOUBLE_POSITIVE, + :INTEGER_NEGATIVE, + :DECIMAL_NEGATIVE, + :DOUBLE_NEGATIVE], :RDFLiteral => [ "}", ")", @@ -47133,10 +47125,10 @@ module SPARQL::Grammar::Meta ")", "AS", ",", - "a", - ">>", "FROM", "USING", + "a", + ">>", :IRIREF, "UNDEF", "{|", @@ -47164,9 +47156,9 @@ module SPARQL::Grammar::Meta "/", "+", "-", + "ORDER", :VAR1, :VAR2, - "ORDER", :STRING_LITERAL1, :STRING_LITERAL2, :STRING_LITERAL_LONG1, @@ -48233,9 +48225,9 @@ module SPARQL::Grammar::Meta ")", "AS", ",", + "^^", "a", ">>", - "^^", :IRIREF, "UNDEF", "{|", @@ -49544,12 +49536,12 @@ module SPARQL::Grammar::Meta ")", :VAR1, :VAR2, - "<<", :BLANK_NODE_LABEL, :ANON, :IRIREF, "true", "false", + "<<", "AS", ",", "a", @@ -49681,12 +49673,12 @@ module SPARQL::Grammar::Meta "{", :VAR1, :VAR2, - "<<", :BLANK_NODE_LABEL, :ANON, :IRIREF, "true", "false", + "<<", :PNAME_LN, :PNAME_NS, :STRING_LITERAL1, @@ -49714,7 +49706,7 @@ module SPARQL::Grammar::Meta :_eof, "LIMIT", "OFFSET"], - :VarOrTermOrEmbTP => [ + :VarOrTermOrQuotedTP => [ "a", "{|", ")", @@ -49763,12 +49755,12 @@ module SPARQL::Grammar::Meta :Verb => [ :VAR1, :VAR2, - "<<", :BLANK_NODE_LABEL, :ANON, :IRIREF, "true", "false", + "<<", :PNAME_LN, :PNAME_NS, :STRING_LITERAL1, @@ -49908,16 +49900,16 @@ module SPARQL::Grammar::Meta "{", :VAR1, :VAR2, - "<<", :BLANK_NODE_LABEL, :ANON, :IRIREF, "true", "false", - "a", - ">>", + "<<", "AS", ",", + "a", + ">>", "INTO", ";", :_eof, @@ -50050,6 +50042,14 @@ module SPARQL::Grammar::Meta :INTEGER_NEGATIVE, :DECIMAL_NEGATIVE, :DOUBLE_NEGATIVE], + :qtSubjectOrObject => [ + "a", + ">>", + :VAR1, + :VAR2, + :IRIREF, + :PNAME_LN, + :PNAME_NS], }.freeze CLEANUP = { :_Add_1 => :opt, diff --git a/lib/sparql/grammar/parser11.rb b/lib/sparql/grammar/parser11.rb index b0885d1c..5baf0656 100644 --- a/lib/sparql/grammar/parser11.rb +++ b/lib/sparql/grammar/parser11.rb @@ -754,7 +754,7 @@ class Parser end end - # [65] DataBlockValue ::= EmbTD | iri | RDFLiteral | NumericLiteral | BooleanLiteral | 'UNDEF' + # [65] DataBlockValue ::= QuotedTriple | iri | RDFLiteral | NumericLiteral | BooleanLiteral | 'UNDEF' production(:DataBlockValue) do |input, data, callback| add_prod_datum :DataBlockValue, data.values.first end @@ -833,7 +833,7 @@ class Parser add_prod_datum(:ConstructTemplate, data[:ConstructTemplate]) end - # [75] TriplesSameSubject ::= VarOrTermOrEmbTP PropertyListNotEmpty + # [75] TriplesSameSubject ::= VarOrTermOrQuotedTP PropertyListNotEmpty # | TriplesNode PropertyList production(:TriplesSameSubject) do |input, data, callback| add_prod_datum(:pattern, data[:pattern]) @@ -842,8 +842,8 @@ class Parser # [77] PropertyListNotEmpty ::= Verb ObjectList # ( ';' ( Verb ObjectList )? )* start_production(:PropertyListNotEmpty) do |input, data, callback| - subject = input[:VarOrTermOrEmbTP] || input[:TriplesNode] || input[:GraphNode] - error(nil, "Expected VarOrTermOrEmbTP or TriplesNode or GraphNode", production: :PropertyListNotEmpty) if validate? && !subject + subject = input[:VarOrTermOrQuotedTP] || input[:TriplesNode] || input[:GraphNode] + error(nil, "Expected VarOrTermOrQuotedTP or TriplesNode or GraphNode", production: :PropertyListNotEmpty) if validate? && !subject data[:Subject] = subject end production(:PropertyListNotEmpty) do |input, data, callback| @@ -899,7 +899,7 @@ class Parser add_prod_datum(:pattern, data[:pattern]) end - # [81] TriplesSameSubjectPath ::= VarOrTermOrEmbTP PropertyListPathNotEmpty | TriplesNode PropertyListPath + # [81] TriplesSameSubjectPath ::= VarOrTermOrQuotedTP PropertyListPathNotEmpty | TriplesNode PropertyListPath production(:TriplesSameSubjectPath) do |input, data, callback| add_prod_datum(:pattern, data[:pattern]) add_prod_datum(:path, data[:path]) @@ -907,8 +907,8 @@ class Parser # [83] PropertyListPathNotEmpty ::= ( VerbPath | VerbSimple ) ObjectList ( ';' ( ( VerbPath | VerbSimple ) ObjectList )? )* start_production(:PropertyListPathNotEmpty) do |input, data, callback| - subject = input[:VarOrTermOrEmbTP] || input[:TriplesNode] || input[:GraphNode] - error(nil, "Expected VarOrTermOrEmbTP, got nothing", production: :PropertyListPathNotEmpty) if validate? && !subject + subject = input[:VarOrTermOrQuotedTP] || input[:TriplesNode] || input[:GraphNode] + error(nil, "Expected VarOrTermOrQuotedTP, got nothing", production: :PropertyListPathNotEmpty) if validate? && !subject data[:Subject] = subject end production(:PropertyListPathNotEmpty) do |input, data, callback| @@ -954,7 +954,7 @@ class Parser data[:Verb] = Array(input[:Verb]).first end production(:ObjectPath) do |input, data, callback| - object = data[:VarOrTermOrEmbTP] || data[:TriplesNode] || data[:GraphNode] + object = data[:VarOrTermOrQuotedTP] || data[:TriplesNode] || data[:GraphNode] if object if prod_data[:Verb] if data[:pattern] && data[:path] @@ -1116,24 +1116,24 @@ class Parser add_prod_datum(:path, data[:path]) end - # [104] GraphNode ::= VarOrTermOrEmbTP | TriplesNode + # [104] GraphNode ::= VarOrTermOrQuotedTP | TriplesNode production(:GraphNode) do |input, data, callback| - term = data[:VarOrTermOrEmbTP] || data[:TriplesNode] + term = data[:VarOrTermOrQuotedTP] || data[:TriplesNode] add_prod_datum(:pattern, data[:pattern]) add_prod_datum(:GraphNode, term) end - # [105] GraphNodePath ::= VarOrTermOrEmbTP | TriplesNodePath + # [105] GraphNodePath ::= VarOrTermOrQuotedTP | TriplesNodePath production(:GraphNodePath) do |input, data, callback| - term = data[:VarOrTermOrEmbTP] || data[:TriplesNode] + term = data[:VarOrTermOrQuotedTP] || data[:TriplesNode] add_prod_datum(:pattern, data[:pattern]) add_prod_datum(:path, data[:path]) add_prod_datum(:GraphNode, term) end - # [106s] VarOrTermOrEmbTP ::= Var | GraphTerm | EmbTP - production(:VarOrTermOrEmbTP) do |input, data, callback| - data.values.each {|v| add_prod_datum(:VarOrTermOrEmbTP, v)} + # [106s] VarOrTermOrQuotedTP ::= Var | GraphTerm | EmbTP + production(:VarOrTermOrQuotedTP) do |input, data, callback| + data.values.each {|v| add_prod_datum(:VarOrTermOrQuotedTP, v)} end # [107] VarOrIri ::= Var | iri @@ -1151,22 +1151,6 @@ class Parser data[:NIL]) end - # [174] EmbTP ::= '<<' EmbSubjectOrObject Verb EmbSubjectOrObject '>>' - production(:EmbTP) do |input, data, callback| - subject, object = data[:EmbSubjectOrObject] - predicate = data[:Verb] - add_pattern(:EmbTP, - subject: subject, - predicate: predicate, - object: object) - end - - # [175] EmbSubjectOrObject ::= Var | BlankNode | iri | RDFLiteral - # | NumericLiteral | BooleanLiteral | EmbTP - production(:EmbSubjectOrObject) do |input, data, callback| - data.values.each {|v| add_prod_datum(:EmbSubjectOrObject, v)} - end - # [110] Expression ::= ConditionalOrExpression production(:Expression) do |input, data, callback| add_prod_datum(:Expression, data[:Expression]) @@ -1306,7 +1290,7 @@ class Parser # | iriOrFunction | RDFLiteral # | NumericLiteral | BooleanLiteral # | Var - # | ExprEmbTP + # | ExprQuotedTP production(:PrimaryExpression) do |input, data, callback| if data[:Expression] add_prod_datum(:Expression, data[:Expression]) @@ -1328,21 +1312,6 @@ class Parser add_prod_datum(:UnaryExpression, data[:UnaryExpression]) end - # [119a] ExprEmbTP ::= '<<' ExprVarOrTerm Verb ExprVarOrTerm '>>' - production(:ExprEmbTP) do |input, data, callback| - subject, object = data[:ExprVarOrTerm] - predicate = data[:Verb] - add_pattern(:ExprEmbTP, - subject: subject, - predicate: predicate, - object: object) - end - - # [119b] ExprVarOrTerm ::= iri | RDFLiteral | NumericLiteral | BooleanLiteral | Var | ExprEmbTP - production(:ExprVarOrTerm) do |input, data, callback| - data.values.each {|v| add_prod_datum(:ExprVarOrTerm, v)} - end - # [121] BuiltInCall ::= Aggregate # | 'STR' '(' Expression ')' # | 'LANG' '(' Expression ')' @@ -1507,15 +1476,38 @@ class Parser add_prod_datum(:UnaryExpression, data[:UnaryExpression]) end - # [177] AnnotationPattern ::= '{|' PropertyListNotEmpty '|}' - #start_production(:AnnotationPattern) do |input, data, callback| - # data[:TriplesNode] = prod_data[:TriplesNode].first - #end - #production(:AnnotationPattern) do |input, data, callback| - # add_prod_datum(:pattern, data[:pattern]) - #end + # [174] QuotedTP ::= '<<' qtSubjectOrObject Verb qtSubjectOrObject '>>' + production(:QuotedTP) do |input, data, callback| + subject, object = data[:qtSubjectOrObject] + predicate = data[:Verb] + add_pattern(:QuotedTP, + subject: subject, + predicate: predicate, + object: object) + end + + # [175] QuotedTriple ::= '<<' DataValueTerm (iri | 'a') DataValueTerm '>>' + production(:QuotedTriple) do |input, data, callback| + subject, object = data[:DataValueTerm] + predicate = data[:iri] + add_pattern(:QuotedTriple, + subject: subject, + predicate: predicate, + object: object) + end + + # [176] qtSubjectOrObject ::= Var | BlankNode | iri | RDFLiteral + # | NumericLiteral | BooleanLiteral | QuotedTP + production(:qtSubjectOrObject) do |input, data, callback| + data.values.each {|v| add_prod_datum(:qtSubjectOrObject, v)} + end - # [178] AnnotationPatternPath ::= '{|' PropertyListPathNotEmpty '|}' + # [177] DataValueTerm ::= iri | RDFLiteral | NumericLiteral | BooleanLiteral | QuotedTriple + production(:DataValueTerm) do |input, data, callback| + add_prod_datum :DataValueTerm, data.values.first + end + + # [180] AnnotationPatternPath ::= '{|' PropertyListPathNotEmpty '|}' start_production(:AnnotationPatternPath) do |input, data, callback| data[:TriplesNode] = input[:TriplesNode] end @@ -1529,21 +1521,21 @@ class Parser end end - # [179] EmbTD ::= '<<' DataValueTerm ( iri | 'a' ) DataValueTerm '>>' - production(:EmbTD) do |input, data, callback| - subject, object = data[:DataValueTerm] - predicate = data[:iri] - add_pattern(:EmbTD, + # [181] ExprQuotedTP ::= '<<' ExprVarOrTerm Verb ExprVarOrTerm '>>' + production(:ExprQuotedTP) do |input, data, callback| + subject, object = data[:ExprVarOrTerm] + predicate = data[:Verb] + add_pattern(:ExprQuotedTP, subject: subject, predicate: predicate, object: object) end - # [180] DataValueTerm ::= EmbTD | iri | RDFLiteral | NumericLiteral | BooleanLiteral - production(:DataValueTerm) do |input, data, callback| - add_prod_datum :DataValueTerm, data.values.first + # [182] ExprVarOrTerm ::= iri | RDFLiteral | NumericLiteral | BooleanLiteral | Var | ExprQuotedTP + production(:ExprVarOrTerm) do |input, data, callback| + data.values.each {|v| add_prod_datum(:ExprVarOrTerm, v)} end - + ## # Initializes a new parser instance. # diff --git a/spec/grammar/parser_spec.rb b/spec/grammar/parser_spec.rb index 2d677961..099ea6a8 100644 --- a/spec/grammar/parser_spec.rb +++ b/spec/grammar/parser_spec.rb @@ -1896,7 +1896,7 @@ def self.variable(id, distinguished = true) include_examples "GraphTerm" end - describe "when matching the [106] VarOrTermOrEmbTP production rule", production: :VarOrTermOrEmbTP do + describe "when matching the [106] VarOrTermOrQuotedTP production rule", production: :VarOrTermOrQuotedTP do include_examples "Var" include_examples "GraphTerm" end From 5136548636d0e9574deb1b6c3ec1a69478ffb1f6 Mon Sep 17 00:00:00 2001 From: Gregg Kellogg Date: Sun, 8 Aug 2021 12:05:42 -0700 Subject: [PATCH 3/7] Filter out known failing tests in script/tc. --- script/tc | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/script/tc b/script/tc index eda75398..2affbf4c 100755 --- a/script/tc +++ b/script/tc @@ -72,15 +72,25 @@ def run_tc(tc, **options) case tc.name when 'Basic - Term 6', 'Basic - Term 7', 'syntax-lit-08.rq' - # Decimal format changed in SPARQL 1.1 + # Decimal format changed in SPARQL 1.1 when 'syntax-esc-04.rq', 'syntax-esc-05.rq' # PNAME_LN changed in SPARQL 1.1 when 'datatype-2 : Literals with a datatype' - # datatype now returns rdf:langString for language-tagged literals + # datatype now returns rdf:langString for language-tagged literals when /REDUCED/ - # REDUCED equivalent to DISTINCT + # REDUCED equivalent to DISTINCT + when 'Strings: Distinct', 'All: Distinct' + # More compact representation when /pp11|pp31/ - # Expects multiple equivalent property path solutions + # Expects multiple equivalent property path solutions + when /syntax-update-(26|27|28|36).ru/ + # Whitespace in string tokens + when 'date-1', 'dawg-optional-filter-005-not-simplified' + # Different results on unapproved tests + when /COUNT (8|9|10|11|12)$/, /syn-bad-0[12].rq/, 'syn-bad-pname-06', /Group-[67]$/ + # Better Error Detection + when /sq03/ + # Graph variable binding differences else case tc.type when 'mf:QueryEvaluationTest' @@ -324,9 +334,9 @@ manifests.each do |path| next unless tc.action name = Array(tc.name).join("") + Array(tc.entry).join("") next unless ARGV.empty? || ARGV.any? do |n| - tc.attributes['id'].match?(/#{n}/) || - tc.action.is_a?(Hash) && tc.action['mq:query'].match?(/n/) || - name.match(/#{n}/) + tc.attributes['id'].include?(n) || + tc.action.is_a?(Hash) && tc.action['mq:query'].include?(n) || + name.include?(n) end run_tc(tc, **options) end From aa8fc2b8e029e9ea6993f4ca91ff8f51c0a74e19 Mon Sep 17 00:00:00 2001 From: Gregg Kellogg Date: Sun, 8 Aug 2021 12:32:56 -0700 Subject: [PATCH 4/7] Improve CI for coveralls. --- .github/workflows/ci.yml | 7 +++++-- Gemfile | 6 +++--- spec/spec_helper.rb | 10 ++++++++-- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0e1a0596..3b65360c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,7 +19,6 @@ jobs: fail-fast: false matrix: ruby: - - 2.4 - 2.5 - 2.6 - 2.7 @@ -37,4 +36,8 @@ jobs: run: bundle install --jobs 4 --retry 3 - name: Run tests run: bundle exec rspec spec - + - name: Coveralls GitHub Action + uses: coverallsapp/github-action@v1.1.2 + if: "matrix.ruby == '3.0'" + with: + github-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/Gemfile b/Gemfile index f6fd52d4..e5f60b48 100644 --- a/Gemfile +++ b/Gemfile @@ -30,9 +30,6 @@ group :development do gem 'ld-patch', github: "ruby-rdf/ld-patch", branch: "develop" gem 'shex', github: "ruby-rdf/shex", branch: "develop" gem "equivalent-xml", '>= 0.6.0' - gem 'psych', platforms: [:mri, :rbx] - gem 'simplecov', platforms: :mri - gem 'coveralls', '~> 0.8', platforms: :mri end group :debug do @@ -45,4 +42,7 @@ end group :test do gem 'rake' + gem 'simplecov', '~> 0.21', platforms: :mri + gem 'simplecov-lcov', '~> 0.8', platforms: :mri + gem 'coveralls', platforms: :mri end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 19c24e29..27468db7 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,5 +1,4 @@ require "bundler/setup" -require 'psych' require 'rspec/its' require 'yaml' require 'rspec' @@ -11,10 +10,17 @@ begin require 'simplecov' + require 'simplecov-lcov' require 'coveralls' + SimpleCov::Formatter::LcovFormatter.config do |config| + #Coveralls is coverage by default/lcov. Send info results + config.report_with_single_file = true + config.single_report_path = 'coverage/lcov.info' + end + SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter.new([ SimpleCov::Formatter::HTMLFormatter, - Coveralls::SimpleCov::Formatter + SimpleCov::Formatter::LcovFormatter ]) SimpleCov.start do add_filter "/spec/" From eb93358e41c93d4b5f4790d8f808649c06f1871e Mon Sep 17 00:00:00 2001 From: Gregg Kellogg Date: Wed, 11 Aug 2021 12:26:56 -0700 Subject: [PATCH 5/7] Remove explicit dependency on coveralls gem. --- Gemfile | 1 - spec/spec_helper.rb | 1 - 2 files changed, 2 deletions(-) diff --git a/Gemfile b/Gemfile index e5f60b48..4f7a3f04 100644 --- a/Gemfile +++ b/Gemfile @@ -44,5 +44,4 @@ group :test do gem 'rake' gem 'simplecov', '~> 0.21', platforms: :mri gem 'simplecov-lcov', '~> 0.8', platforms: :mri - gem 'coveralls', platforms: :mri end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 27468db7..238ce094 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -11,7 +11,6 @@ begin require 'simplecov' require 'simplecov-lcov' - require 'coveralls' SimpleCov::Formatter::LcovFormatter.config do |config| #Coveralls is coverage by default/lcov. Send info results config.report_with_single_file = true From 41815cf703797dca775ea94d724e46f8603151cd Mon Sep 17 00:00:00 2001 From: Gregg Kellogg Date: Wed, 25 Aug 2021 16:21:58 -0700 Subject: [PATCH 6/7] Add logger as a dependency and require in bin/sparql. Fixes #37. --- bin/sparql | 1 + sparql.gemspec | 1 + 2 files changed, 2 insertions(+) diff --git a/bin/sparql b/bin/sparql index e59c34d1..be34d8d1 100755 --- a/bin/sparql +++ b/bin/sparql @@ -1,6 +1,7 @@ #!/usr/bin/env ruby require 'rubygems' $:.unshift("../../lib", __FILE__) +require 'logger' require 'sparql' begin require 'linkeddata' diff --git a/sparql.gemspec b/sparql.gemspec index 6dcdda78..e712a2af 100755 --- a/sparql.gemspec +++ b/sparql.gemspec @@ -26,6 +26,7 @@ Gem::Specification.new do |gem| gem.add_runtime_dependency 'rdf-aggregate-repo', '~> 3.1' gem.add_runtime_dependency 'ebnf', '~> 2.1' gem.add_runtime_dependency 'builder', '~> 3.2' + gem.add_runtime_dependency 'logger', '~> 1.4' gem.add_runtime_dependency 'sxp', '~> 1.1' gem.add_runtime_dependency 'sparql-client', '~> 3.1', '>= 3.1.2' gem.add_runtime_dependency 'rdf-xsd', '~> 3.1' From 0c1e64169d499a6cf0487a6f59295033f4f4f3b6 Mon Sep 17 00:00:00 2001 From: Gregg Kellogg Date: Wed, 25 Aug 2021 16:44:00 -0700 Subject: [PATCH 7/7] Version 3.1.8. --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 23887f6e..c848fb9c 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.1.7 +3.1.8