lib/sparql/grammar/parser11.rb in sparql-1.1.8 vs lib/sparql/grammar/parser11.rb in sparql-1.1.9

- old
+ new

@@ -550,10 +550,11 @@ # Generate BNodes instead of non-distinguished variables self.clear_bnode_cache end production(:QuadData) do |input, data, callback| # Transform using statements instead of patterns, and verify there are no variables + raise Error, "QuadData empty" unless data[:pattern] raise Error, "QuadData contains variable operands: #{data[:pattern].to_sse}" if data[:pattern].first.variable? self.nd_var_gen = "0" input[:pattern] = data[:pattern] end @@ -879,12 +880,10 @@ end end # [85] VerbSimple ::= Var production(:VerbSimple) do |input, data, callback| - #require 'byebug'; byebug - #data.values.each {|v| add_prod_datum(:Verb, v)} input[:Verb] = data.values.flatten.first end # [86] ObjectListPath ::= ObjectPath ("," ObjectPath)* start_production(:ObjectListPath) do |input, data, callback| @@ -1689,20 +1688,17 @@ end # Create URIs def iri(value) # If we have a base URI, use that when constructing a new URI - iri = if base_uri - u = base_uri.join(value.to_s) - u.lexical = "<#{value}>" unless u.to_s == value.to_s || resolve_iris? + value = RDF::URI(value) + if base_uri && value.relative? + u = base_uri.join(value) + u.lexical = "<#{value}>" unless resolve_iris? u else - RDF::URI(value) + value end - - #iri.validate! if validate? && iri.respond_to?(:validate) - #iri = RDF::URI.intern(iri) if intern? - iri end def ns(prefix, suffix) base = prefix(prefix).to_s suffix = suffix.to_s.sub(/^\#/, "") if base.index("#")