Sha256: dbb3f777f28938c6c4c5c4a1c09ec19f1568dc3a0ce1d019ea76f37c3bb030e4

Contents?: true

Size: 1.3 KB

Versions: 3

Compression:

Stored size: 1.3 KB

Contents

require 'rdf'

# mixin methods
module RDF
  class FCRepo4 < RDF::StrictVocabulary("http://fedora.info/definitions/v4/repository")

    # returns graph without any fedora-specific triples
    def self.remove_fedora_triples graph
      if graph && graph.is_a?(RDF::Graph) && graph.count > 0
        no_fedora_graph = RDF::Graph.new
        fedora_props = RDF::FCRepo4.properties.map {|p| p.to_s}
        # the fedora vocab is not complete and also doesn't cover modeshape triples
        fedora_ns = "http://fedora.info/definitions"
        modeshape_ns = "http://www.jcp.org/jcr"
        graph.each { |stmt|  
          no_fedora_graph << stmt unless fedora_props.include?(stmt.predicate.to_s) || 
                                      fedora_props.include?(stmt.object.to_s) ||
                                      fedora_props.include?(stmt.subject.to_s) ||
                                      stmt.predicate.to_s.match(fedora_ns) ||
                                      stmt.predicate.to_s.match(modeshape_ns) || 
                                      stmt.subject.to_s.match(fedora_ns) ||
                                      stmt.object.to_s.match(fedora_ns) ||
                                      stmt.object.to_s.match(modeshape_ns)
        }
        no_fedora_graph
      else
        graph
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
rdf-fcrepo4-0.0.5 lib/rdf/fcrepo4/helper.rb
rdf-fcrepo4-0.0.4 lib/rdf/fcrepo4/helper.rb
rdf-fcrepo4-0.0.2 lib/rdf/fcrepo4/helper.rb