module SADI::BaseService

Public Instance Methods

input_classes() click to toggle source
# File lib/sadi-rb/base_service.rb, line 33
def input_classes
  moby = RDF::Vocabulary.new('http://www.mygrid.org.uk/mygrid-moby-service#')

  solutions = RDF::Query.execute(service_description) do
    pattern [nil, moby.inputParameter, :param]
    pattern [:param, moby.objectType, :in_class]
  end

  solutions.map(&:in_class)
end
input_objects(graph) click to toggle source
# File lib/sadi-rb/base_service.rb, line 23
def input_objects(graph)
  input_classes.map do |cl|
    solutions = RDF::Query.execute(graph) do
      pattern [:obj, RDF.type, cl]
    end

    solutions.map(&:obj)
  end.flatten
end
output_classes() click to toggle source
# File lib/sadi-rb/base_service.rb, line 44
def output_classes
  moby = RDF::Vocabulary.new('http://www.mygrid.org.uk/mygrid-moby-service#')

  solutions = RDF::Query.execute(service_description) do
    pattern [nil, moby.outputParameter, :param]
    pattern [:param, moby.objectType, :out_class]
  end

  solutions.map(&:out_class)
end
process_input(input, format) click to toggle source

def self.classes

@classes

end

# File lib/sadi-rb/base_service.rb, line 19
def process_input(input, format)
  raise "Input processing should be implemented by service module"
end
process_object(owl_graph, object) click to toggle source
# File lib/sadi-rb/base_service.rb, line 63
def process_object(owl_graph, object)
  raise "Must implement a #process_input that takes an RDF::Graph or Repository as input and returns a new one"
end
service_description(service) click to toggle source
# File lib/sadi-rb/base_service.rb, line 55
def service_description(service)
  raise "Must implement a #service_description method returning an RDF::Graph or Repository"
end
service_name() click to toggle source
# File lib/sadi-rb/base_service.rb, line 67
def service_name
  raise "Must define a service name"
end
service_owl(service) click to toggle source
# File lib/sadi-rb/base_service.rb, line 59
def service_owl(service)
  raise "Must implement a #service_owl method returning an RDF::Graph or Repository"
end