View on GitHub

CoModIDE

The Comprehensive Modular Ontology IDE -- a Protégé plugin

CoModIDE Tutorial Task 1

Your task is to develop a small and simple sensor/observation ontology, using CoModIDE and three provided patterns from the MODL pattern library.

The user story is as follows:

In the system there are three types of sensors, thermometers, hydrometers, and barometers. Types can be added by the customer without modifying the system ontology. Sensor 17 is a thermometer. At exactly 13:11:14 CEST, Sensor 17 generated a temperature reading of 24.5 degrees centigrade.

The resulting ontology should be able to answer the following competency questions, derived from this simple story:

  1. What type of sensor (thermometer, hydrometer, barometer, etc) is the sensor with IRI example:sensor17? (Explicit Typing pattern)
  2. What type of observation (temperature, pressure, etc) is example:observationXX? (Quantities and Units pattern)
  3. What’s the numerical value of example:observationXX? What is the measurement unit? (Quantities and Units pattern)
  4. At what time was observation example:observationXX made? (Temporal Extent pattern)
  5. Which sensor created example:observationXX? (no pattern)

For this task, we recommend to use the following CoModIDE settings:

Use the CoModIDE pattern library to drag and drop patterns, renaming classes as needed to suit the use case. If you need to reconnect object properties (i.e., change their rdfs:domain or rdfs:range), please drop back into the standard Protégé tabs – this feature is not fully implemented in CoModIDE yet.

An example solution can be downloaded here and visualised here.

If you have time, replace the Temporal Extent ODP with a simple datatype property with an rdfs:range of xsd:dateTime. In order to find all ontology entities that were generated by this pattern, check the generated comodide metadata ontology, and look for the named instance that is an opla:Module and that has a opla:reusesPatternAsTemplate link to the Temporal Extent pattern. Through the Protégé Usage view, you can check which constructs that refer to this Module instance through the opla:isNativeTo property, and remove them. In future versions of CoModIDE, these links will be indicated directly on the canvas, e.g., by dotted lines around the concepts that derrive from the same ODP.