summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authormguetlein <martin.guetlein@gmail.com>2010-06-22 16:16:54 +0200
committermguetlein <martin.guetlein@gmail.com>2010-06-22 16:16:54 +0200
commit6c663f3bb95b45d5cb7e356ff6d1913a3e03212c (patch)
treef62a4856fab623ea1a9bad0222f7c60c503d0821 /lib
parent2ee258935818fa3dcc9b863216f383969807c191 (diff)
add types to validaiton rdfs
Diffstat (limited to 'lib')
-rw-r--r--lib/rdf_provider.rb32
1 files changed, 26 insertions, 6 deletions
diff --git a/lib/rdf_provider.rb b/lib/rdf_provider.rb
index 5894cb1..7fa3ecc 100644
--- a/lib/rdf_provider.rb
+++ b/lib/rdf_provider.rb
@@ -61,6 +61,10 @@ module Lib
def object_property_name( prop )
return self.class::OBJECT_PROPERTIES[ prop ]
end
+
+ def object_type( prop )
+ return self.class::OBJECTS[ prop ]
+ end
def class?(prop)
self.class::CLASSES.has_key?( prop )
@@ -140,9 +144,15 @@ module Lib
break if @model.subject(@rdf_provider.object_property_name(property), res).nil?
count += 1
end
- @model.add res, RDF['type'], @rdf_provider.class_name(property)
- @model.add res, DC['title'], @rdf_provider.class_name(property)
- @model.add node, @rdf_provider.object_property_name(property), res
+ clazz = Redland::Resource.new(@rdf_provider.class_name(property))
+ @model.add res, RDF['type'], clazz
+ @model.add res, DC['title'], clazz
+ @model.add clazz, RDF['type'], OWL['Class']
+ @model.add DC['title'], RDF['type'],OWL['AnnotationProperty']
+
+ objectProp = Redland::Resource.new(@rdf_provider.object_property_name(property))
+ @model.add objectProp, RDF['type'], OWL['ObjectProperty']
+ @model.add node, objectProp, res
return res
end
@@ -154,14 +164,24 @@ module Lib
@model.delete node, @rdf_provider.literal_name(property), l
rescue
end
- @model.add node, @rdf_provider.literal_name(property), Redland::Literal.create(value)
+ literalProp = Redland::Resource.new(@rdf_provider.literal_name(property))
+ @model.add literalProp, RDF['type'],OWL['AnnotationProperty']
+ @model.add node, literalProp, Redland::Literal.create(value)
end
def add_object_property(property, value, node )
raise "empty object property value "+property.to_s if value==nil || value.to_s.size==0
raise "no object property name "+propety.to_s unless @rdf_provider.object_property_name(property)
- @model.add node, @rdf_provider.object_property_name(property), Redland::Uri.new(value) # untyped individual comes from this line, why??
- #@model.add Redland::Uri.new(value), RDF['type'], type
+ raise "no object type "+property.to_s unless @rdf_provider.object_type(property)
+
+ objectProp = Redland::Resource.new(@rdf_provider.object_property_name(property))
+ @model.add objectProp, RDF['type'], OWL['ObjectProperty']
+
+ val = Redland::Resource.new(value)
+ type = Redland::Resource.new(@rdf_provider.object_type(property))
+ @model.add node, objectProp, val
+ @model.add val, RDF['type'], type
+ @model.add type, RDF['type'], OWL['Class']
end
end