Snoggle runs on any platform with Java 1.6 installed.
A tutorial is coming soon!
Snoggle is a graphical, SWRL-based ontology mapper to assist in the task of OWL ontology alignment. It allows users to visualize ontologies and then draw mappings from one to another on a graphical canvas. Users draw mappings as they see them in their head, and then Snoggle turns these mappings into SWRL/RDF or SWRL/XML for use in a knowledge base.
Semantic technologies are revolutionizing the way in which we address large datasets, but they surface new, higher-level problems, one of the largest being the issue of ontological alignment.
Different people see the world differently, and these viewpoints inevitably get encoded into data structures. To a window company, a window is a product. To an economist, it is a GDP component. To a homeowner, it is just a window. When these assumptions about the world are expressed formally, some alignment step must take place before we can merge out data for reasoning over all datasets at once.
Ontology mapping is one of the key steps in the larger process of alignment.
A common way to map ontologies is to use a rule language, like SWRL, to write rules that say "something conforming to this point of view is equivalent to this thing in the other point of view". SWRL turns out to be very handy for this, but there is a catch: ontologies are huge, and SWRL is XML. For all of the beauty of XML, it just isn't a manageable way for humans to work. The files are huge, hard to read, and not fun to type by hand...
Snoggle attempts to replace the need to write rules in a text format by providing a canvas on which to draw mappings visually. The Canvas is divided into two regions: from and to. The from region contains a structure in the source ontology, and the to region contains the equivalent structure in the destination ontology. Arrows are drawn between the two to show equivalences, resulting in something like the following:
Snoggle supports the default SWRL builtins, too, and allows easy insertion of your own custom builtin definitions. Builtins can be thought of as functions that perform actions outside the scope of the SWRL rule language. They might add two numbers, transform a datatype, or perform some lookup in an external service.
Consider a mapping between the OWL Time and ISO 19108 ontologies. The former represents a calendar datetime as a complex object consisting of a class with several properties. ISO 19108 represents the same idea with a structured string.
Using Snoggle and SWRL builtins, an equivalence can be drawn between the two graphically, as below.