I have a plan for a series of OWL and ontology tutorials along the following lines:
- An introduction to the OWL language; this is the pizza tutorial;
- An advanced OWL language tutorial; this is the family history knowledge base tutorial.
- A tutorial that explores ontological modelling much more than the language and reasoning orientated tutorials that are the pizza and FHKB tutorials.
The trick with these tutorials is to find a modelling example that first covers the features one wishes to address and second uses an example that is accessible to all the potential attendees. This second point is often tricky and one must avoid trivialising a subject area too much, something that happens too easily in a subject like biology where there are few examples that are accessible to all biologists, let alone those outside that domain. Many years ago, when we were first talking about the ontological modelling version of the tutorial, Andrew Gibson, who then worked in our group, suggested the field of travel as a suitable tutorial subject area. It is possible to make a Travel Ontology that covers any modelling situation one would wish to cover in such a tutorial and the topic is something that everyone can appreciate; we all either do or know about undertaking the process of moving from one place to another for a variety of purposes.
With travel as our field of interest, we can cover the major ontological distinctions:
- Processes and the things that participate in them: Holidays, journeys, people, geographical features and so on;
- Physical and abstract things: lumps of land and the countries or administrative regions that occupy them;
- Material and immaterial things: buildings and spaces in between them; vehicles and the plans for journeys made in those vehicles;
- Qualities of things: Long journeys, fast vehicles, and so on;
- Lots of nice things like rivers, what they flow in to etc., boundaries between countries, notional midpoints on rivers etc. that form boundaries, seas and oceans, ports, docks, and so on;
- Roles and/or functions of things involved in travel and so on.
In doing so, all of this and much more will touch on many of OWL 2’s features, from classes to individuals, property hierarchies, property chains, property characteristics, and so on. In such an ontology we can show off the language, modelling and the use of automated reasoning.
By bringing in the kinds of ontological distinction outlined above and the goals of the tutorial, we immediately suggest upper level ontologies. My experience with such things has been to find the decision making about what goes where under an upper level all rather hard. I have little confidence that with the current material we have at hand for this kind of modelling that, given an arbitrary set of classes, independant groups or individuals will come up with the same placement of classes in an ontology. I would like to try and fix this – for at least one upper level ontology so that one doesn’t have to spend years teaching oneself bits of philosophy in order to use an upper level ontology. Of course, effort is inevitably involved, but it should be at the level of engineering (ideally at the level of choosing patterns), rather than consulting a guru.
Over the past several years, I have made a Travel Ontology and put it under an upper level ontology. I have used, up until now, a cut down version of Alan Rector’s Simple Upper Bio, but with the biomedical bits chopped out. So far, I’ve put the following things into the Travel Ontology:
- Land masses; I’ve treated everything as an island. Africa eurasia is one big island surrounded by water. Everything else is an island too. I haven’t started thinking about the other end of the scale – does a rock pointing out of some water count as an island? to a large extent I don’t care.
- I’ve done a brief sketch of continents and oceanic crust. I made this distinction so I could talk about continental and oceanic islands. I’m not convinced that I need to in the context of travel, but that’s often a useful kind of talking point in a tutorial. I’ll also want to be able to describe, for instance, volcanic islands.
- I talk about bodies of water: Oceans; seas, lakes, rivers, and so on. Seas are parts of oceans that are next to land (here, I regard things like the Dead Sea as salt water lakes, not seas, taking the view that the indiscriminate and wayward naming of things by humans need not be dogmaticlaly ahdhered to).
- Countries, and other administrative regions.
- Vehicles used in travel; services that offer travel between places and the instances of services. that is, the Fareham Portsmouth train service and the 8:43 am instance of that service.
- Types of country – monarchies, dictatorships, republics, and so on.
- Boundaries between the above;
- I’ll want to be able to capture longitude and lattitude, so, for instance, I can describe tropical islands, countries and tropical holidays.
- Buildings, settlements, roads, vehicles, people, their roels, and so on.
- Measurements such as hight of mountains, lengths of road, etc. At the moment I’vce done a shameful hack of lots of data properties with numbers at the end and no units.
- The TBox is relatively small, but there are some 2,000 individuals – not many for what is, in effect, a model of the whole world. It is all a bit scruffy, but I invoke the “work in progress” excuse…
I want to be able to describe things like a walking holiday in Italy, in the first two weeks of June, during which I visited several historical monuments and sent a postcard to my Mum of the forum in Rome. I want to describe a holiday on a narrow boat on a series of canals in England during the summer, passing through Birmingham and ending up on the regent’s canal in London. I haven’t done time points and durations yet (time is always such a pain), but it will be a vital part of the Travel Ontology.
I haven’t done much with the Travel Ontology for a while, but I want to start again and finish something off to the level to which I can do a tutorial about this kind of modelling. Alan Rector’s upper level ontology is no longer maintained as it has sort of been overtaken by Stefan SCHULZ’s BioTop. So, I really want a replacement and I’ve gone with the Semantic Science Integration Ontology (SSIO). The main reasons for this choice are: I like the words used (avoidance of words like “continuant” and “occurrant”); it is young and there is discussion on its formation; I know the people and know that sensible discussion is possible (there is an open world assumption involved in my making these statements). I also like the attribution policy put in place for SSIO.
In moving over to the SSIO, I want to do an experiment. As I place the major classes underneath the SSIO, I want to discuss the choice of where it goes on the SSIO mailing list. From the discussion and the questions I’ve had to ask myself, I want to create a guide to using the SSIO; eventually I’d like to be able to use this in an ontology tutorial and refine it to the level where one can reasonably reliably get consistent placement of classes and choice of relationships. I want attendees of such a tutorial to do exercises in which protocols are followed to “guide” placement of classes and choices of relationship. This guideance will involve “how to think about an entity” – what questions to ask myself about an entity such that I make reasoanbly sensible decisions – and be able to record those decisions.
The work wil go something like this:
- Make a list of the main classes in the Travel Ontology;
- Take each in turn and discuss where it is placed in the SSIO;
- Record discussions and distill the questions I’ve had to ask to make a choice and render them in a form usable by others;
- Migrate the relationships to SSIO form;
- Fiddle around to put in place some of SSIO’s design patterns and perhaps create others.
- Visit various modelling choices of things in the Travel Ontology.
This will be hard work, but can be done piecemeal and may not have to involve only me! The result I want is an ontology placed under an ontology that is used by more than one group; a set of documentation on how it is done; a set of nice modelling examples to use in another ontology tutorial.