diff options
Diffstat (limited to 'lib/feature.rb')
-rw-r--r-- | lib/feature.rb | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/lib/feature.rb b/lib/feature.rb index 4ba58ce..55ac678 100644 --- a/lib/feature.rb +++ b/lib/feature.rb @@ -10,7 +10,7 @@ module OpenTox def self.find(uri, subjectid=nil) return nil unless uri feature = Feature.new uri - if (CONFIG[:yaml_hosts].include?(URI.parse(uri).host)) + if (CONFIG[:json_hosts].include?(URI.parse(uri).host)) feature.add_metadata YAML.load(RestClientWrapper.get(uri,{:accept => "application/x-yaml", :subjectid => subjectid})) else feature.add_metadata Parser::Owl::Dataset.new(uri).load_metadata @@ -23,9 +23,9 @@ module OpenTox # @return [String] feature type, unknown if OT.isA property is unknown/ not set def feature_type raise OpenTox::BadRequestError.new("rdf type of feature '"+uri.to_s+"' not set") unless metadata[RDF.type] - if metadata[RDF.type].flatten.include?(OT.NominalFeature) + if metadata[RDF.type].to_a.flatten.include?(OT.NominalFeature) "classification" - elsif metadata[RDF.type].flatten.include?(OT.NumericFeature) + elsif metadata[RDF.type].to_a.flatten.include?(OT.NumericFeature) "regression" elsif metadata[OWL.sameAs] metadata[OWL.sameAs].each do |f| @@ -42,4 +42,15 @@ module OpenTox end end end + + # Get OWL-DL representation in RDF/XML format + # @return [application/rdf+xml] RDF/XML representation + def to_rdfxml + s = Serializer::Owl.new + s.add_feature(@uri,@metadata) + @metadata.values.grep(/model\/\d+$/).each{ |m| s.add_uri(m,OT.Model)} + @metadata.values.grep(/feature/).each{ |f| s.add_uri(f,OT.Feature)} + #s.add_parameters(@uri,@parameters) if @parameters + s.to_rdfxml + end end |