diff options
author | Martin Gütlein <martin.guetlein@gmail.com> | 2010-03-29 11:44:47 +0200 |
---|---|---|
committer | Martin Gütlein <martin.guetlein@gmail.com> | 2010-03-29 11:44:47 +0200 |
commit | f93e03baaa9833cb3f329c9b342825b7527e1b48 (patch) | |
tree | a7e2e0730bea4479d9dc0e6bd902a4e232ed8daf /lib | |
parent | cd299b6508c0a83463c1f8f00ccaff45b6b8a476 (diff) |
added tum models
Diffstat (limited to 'lib')
-rw-r--r-- | lib/dataset.rb | 1 | ||||
-rw-r--r-- | lib/model.rb | 55 | ||||
-rw-r--r-- | lib/owl.rb | 2 |
3 files changed, 38 insertions, 20 deletions
diff --git a/lib/dataset.rb b/lib/dataset.rb index abc2d6c..70edf1c 100644 --- a/lib/dataset.rb +++ b/lib/dataset.rb @@ -17,7 +17,6 @@ module OpenTox if uri.match(/webservices.in-silico.ch|localhost|ot.dataset.de|opentox.informatik.uni-freiburg.de/) # try to get YAML first d = YAML.load RestClient.get(uri, :accept => 'application/x-yaml').to_s else # get default rdf+xml - LOGGER.error "no yaml uri match: "+uri.to_s owl = OpenTox::Owl.from_uri(uri) d = Dataset.new diff --git a/lib/model.rb b/lib/model.rb index d8d751b..1f5f27d 100644 --- a/lib/model.rb +++ b/lib/model.rb @@ -21,7 +21,8 @@ module OpenTox @independent_variables = owl.independentVariables @predicted_variables = owl.predictedVariables - raise "invalid model:\n"+self.to_yaml+"\n" unless Utils.is_uri?(@uri) && @dependent_variables.to_s.size>0 && @independent_variables.to_s.size>0 && @predicted_variables.to_s.size>0 + raise "invalid model:\n"+self.to_yaml+"\n" unless Utils.is_uri?(@uri) && @dependent_variables.to_s.size>0 && + @independent_variables.to_s.size>0 && @predicted_variables.to_s.size>0 if ENV['RACK_ENV'] =~ /test|debug/ end end @@ -32,9 +33,36 @@ module OpenTox LOGGER.debug "Build model, algorithm_uri:"+algorithm_uri.to_s+", algorithm_parms: "+algorithm_params.inspect.to_s uri = OpenTox::RestClientWrapper.post(algorithm_uri,algorithm_params).to_s - uri = OpenTox::Task.find(uri).wait_for_resource.to_s if Utils.task_uri?(uri) + + if uri.to_s =~ /ambit.*task|tu-muenchen.*task/ + uri = PredictionModel.redirect_task(uri) + elsif Utils.task_uri?(uri) + uri = OpenTox::Task.find(uri).wait_for_resource.to_s + end + raise "invalid build model result: "+uri.to_s unless uri =~ /model/ return PredictionModel.find(uri) end + + def self.redirect_task( uri ) + raise "no redirect task uri: "+uri.to_s unless uri.to_s =~ /ambit.*task|tu-muenchen.*task/ + + while (uri.to_s =~ /ambit.*task|tu-muenchen.*task/) + #HACK handle redirect + LOGGER.debug "REDIRECT TASK: "+uri.to_s + redirect = "" + while (redirect.size == 0) + IO.popen("bin/redirect.sh "+uri.to_s) do |f| + while line = f.gets + redirect += line.chomp + end + end + sleep 0.3 + end + uri = redirect + LOGGER.debug "REDIRECT TO: "+uri.to_s + end + return uri + end def predict_dataset( dataset_uri ) @@ -47,21 +75,10 @@ module OpenTox uri += line end end - - if uri.to_s =~ /ambit.*task/ - #HACK handle redirect - LOGGER.debug "AMBIT TASK "+uri.to_s - redirect = "" - while (redirect.size == 0) - IO.popen("bin/redirect.sh "+uri.to_s) do |f| - while line = f.gets - redirect += line.chomp - end - end - sleep 0.3 - end - LOGGER.debug "REDIRECT to: "+redirect.to_s - raise "invalid redirect result" unless redirect =~ /ambit.*dataset/ + + if uri.to_s =~ /ambit.*task|tu-muenchen.*task/ + uri = PredictionModel.redirect_task(uri) + raise "invalid redirect result: " unless uri =~ /ambit.*dataset/ return uri else uri = OpenTox::Task.find(uri).wait_for_resource.to_s if Utils.task_uri?(uri) @@ -76,8 +93,10 @@ module OpenTox return true elsif @uri =~/ntua/ and @title =~ /mlr/ return false + elsif @uri =~/tu-muenchen/ and @title =~ /regression/ + return false else - raise "unknown model, uri:"+@uri.to_s+" title:"+@title.to_s + raise "unknown model, uri:'"+@uri.to_s+"' title:'"+@title.to_s+"'" end end end @@ -54,7 +54,7 @@ module OpenTox @model.add @uri, DC[name], args.first else # getter #HACK for reading Panteli's models - if @uri.to_s =~ /ntua.*model/ and !["title", "source", "identifier"].include?(name.to_s) + if @uri.to_s =~ /ntua.*model|tu-muenchen.*model/ and !["title", "source", "identifier"].include?(name.to_s) me = @model.subject(RDF['type'],OT['Model']) #puts "going for "+name.to_s return @model.object(me, OT[name.to_s]).uri.to_s |