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("#")