From fc0397cd0d51df4fe7c23f601c2f211c2ebfbf77 Mon Sep 17 00:00:00 2001 From: Christoph Helma Date: Thu, 26 Jul 2012 16:23:44 +0200 Subject: parameter settting for algorithms and models --- lib/model.rb | 5 +++-- lib/opentox-client.rb | 24 ++++++++++++++---------- lib/opentox.rb | 30 +++++++++++++++++++++++++++++- 3 files changed, 46 insertions(+), 13 deletions(-) (limited to 'lib') 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 -- cgit v1.2.3