Sha256: c6d3d6378af21a333a82b7c3a190775c23255a7f06c5ab372c1c05868847046c

Contents?: true

Size: 1.08 KB

Versions: 3

Compression:

Stored size: 1.08 KB

Contents

# require 'active_rdf'
require 'queryengine/query2sparql'

# Generic superclass of all adapters
module ActiveRDF
  class ActiveRdfAdapter
    # indicate if adapter can read and write
    bool_accessor :reads, :writes, :contexts, :enabled

    def initialize(params = {})
      # defaults
      @enabled =                               true
      @reads =                                 true
      @writes =      truefalse(params[:write], true)
      @new =           truefalse(params[:new], false)
      @contexts = truefalse(params[:contexts], false)
    end

    # translate a query to its string representation
    def translate(query)
      Query2SPARQL.translate(query)
    end

    # Clear the adapter. Crude default implementation, which can be overwritten
    # in subclasses. TODO: This queries all adapters, this may lead to problems...
    def clear
      raise(ActiveRdfError, "Can only delete from writing adapters") unless(writes?)
      to_delete = Query.new.select(:s, :p, :o).where(:s, :p, :o).execute
      to_delete.each do |s, p, o|
        delete(s, p, o)
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
activerdf_net7-1.7.2 lib/active_rdf/federation/active_rdf_adapter.rb
activerdf_net7-1.7.1 lib/active_rdf/federation/active_rdf_adapter.rb
activerdf_net7-1.7.0 lib/active_rdf/federation/active_rdf_adapter.rb