SUMO DL
I’ve been working on an OWL DL translation of the knowledge interface format (KIF) Suggested Upper Merged Ontology (SUMO). SUMO already has an OWL version and the SIGMA software will do an automatic translation into OWL. The problem with these is that they are OWL Full, making reasoning over the ontology very slow at best. So I have been manually translating SUMO to OWL DL as a learning exercise to better understand both SUMO and OWL DL.
I tried to stick to a few principles during the translation, in priority order:
- Use OWL DL
- Have a faithful copy of the class hierarchy
- Convert restrictions stated in the KIF where possible
- Don't add stuff
Any KIF assertion that translates directly to OWL has been converted, this includes: disjoint classes and unions of classes, cardinality restrictions, owl:hasValue restrictions and enumerated classes using owl:oneOf restrictions.
Problems
The major problem with the conversion to OWL DL is how to handle the relationships. The first problem is that they occur as both instances and relations in SUMO, this is multi-typing is not allowed in OWL DL. Furthermore, SUMO has many non-binary relations and functions; only binary relations are allowed in OWL. The existing OWL version of SUMO adds some exta relations to cope with this. However these make the ontology OWL Full (check are these annotation properties?). We could simply remove all functions and non-binary relations from the ontology leaving the instances only and remove all the instance versions of the binary relations leaving the relations. This would leave an OWL DL ontology but it is not very satisfactory as it would leave very few relations.
The approach taken to solve this problem is a standard reification technique using a holding instance and n binary relations represent the original n-ary relation. We create a class for each relation to group these holding instances - the natural place for these in as subclasses of the class sumo:Relation. To build the n-ary relations the binary relations ****** , ***1, ***2, ...5 have been added. Restrictions can then be made on those binary relations in the holding class to better define the relation. We have left the binary relations as normal relations in OWL, but also created a subclass as for the n-ary relations so they could be used in either way. We have treated functions as relations, this means the values can be asserted manually or rules can be added to automatically add the functionality.
This is only one solution and it has it's problems. It's difficult to know what relations are an option for a particular class or instance - this can be overcome by creating individual sub relations for each n-ary relation with the appropriate range and domain restrictions. I have done this for a sub section of SUMO while working on a different project but is a lot of work to create. A full SUMO version in this style may appear in the future.
This changes the definition and use of this class but the original definition is not in keeping with the usual OWL split between classes and relations.Issues
Datatypes - numbers, strings First order constructions like units SUMO practices - content vs physical
SUMO DL
I’ve got this content
Blockquote
<tag:RestrictedTagging> tag:taggedResource rdf:resource=“http://apassant.net/drupal/drupal-5.5/?q=node/6″/ <sioc:has_creator rdf:resource=“http://apassant.net/drupal/drupal-5.5/?q=sioc/user/1%23_user”/> <tag:associatedTag rdf:resource=“http://tags.moat-project.org/tag/sparql”/> <moat:tagMeaning rdf:resource=“http://dbpedia.org/resource/SPARQL”/> </tag:RestrictedTagging>
- Bullet
Break
- Bullet 1
- Bullet 2
Test.
PREFIX foaf: <http://stuarthendren.net/foaf.rdf#>
SELECT ?subject ?predicate ?object
WHERE
{
?subject ?predicate ?object .
}
Thing …