Sha256: 33ae020a9a549c4a7675db5cee908bfc0be1352fcfa7b5a6080c75e381027df4

Contents?: true

Size: 1.51 KB

Versions: 1

Compression:

Stored size: 1.51 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"
         # this is the old way, but just in case ...
        fedora_describable = "http://purl.org/dc/elements/1.1/describable"
        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) ||
                                      stmt.object.to_s == (fedora_describable)
        }
        no_fedora_graph
      else
        graph
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rdf-fcrepo4-0.0.6 lib/rdf/fcrepo4/helper.rb