Sha256: 7b438ae1197b6f538559eb1b5d5c7e873c26c3ab177843bb8bc5ebc860b0b7e2
Contents?: true
Size: 1.04 KB
Versions: 2
Compression:
Stored size: 1.04 KB
Contents
require 'rdf/rdfxml/patches/graph_properties' module RDF class Graph # Returns ordered rdf:_n objects or rdf:first, rdf:rest for a given subject def seq(subject) props = properties(subject) rdf_type = (props[RDF.type.to_s] || []).map {|t| t.to_s} #puts "seq; #{rdf_type} #{rdf_type - [RDF_NS.Seq, RDF_NS.Bag, RDF_NS.Alt]}" if !(rdf_type - [RDF.Seq, RDF.Bag, RDF.Alt]).empty? props.keys.select {|k| k.match(/#{RDF.to_s}_(\d)$/)}. sort_by {|i| i.sub(RDF._.to_s, "").to_i}. map {|key| props[key]}. flatten elsif !self.query(:subject => subject, :predicate => RDF.first).empty? # N3-style first/rest chain list = [] while subject != RDF_NS.nil props = properties(subject) f = props[RDF.first.to_s] if f.to_s.empty? || f.first == RDF.nil subject = RDF.nil else list += f subject = props[RDF.rest.to_s].first end end list else [] end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rdf-rdfxml-0.2.0 | lib/rdf/rdfxml/patches/seq.rb |
rdf-rdfxml-0.0.3 | lib/rdf/rdfxml/patches/seq.rb |