Class: ActiveSesame::Repository

Inherits:
Object
  • Object
show all
Defined in:
lib/active_sesame/repository.rb

Constant Summary collapse

@@prefixes =
{"xsd" => "http://www.w3.org/2001/XMLSchema#",
"ss" => "http://study-stash.radiology.umm.edu/ontologies/study-stash.owl",
"owl" => "http://www.w3.org/2002/07/owl",
"rdf" => "http://www.w3.org/1999/02/22-rdf-syntax-ns",
"rdfs" => "http://www.w3.org/2000/01/rdf-schema"}

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(repository_type = SesameProtocol, options = {}) ⇒ Repository

Returns a new instance of Repository.



12
13
14
15
16
17
# File 'lib/active_sesame/repository.rb', line 12

def initialize(repository_type=SesameProtocol, options={})
  self.send(:extend, repository_type)
  options = default_options.merge(options)
  options.each {|key,value| send("#{key}=".to_sym, value) if respond_to?(key) }
  self.prefixes = @@prefixes
end

Instance Attribute Details

#base_uriObject

Returns the value of attribute base_uri.



10
11
12
# File 'lib/active_sesame/repository.rb', line 10

def base_uri
  @base_uri
end

#connectorObject

Returns the value of attribute connector.



10
11
12
# File 'lib/active_sesame/repository.rb', line 10

def connector
  @connector
end

#prefixesObject

Returns the value of attribute prefixes.



10
11
12
# File 'lib/active_sesame/repository.rb', line 10

def prefixes
  @prefixes
end

#repository_locationObject

Returns the value of attribute repository_location.



10
11
12
# File 'lib/active_sesame/repository.rb', line 10

def repository_location
  @repository_location
end

#repository_uriObject

Returns the value of attribute repository_uri.



10
11
12
# File 'lib/active_sesame/repository.rb', line 10

def repository_uri
  @repository_uri
end

#triple_store_idObject

Returns the value of attribute triple_store_id.



10
11
12
# File 'lib/active_sesame/repository.rb', line 10

def triple_store_id
  @triple_store_id
end

Instance Method Details

#add_prefix(prefix, uri) ⇒ Object



39
40
41
# File 'lib/active_sesame/repository.rb', line 39

def add_prefix(prefix, uri)
  self.prefixes = self.prefixes.merge({prefix => uri})
end

#add_prefixes(prefix_hash) ⇒ Object



43
44
45
# File 'lib/active_sesame/repository.rb', line 43

def add_prefixes(prefix_hash)
  self.prefixes = self.prefixes.merge(prefix_hash)
end

#delete_by_pattern(subject, predicate, object) ⇒ Object



35
36
37
# File 'lib/active_sesame/repository.rb', line 35

def delete_by_pattern(subject, predicate, object)
  query_dispatch("statements", {:method => :delete, :body => {:subj => subject, :pred => predicate, :obj => object}})
end

#find(query, include_prefixes = true) ⇒ Object



23
24
25
# File 'lib/active_sesame/repository.rb', line 23

def find(query, include_prefixes=true)
  ActiveSesame::ResultParser.tableize(find_by_sparql(query, include_prefixes))
end

#find_by_sparql(query, include_prefixes = true) ⇒ Object



19
20
21
# File 'lib/active_sesame/repository.rb', line 19

def find_by_sparql(query, include_prefixes=true)
  query_dispatch("", :method => :get, :body => {:query => self.sparql_base + " " + self.prefixes_to_sparql + " " + query, :queryLn => "SPARQL"})
end

#group_save(xml) ⇒ Object



27
28
29
# File 'lib/active_sesame/repository.rb', line 27

def group_save(xml)
  query_dispatch("statements", {:method => :post, "content-type" => "application/x-rdftransaction", :body => xml})
end

#prefixes_to_sparqlObject



51
52
53
# File 'lib/active_sesame/repository.rb', line 51

def prefixes_to_sparql
  self.prefixes.keys.inject("") {|sparql,key| sparql += "PREFIX #{key}: <#{self.prefixes[key]}> " }
end

#save_triple(subject, predicate, object) ⇒ Object



31
32
33
# File 'lib/active_sesame/repository.rb', line 31

def save_triple(subject, predicate, object)
  query_dispatch("statements", {:method => :put, :body => {:subj => subject, :pred => predicate, :obj => object}})
end

#sparql_baseObject



47
48
49
# File 'lib/active_sesame/repository.rb', line 47

def sparql_base
  "BASE <#{base_uri}>"
end