summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorChristoph Helma <helma@in-silico.ch>2012-07-26 16:23:44 +0200
committerChristoph Helma <helma@in-silico.ch>2012-07-26 16:23:44 +0200
commitfc0397cd0d51df4fe7c23f601c2f211c2ebfbf77 (patch)
tree6a1b4b9b90def519c608b6ce33cd3bba08796666 /lib
parent65c67111098ba37171ac12f6215c20c2a321d1de (diff)
parameter settting for algorithms and models
Diffstat (limited to 'lib')
-rw-r--r--lib/model.rb5
-rw-r--r--lib/opentox-client.rb24
-rw-r--r--lib/opentox.rb30
3 files changed, 46 insertions, 13 deletions
diff --git a/lib/model.rb b/lib/model.rb
index 95aa9ff..c104e64 100644
--- a/lib/model.rb
+++ b/lib/model.rb
@@ -6,8 +6,9 @@ module OpenTox
# @param [Hash] params Parameters for OpenTox model
# @param [optional,OpenTox::Task] waiting_task (can be a OpenTox::Subtask as well), progress is updated accordingly
# @return [text/uri-list] Task or resource URI
- def run params=nil
- post params, {:accept => 'text/uri-list'}
+ def run params=nil, wait=true
+ uri = RestClientWrapper.post @uri, params, { :content_type => "text/uri-list", :subjectid => @subjectid}
+ wait_for_task uri if wait
end
end
diff --git a/lib/opentox-client.rb b/lib/opentox-client.rb
index ad7d3cc..276d378 100644
--- a/lib/opentox-client.rb
+++ b/lib/opentox-client.rb
@@ -24,13 +24,17 @@ RDF_FORMATS = [:rdfxml,:ntriples,:turtle]
TRUE_REGEXP = /^(true|active|1|1.0|tox|activating|carcinogen|mutagenic)$/i
FALSE_REGEXP = /^(false|inactive|0|0.0|low tox|deactivating|non-carcinogen|non-mutagenic)$/i
-require File.join(File.dirname(__FILE__),"overwrite.rb")
-require File.join(File.dirname(__FILE__),"error.rb")
-require File.join(File.dirname(__FILE__),"rest-client-wrapper.rb")
-require File.join(File.dirname(__FILE__),"authorization.rb")
-require File.join(File.dirname(__FILE__),"policy.rb")
-require File.join(File.dirname(__FILE__),"otlogger.rb") # avoid require conflicts with logger
-require File.join(File.dirname(__FILE__),"opentox.rb")
-require File.join(File.dirname(__FILE__),"task.rb")
-require File.join(File.dirname(__FILE__),"compound.rb")
-require File.join(File.dirname(__FILE__),"dataset.rb")
+[
+ "overwrite.rb",
+ "error.rb",
+ "rest-client-wrapper.rb",
+ "authorization.rb",
+ "policy.rb",
+ "otlogger.rb",
+ "opentox.rb",
+ "task.rb",
+ "compound.rb",
+ "dataset.rb",
+ "model.rb",
+].each{ |f| require File.join(File.dirname(__FILE__),f) }
+
diff --git a/lib/opentox.rb b/lib/opentox.rb
index d3b73fb..2c4578f 100644
--- a/lib/opentox.rb
+++ b/lib/opentox.rb
@@ -50,6 +50,30 @@ module OpenTox
append predicate.to_s, values
end
+ def parameters
+ params = {}
+ query = RDF::Query.new({
+ :parameter => {
+ RDF.type => RDF::OT.Parameter,
+ :property => :value,
+ }
+ })
+ query.execute(@rdf).each do |solution|
+ params[solution.parameter] = {} unless params[solution.parameter]
+ params[solution.parameter][solution.property.to_s] = solution.value.to_s
+ end
+ params.values
+ end
+
+ def parameters=(parameters)
+ parameters.each do |param|
+ p_node = RDF::Node.new
+ @rdf << [RDF::URI.new(@uri), RDF::OT.parameters, p_node]
+ @rdf << [p_node, RDF.type, RDF::OT.Parameter]
+ param.each{ |p,o| @rdf << [p_node, p, o] }
+ end
+ end
+
# Append object metadata
# @param [String] Predicate URI
# @param [Array, String] Predicate value(s)
@@ -131,7 +155,11 @@ module OpenTox
end
end
- {:title => RDF::DC.title, :dexcription => RDF::DC.description}.each do |method,predicate|
+ {
+ :title => RDF::DC.title,
+ :dexcription => RDF::DC.description,
+ :type => RDF.type
+ }.each do |method,predicate|
send :define_method, method do
self.[](predicate)
end