320 likes | 332 Views
This report discusses the execution and results of import experiments in WebODE during the Interoperability Working Days in October 2005. It includes comments and benchmarks on how WebODE imports RDF(S) files, highlighting areas where it doesn't pass certain tests.
E N D
Interoperability Working Days October 10th-11th, 2005 Import experiments in WebODE Raúl García-Castro <rgarcia@fi.upm.es> October 10th, 2005
Index • Execution of the benchmark suite • Comments on how WebODE imports • Comments on the experimentation
Execution of the benchmark suite The version of WebODE used was: WebODE 2.0 Build 101. No modifications were needed in the tool for performing the experimentation. We decided to automate the execution of the benchmark suite and developed a Java program for running every benchmark in the benchmark suite in order to: • Diminish the experimentation effort, as the benchmark suite had to be run several times to check improvements after modifications. • Facilitate the use of the benchmark suite to all the WebODE developers.
Process followed in the experimentation • To define the expected WebODE ontologies that should be obtained when importing the RDF(S) files. The expected ontologies were not defined in WebODE, but in natural language. • To run the Java program. It performs the following actions for each benchmark: • To import into WebODE the RDF(S) file with the ontology. • To dump into a text file the imported WebODE ontology. • To compare the imported WebODE ontologies with the expected WebODE ontologies. This comparison was performed manually.
Index • Execution of the benchmark suite • Comments on how WebODE imports • Comments on the experimentation
Benchmarks that WebODE doesn’t pass Property with multiple domains and without range Benchmarks: I27 Example: ... <rdf:Property rdf:about="http://nothing.org/graph27#property1"> <domain rdf:resource="http://nothing.org/graph27#class1"/> <domain rdf:resource="http://nothing.org/graph27#class2"/> </rdf:Property> ... When WebODE imports an ontology containing a property with multiple domains and without range, it performs the export correctly, but inserts an additional anonymous concept subclass of the domain concepts. This anonymous concept must not be created.
Benchmarks that WebODE doesn’t pass Properties with domain rdfs:Class or rdfs:Resource and range rdfs:Literal Benchmarks: I36, I37, I46 Example: ... <rdf:Property rdf:about="http://nothing.org/graph46#property1"> <domain rdf:resource="&rdfs;Class"/> <range rdf:resource="&rdfs;Literal"/> </rdf:Property> ... When WebODE imports an ontology containing a property with domain rdfs:Class or rdfs:Resource and range rdfs:Literal, it does not create the instance attribute for the property in the imported term, losing the knowledge about this property.
Comments on WebODE’s RDF(S) import Import of metaclasses Benchmarks: I03-I07 Example: ... <g1:class2 rdf:about="http://nothing.org/graph03#class1"> <rdf:type rdf:resource="&rdfs:Class"/> </g1:class2> <rdfs:Class rdf:about="http://nothing.org/graph03#class2"> </rdfs:Class> ... WebODE does not support metaclasses. Therefore, when WebODE imports an ontology containing classes that are instances of other classes it imports all the classes, but does not import the fact that certain classes are instance of others.
Comments on WebODE’s RDF(S) import Cycles in class taxonomies Benchmarks: I11, I12 Example: ... <Class rdf:about="http://nothing.org/graph11#class1"> <rdfs:subClassOf rdf:resource="http://nothing.org/graph11#class2"/> </Class> <Class rdf:about="http://nothing.org/graph11#class2"> <rdfs:subClassOf rdf:resource="http://nothing.org/graph11#class1"/> </Class> ... WebODE does not support cycles in concept taxonomies. Therefore, when WebODE imports an ontology containing a cycle in its class taxonomy it does not import all the rdfs:subClassOf properties, in order to create a taxonomy without cycles.
Comments on WebODE’s RDF(S) import Classes with properties Benchmarks: I13-I18, I65, I66, I69-I72 Example: ... <rdfs:Class rdf:about="http://nothing.org/graph13#class1"> <g1:propertyX rdf:resource="http://nothing.org/graph13#class2"/> </rdfs:Class> <rdfs:Class rdf:about="http://nothing.org/graph13#class2"> </rdfs:Class> ... WebODE does not support metaclasses. Therefore, when importing a class with a property, as it cannot create an instance attribute in the concept's metaclass, it does not import it, losing the knowledge about the property.
Comments on WebODE’s RDF(S) import Properties without domain or range Benchmarks: I19-I37 Example: ... <rdf:Property rdf:about="http://nothing.org/graph19#property1"> </rdf:Property> ... • In WebODE, properties must be related to concepts either as instance attributes or as relations. Properties without range are imported as relations with a destination of rdfs:Resource. Properties without domain are imported as: • Instance attributes of rdfs:Resource if the range is rdfs:Literal. • Relations with a origin of rdfs:Resource if the range is undefined or other than rdfs:Literal. • In all these cases, \emph{rdfs:Resource} is created as an imported term.
Comments on WebODE’s RDF(S) import Property hierarchies Benchmarks: I21-I25 Example: ... <rdf:Property rdf:about="http://nothing.org/graph21#property1"> <rdfs:subPropertyOf rdf:resource="http://nothing.org/graph21#property2"/> </rdf:Property> <rdf:Property rdf:about="http://nothing.org/graph21#property2"> </rdf:Property> ... WebODE does not support hierarchies in relations. Therefore, when it imports a property hierarchy, it does not import the rdfs:subPropertyOf properties.
Comments on WebODE’s RDF(S) import Properties with multiple domains Benchmarks: I27, I40, I41, I44 Example: ... <rdf:Property rdf:about="http://nothing.org/graph27#property1"> <rdfs:domain rdf:resource="http://nothing.org/graph27#class1"/> <rdfs:domain rdf:resource="http://nothing.org/graph27#class2"/> </rdf:Property> ... • In WebODE, attributes and relations can be attached to just one concept. Therefore, when it imports a property with multiple domains, it: • Creates an anonymous concept and makes all the domain concepts subclass • of this concept. • Imports the property as: • - an instance attribute of the anonymous concept if the range is rdfs:Literal. • - a relation with the anonymous concept as origin if the range is undefined • or other than rdfs:Literal.
Comments on WebODE’s RDF(S) import Properties with multiple ranges Benchmarks: I32, I39, I41 Example: ... <rdf:Property rdf:about="http://nothing.org/graph32#property1"> <rdfs:range rdf:resource="http://nothing.org/graph32#class1"/> <rdfs:range rdf:resource="http://nothing.org/graph32#class2"/> </rdf:Property> ... • In WebODE, relations can have as destination just one concept. Therefore, when it imports a property with multiple ranges, it: • Creates an anonymous concept and makes all the range concepts subclass • of this concept. • Imports the property as a relation with the anonymous concept as destination.
Comments on WebODE’s RDF(S) import Import of rdfs:Class Benchmarks: I34-35, I45 Example: ... <rdf:Property rdf:about="http://nothing.org/graph45#property1"> <rdfs:domain rdf:resource="&rdfs;Class"/> <rdfs:range rdf:resource="&rdfs;Class"/> </rdf:Property> ... WebODE imports rdfs:Class as an imported term.
Comments on WebODE’s RDF(S) import Properties with a range of rdfs:Literal Benchmarks: I36, I37, I43, I44, I46, I65, I66, I69-I72 Example: ... <rdf:Property rdf:about="http://nothing.org/graph43#property1"> <rdfs:domain rdf:resource="http://nothing.org/graph43#class1"/> <rdfs:range rdf:resource="&rdfs;Literal"/> </rdf:Property> ... WebODE imports rdfs:Literal in the range of a property to its own datatype String.
Comments on WebODE’s RDF(S) import Import of instances Benchmarks: I47-I58, I65-I66, I69-I72 Example: ... <g1:class1 rdf:about="http://nothing.org/graph47#instance1"> </g1:class1> ... When WebODE imports an ontology with instances, it creates an instance set for storing all the imported instances.
Comments on WebODE’s RDF(S) import Instances with multiple type definitions Benchmarks: I48 Example: ... <rdfs:Class rdf:about="http://nothing.org/graph48#class1"> </rdfs:Class> <rdfs:Class rdf:about="http://nothing.org/graph48#class2"> </rdfs:Class> <g1:class1 rdf:about="http://nothing.org/graph48#instance1"> <rdf:type rdf:resource="http://nothing.org/graph48#class2"/> </g1:class1> ... In WebODE, instances are instance of just one concept. Therefore, when WebODE finds an instance of two classes it ignores the second type definition, losing the knowledge about the multiple type definition.
Comments on WebODE’s RDF(S) import Instances with undefined properties Benchmarks: I50-I58 Example: ... <rdfs:Class rdf:about="http://nothing.org/graph50#class1"> </rdfs:Class> <class1 rdf:about="http://nothing.org/graph50#instance1"> <property1 rdf:resource="http://nothing.org/graph50#instance2"/> </class1> <class1 rdf:about="http://nothing.org/graph50#instance2"> </class1> ... When WebODE finds a property in an instance (an instance-property-object triple), and this property is not defined, it does not consider the property to belong to the domain class and it does not import the property. If the property is defined in the ontology (benchmarks I50_bis-I58_bis), WebODE imports correctly properties in instances.
Comments on WebODE’s RDF(S) import Import of blank nodes Benchmarks: I71, I72 ... <rdfs:Class rdf:about="http://nothing.org/graph71#class1"> </rdfs:Class> <rdfs:Class rdf:about="http://nothing.org/graph71#class2"> </rdfs:Class> <rdf:Property rdf:about="http://nothing.org/graph71#property1"> <rdfs:domain rdf:resource="http://nothing.org/graph71#class1"/> <rdfs:range rdf:resource="http://nothing.org/graph71#class2"/> </rdf:Property> <rdf:Property rdf:about="http://nothing.org/graph71#property2"> <rdfs:domain rdf:resource="http://nothing.org/graph71#class2"/> <rdfs:range rdf:resource="&rdfs;Literal"/> </rdf:Property> <g1:class1 rdf:about="http://nothing.org/graph71#instance1"> <g1:property1 rdf:nodeID="node1"/> </g1:class1> <g1:class2 rdf:nodeID="node1"> <g1:property2>Literal 1</g1:property2> </g1:class2> ... Example: When WebODE imports an ontology containing blank nodes, it imports the blank node as an anonym instance of the corresponding class and assigns to this instance the properties of the blank node.
Index • Execution of the benchmark suite • Comments on how WebODE imports • Comments on the experimentation
Comments on improvements on the tools • When WebODE imports an ontology containing a property with multiple domains and without range (benchmark I27), it must not insert an additional anonymous concept subclass of the domain concepts. • When WebODE imports an ontology containing a property with domain rdfs:Class or rdfs:Resource and range rdfs:Literal (benchmarks I36, I37, I46), WebODE does not create the instance attribute for the property in the imported term. • When WebODE finds a property in an instance (an instance-property-object triple), and this property is not defined (benchmarks I50-I58), it does not consider the property to belong to the domain class and it does not import the property. Nevertheless, it could import the property although not assigning any domain or range.
Comments on modifications performed on the tool Some errors in WebODE were fixed: • WebODE imported classes with properties as instance attributes of the classes (benchmarks I13-I18, I65, I66, I69-I72), which is incorrect as WebODE cannot create an instance attribute in the concept's metaclass. Now it does not import them, losing the knowledge about the property. • WebODE crashed when finding properties in instances with multiple values (benchmark I58), now it imports them correctly.
Comments on the benchmark suites To check the correct import of the RDF/XML syntax benchmarks, some RDF(S) files had to be modified: • As WebODE does not import classes with properties, we had to change the RDF(S) files of some benchmarks in order to check the import of some ontologies that deal with the RDF/XML syntax (Benchmarks I65, I66, I69-I72).
Comments on the benchmark suites Insert another benchmark to evaluate the import of literals with language attributes: • Import a graph containing literals with xml:lang attributes: <rdf:Description rdf:about="#class1"> <rdf:type rdf:resource="&rdfs;Class" /> <rdfs:label xml:lang="en">class1</rdfs:label> <rdfs:label xml:lang="es">clase1</rdfs:label> </rdf:Description>
Interoperability Working Days October 10th-11th, 2005 Import experiments in WebODE Raúl García-Castro <rgarcia@fi.upm.es> October 10th, 2005