diff options
author | Andreas Maunz <andreas@maunz.de> | 2012-10-10 14:59:21 +0200 |
---|---|---|
committer | Andreas Maunz <andreas@maunz.de> | 2012-10-10 14:59:21 +0200 |
commit | 86dc7c291f06035b2b10df8605417cc14346f22d (patch) | |
tree | 324d207d18fc97c06cdfbde0aa22d05e16a0f439 | |
parent | 96234eff3ea35c528eea524eb39afa8624177fd8 (diff) |
Metadata, params for PC
-rw-r--r-- | application.rb | 15 | ||||
-rw-r--r-- | webapp/dataset.rb | 12 |
2 files changed, 20 insertions, 7 deletions
diff --git a/application.rb b/application.rb index b8243d2..a42bc01 100644 --- a/application.rb +++ b/application.rb @@ -163,17 +163,20 @@ module OpenTox feature[RDF::DC.title] = f features << feature values = table.collect{|row| row[i+1].strip unless row[i+1].nil?}.uniq.compact # skip compound column + low_diff_values=false if values.size <= 3 # max classes feature.append RDF.type, RDF::OT.NominalFeature feature.append RDF.type, RDF::OT.StringFeature feature[RDF::OT.acceptValue] = values + low_diff_values=true + end + types = values.collect{|v| feature_type(v)}.uniq + if types.include? RDF::OT.NominalFeature and !low_diff_values + feature.append RDF.type, RDF::OT.NominalFeature else - types = values.collect{|v| feature_type(v)} - if types.include?(RDF::OT.NominalFeature) - @warnings << "Feature #{f} contains nominal and numeric values." - else - feature.append RDF.type, RDF::OT.NumericFeature - end + types.each { |t| + feature.append RDF.type, t unless t.nil? + } end feature.put ntriples << "<#{feature.uri}> <#{RDF.type}> <#{RDF::OT.Feature}>." diff --git a/webapp/dataset.rb b/webapp/dataset.rb index 82aed3f..7a2af84 100644 --- a/webapp/dataset.rb +++ b/webapp/dataset.rb @@ -99,7 +99,17 @@ module OpenTox single_cmpd_ds = OpenTox::Dataset.new(nil,@subjectid) single_cmpd_ds.parse_rdfxml(ds_string) single_cmpd_ds.get(true) - result_ds.features = single_cmpd_ds.features unless result_ds.features.size>0 # features assumed to be present already + unless result_ds.features.size>0 # features present already? + result_ds.features = single_cmpd_ds.features # AM: features + result_ds.parameters = ["pc_type", "lib", "descriptor"].collect{ |key| # AM: parameters + val = single_cmpd_ds.find_parameter_value(key) + { DC.title => key, OT.paramValue => (val.nil? ? "" : val) } + } + result_ds[RDF.type] = single_cmpd_ds[RDF.type] # AM: metadata + result_ds[DC.title] = single_cmpd_ds[DC.title] + result_ds[DC.creator] = url_for("/dataset/#{dataset}/pc",:full) + result_ds[OT.hasSource] = url_for("/dataset/#{dataset}/pc",:full) + end result_ds << [ cmpd ] + single_cmpd_ds.data_entries[0] } result_ds.put @subjectid |