summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Maunz <andreas@maunz.de>2012-10-10 14:59:21 +0200
committerAndreas Maunz <andreas@maunz.de>2012-10-10 14:59:21 +0200
commit86dc7c291f06035b2b10df8605417cc14346f22d (patch)
tree324d207d18fc97c06cdfbde0aa22d05e16a0f439
parent96234eff3ea35c528eea524eb39afa8624177fd8 (diff)
Metadata, params for PC
-rw-r--r--application.rb15
-rw-r--r--webapp/dataset.rb12
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