diff options
Diffstat (limited to 'lib/parser.rb')
-rw-r--r-- | lib/parser.rb | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/lib/parser.rb b/lib/parser.rb index f33017d..db746c1 100644 --- a/lib/parser.rb +++ b/lib/parser.rb @@ -55,7 +55,14 @@ module OpenTox parameter_ids = [] `rapper -i rdfxml -o ntriples #{file.path} 2>/dev/null`.each_line do |line| triple = line.to_triple - @metadata[triple[1]] = triple[2].split('^^').first if triple[0] == @uri and triple[1] != RDF['type'] + if triple[0] == @uri + if triple[1] == RDF.type # allow multiple types + @metadata[triple[1]] = [] unless @metadata[triple[1]] + @metadata[triple[1]] << triple[2].split('^^').first + else + @metadata[triple[1]] = triple[2].split('^^').first + end + end statements << triple parameter_ids << triple[2] if triple[1] == OT.parameters end @@ -223,7 +230,7 @@ module OpenTox `rapper -i rdfxml -o ntriples #{file.path} 2>/dev/null`.each_line do |line| triple = line.chomp.split('> ').collect{|i| i.sub(/\s+.$/,'').gsub(/[<>"]/,'')}[0..2] statements << triple - features << triple[0] if triple[1] == RDF['type'] and (triple[2] == OT.Feature || triple[2] == OT.NumericFeature) + features << triple[0] if triple[1] == RDF.type and (triple[2] =~ /Feature|Substructure/) end File.delete(to_delete) if to_delete statements.each do |triple| @@ -289,7 +296,7 @@ module OpenTox else type = types.first end - @dataset.add_feature_metadata(feature,{OT.isA => type}) + @dataset.add_feature_metadata(feature,{RDF.type => [type]}) info += "\"#{@dataset.feature_name(feature)}\" detected as #{type.split('#').last}." # TODO: rewrite feature values |