summaryrefslogtreecommitdiff
path: root/lib/feature.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/feature.rb')
-rw-r--r--lib/feature.rb17
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