summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormr <mr@mrautenberg.de>2011-01-13 12:01:19 +0100
committermr <mr@mrautenberg.de>2011-01-13 12:01:19 +0100
commit2aafed7543287c420a5aa2e751b8c74ad771d14c (patch)
tree677dc4d9a0d7a748cf436edcc46af2a88ca16f4b
parent768e2b96891e9deaa1e71826dadbcd532742fa4c (diff)
A&A for GET requests
-rw-r--r--lib/dataset.rb22
-rw-r--r--lib/model.rb2
-rw-r--r--lib/opentox.rb8
-rw-r--r--lib/parser.rb17
4 files changed, 26 insertions, 23 deletions
diff --git a/lib/dataset.rb b/lib/dataset.rb
index 52b41a7..a85c2b5 100644
--- a/lib/dataset.rb
+++ b/lib/dataset.rb
@@ -60,7 +60,7 @@ module OpenTox
# @param [optional,String] uri URI of the dataset service, defaults to service specified in configuration
# @return [Array] Array of dataset object without data (use one of the load_* methods to pull data from the server)
def self.all(uri=CONFIG[:services]["opentox-dataset"], subjectid=nil)
- RestClientWrapper.get(uri,{:accept => "text/uri-list",:subjectid => subjectid}).to_s.each_line.collect{|u| Dataset.new(u)}
+ RestClientWrapper.get(uri,{:accept => "text/uri-list",:subjectid => subjectid}).to_s.each_line.collect{|u| Dataset.new(u, subjectid)}
end
# Load YAML representation into the dataset
@@ -77,10 +77,10 @@ module OpenTox
# Load RDF/XML representation from a file
# @param [String] file File with RDF/XML representation of the dataset
# @return [OpenTox::Dataset] Dataset object with RDF/XML data
- def load_rdfxml_file(file)
- parser = Parser::Owl::Dataset.new @uri
+ def load_rdfxml_file(file, subjectid=nil)
+ parser = Parser::Owl::Dataset.new @uri, subjectid
parser.uri = file.path
- copy parser.load_uri
+ copy parser.load_uri(subjectid)
end
# Load CSV string (format specification: http://toxcreate.org/help)
@@ -111,8 +111,8 @@ module OpenTox
# Load and return only metadata of a Dataset object
# @return [Hash] Metadata of the dataset
- def load_metadata
- add_metadata Parser::Owl::Dataset.new(@uri).load_metadata
+ def load_metadata(subjectid=nil)
+ add_metadata Parser::Owl::Dataset.new(@uri, subjectid).load_metadata(subjectid)
self.uri = @uri if @uri # keep uri
@metadata
end
@@ -122,8 +122,8 @@ module OpenTox
if (CONFIG[:yaml_hosts].include?(URI.parse(@uri).host))
copy YAML.load(RestClientWrapper.get(@uri, {:accept => "application/x-yaml", :subjectid => subjectid}))
else
- parser = Parser::Owl::Dataset.new(@uri)
- copy parser.load_uri
+ parser = Parser::Owl::Dataset.new(@uri, subjectid)
+ copy parser.load_uri(subjectid)
end
end
@@ -138,9 +138,9 @@ module OpenTox
# Load and return only features from the dataset service
# @return [Hash] Features of the dataset
- def load_features
- parser = Parser::Owl::Dataset.new(@uri)
- @features = parser.load_features
+ def load_features(subjectid=nil)
+ parser = Parser::Owl::Dataset.new(@uri, subjectid)
+ @features = parser.load_features(subjectid)
@features
end
diff --git a/lib/model.rb b/lib/model.rb
index 7aa3f5c..6ef4af2 100644
--- a/lib/model.rb
+++ b/lib/model.rb
@@ -99,7 +99,7 @@ module OpenTox
OT.parameters => [{DC.title => "dataset_uri", OT.paramValue => dataset_uri}]
})
d = Dataset.new(dataset_uri,subjectid)
- d.load_compounds
+ d.load_compounds(subjectid)
d.compounds.each do |compound_uri|
predict(compound_uri,false,subjectid)
end
diff --git a/lib/opentox.rb b/lib/opentox.rb
index 90683e5..f1af5c3 100644
--- a/lib/opentox.rb
+++ b/lib/opentox.rb
@@ -19,14 +19,14 @@ module OpenTox
# Get all objects from a service
# @return [Array] List of available URIs
- def self.all(uri)
- RestClientWrapper.get(uri,:accept => "text/uri-list").to_s.split(/\n/)
+ def self.all(uri, subjectid=nil)
+ RestClientWrapper.get(uri,:accept => "text/uri-list", :subjectid => subjectid).to_s.split(/\n/)
end
# Load (and return) metadata from object URI
# @return [Hash] Metadata
- def load_metadata
- @metadata = Parser::Owl::Generic.new(@uri).load_metadata
+ def load_metadata(subjectid=nil)
+ @metadata = Parser::Owl::Generic.new(@uri).load_metadata(subjectid)
@metadata
end
diff --git a/lib/parser.rb b/lib/parser.rb
index b727412..a913cf2 100644
--- a/lib/parser.rb
+++ b/lib/parser.rb
@@ -29,14 +29,14 @@ module OpenTox
# Read metadata from opentox service
# @return [Hash] Object metadata
- def load_metadata
+ def load_metadata(subjectid=nil)
if @dataset
uri = File.join(@uri,"metadata")
else
uri = @uri
end
-
+ uri += "?subjectid=#{CGI.escape(subjectid)}" if subjectid
statements = []
parameter_ids = []
`rapper -i rdfxml -o ntriples #{uri} 2>/dev/null`.each_line do |line|
@@ -71,9 +71,9 @@ module OpenTox
# Create a new OWL-DL dataset parser
# @param uri Dataset URI
# @return [OpenTox::Parser::Owl::Dataset] OWL-DL parser
- def initialize(uri)
+ def initialize(uri, subjectid=nil)
super uri
- @dataset = ::OpenTox::Dataset.new(@uri)
+ @dataset = ::OpenTox::Dataset.new(@uri, subjectid)
end
# Read data from dataset service. Files can be parsed by setting #uri to a filename (after initialization with a real URI)
@@ -87,12 +87,14 @@ module OpenTox
# dataset = parser.load_uri
# dataset.save
# @return [Hash] Internal dataset representation
- def load_uri
+ def load_uri(subjectid=nil)
+ uri = @uri
+ uri += "?subjectid=#{CGI.escape(subjectid)}" if subjectid
data = {}
feature_values = {}
feature = {}
other_statements = {}
- `rapper -i rdfxml -o ntriples #{@uri} 2>/dev/null`.each_line do |line|
+ `rapper -i rdfxml -o ntriples #{uri} 2>/dev/null`.each_line do |line|
triple = line.chomp.split(' ',3)
triple = triple[0..2].collect{|i| i.sub(/\s+.$/,'').gsub(/[<>"]/,'')}
case triple[1]
@@ -122,8 +124,9 @@ module OpenTox
# Read only features from a dataset service.
# @return [Hash] Internal features representation
- def load_features
+ def load_features(subjectid=nil)
uri = File.join(@uri,"features")
+ uri += "?subjectid=#{CGI.escape(subjectid)}" if subjectid
statements = []
features = Set.new
`rapper -i rdfxml -o ntriples #{uri} 2>/dev/null`.each_line do |line|