/usr/lib/ruby/2.2.0/rdf/redland/convert_owl.rb is in librdf-ruby 1.0.17.1+dfsg-1.2ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | require 'rubyrdf'
require 'constants'
class Rdf2Owl
attr_accessor :model
def initialize(model)
@model = model
end
def convert_classes()
todelete = []
@model.find(nil,TYPE,RDFS_CLASS) {|s,p,o|
#log("found class #{s}:#{p}:#{o}")
@model.add(s,p,OWL_CLASS)
todelete << Statement.new(s,p,o)
log("Converted rdfs:Class #{s} into owl:Class")
}
todelete.each{|st| @model.delete_statement(st)}
end
def convert_properties()
todelete = []
@model.find(nil,TYPE,PROPERTY) {|s,p,o|
type = property_type(s)
log("type is #{type}")
@model.add(s,TYPE,type)
todelete << Statement.new(s,p,o)
log("Converted rdf:Property #{s} into #{type}")
}
todelete.each{|st| @model.delete_statement(st)}
end
def property_type(prop)
owl_object = false
@model.find(prop,RDFS_RANGE,nil){|s,p,o|
if o.resource?
return OWL_OBJECT_PROPERTY
end
}
return OWL_DATATYPE_PROPERTY
end
def convert_RDFResource()
todelete = []
@model.find(nil,nil,RDFS_RESOURCE){|s,p,o|
@model.add(s,p,OWL_THING)
todelete << Statement.new(s,p,o)
log("Replaced triple #{s}:#{p}:#{o} with (x,x owl:Thing)")
}
todelete.each{|st| @model.delete_statement(st)}
end
def convert()
self.convert_RDFResource()
self.convert_properties()
self.convert_classes()
end
def log(message)
puts "[RDF2OWL]" + message
end
end
if $0 == __FILE__
model = Model.new()
parser = Parser.new()
uri = Uri.new("http://www.faa.gov")
#parser.parse_into_model(model,"file:/home/dsisnero/programming/rdf-files/ani_people.rdf","http://example.com/foo.rdf")
parser.parse_into_model(model,"file:/home/dsisnero/programming/rdf-schemas/foaf.rdfs")
convert = Rdf2Owl.new(model)
convert.convert
serializer = Serializer.new()
serializer.to_file('/home/dsisnero/programming/rdf-schemas/foaf.owl',convert.model)
end
|