Time Ontologies

The first topic area I want to look at is Time. Time is a rich area of thought and greatly complicates most existing human languages.  We daily discuss notions about future and past, continuous and instant time references, schedules, events, Now versus Then and a host of temporal relations, and we never give it a second thought. Great minds have been studying the problem of Time as long as language has had tenses.  As a matter of fact, some of the recent work in the logic of Time has been in the area of Tense, some of which is summed up in this article:

  • Prior, A. N. (1971). Recent Advances in Tense Logic.  In E. Freeman and W. Sellars (Ed.), Basic Issues in the Philosophy of Time, The Open Court Publishing Co., La Salle, Illinois.

Many systems have been proposed over time for dealing with Time.  Pat Hayes published a good summary of the various theories that were in use in 1995 in his A Catalog of Temporal Theories.  Among other things, this catalog includes his breakdown of major types of Time covered by the current theories.  Some of the common notions that are really important include:

  • Calendar Instants (Absolute Timestamps) and Intervals - These concepts represent a known point in time relative to an absolute time frame, such as the Gregorian Calendar (“June 23, 1883 at 3:05 pm in the afternoon”).  The issue of whether a time like this is an instant or a duration depends on the practical usage of the term, for knowledge workers, if not philosophers. There are large and rich systems of relations between intervals and times (before, after, during, ending at the same time).
  • Recurrent Instants and Intervals – Whether in absolute time or not, there are applications that need to record recurring times for rules (“closed on Sundays”), schedules (“Conferences held yearly”, “Meeting recurs every Tuesday at 8:30 am”) and so on. A related notion is the use of relative times in scripts (“Bring to a boil for 5 minutes, then turn to minimum and simmer for 10 minutes before serving.”).
  • Durations - A duration is a length of time (with or without a related absolute start and end time), such as “The half-life of Thorium”.
  • Units of Time – Aside from time frames like Gregorian time, the units used to measure time are also an area of concepts, like “Second” and the conversions between units.

These are common and basic, but like all foundational concepts, they build into larger concepts, like Events, Schedules, Scripts and Change Management Processes, all of which are crucial in knowledge base construction (or DB Schemas).  Likewise, dozens of critical relations exist between the basic concepts, like before, after, occurs during and so on.

So, naturally, most of the Upper Ontologies discussed earlier devote a portion of their content to ideas of Time and its relations. SUMO, for instance, has dozens of time concepts high in its class heirarcy.  There are also widespread domain-specific ontologies that deal with time, notably the OWL-Time ontology.

In most information systems, the Calendar Time concepts are the most important. They represent times elements in logs, financial transactions, historical events, meeting dates and many other domain concepts. Most ontologies that represent times support both atomic timestamps and “exploded” time formats.  Atomic formats are compact, such as the XML date-time type, which represents a time and can be compared to another date-time.  “Exploded” formats break the various elements (year, month, day, hour…) into attributes of the Timestamp concept, which allows partial representations (“Thursday” of any week), unit conversions (the number of seconds between two dates in 1993) and other more complicated operations. Both of these can be interchanged when convenient in an application.

In the next few entries, I will look at some of these concepts.

Upper Ontologies

Ontologies are groups of concepts, relations and rules that define what we know. This can include definitions of types, or the known instances themselves. There are two main groups:

  • Domain-Specific Ontologies (DSO) – Domain-specific ontologies define groups of concepts about a particular area of interest. These are defined by subject matter experts who use the definitions.
  • Upper Ontologies (UO) – Upper ontologies try to define the universe of concepts at a very abstract level. Instead of describing concrete types, they concentrate on notions like Binary Relations and Temporal Entities. They are not directly useful for defining concrete concepts. Instead they are used to relate more concrete concepts by giving designers a set of high-level classifications for objects. The intent is that if they are used for a large number of DSO’s, they will enable rich inference across domains, allow data interchange and save everyone the effort of figuring out the basic concepts to use. UO’s are generally defined by philosophers and can have a heavy learning curve.

A list of some of the available UO’s is:

Ontology Language Created License Concepts Comments
SUMO SUO-KIF 2001 Open Source 1000 Endorsed by IEEE
SUMO/MILO SUO-KIF 2001 Open Source 20000 This is SUMO with a second expanded layer of concrete concepts.
Upper CYC CycL 1984 Commercial 6000 In addition to the core, the full commercial system has hundreds of thousands of concepts. It is probably one of the most extensive in the world.
Open CYC OWL 2002 Open Source 6000 The upper ontology should be the same as CYC, however it contains mainly just the concepts, not the rules that go with them. There is a lot of content that is not the upper ontology.
DOLCE KIF 2003 Open Source 100 The upper ontology is small, but like CYC, is only one of the components of the full ontology.
GFO FOL/KIF 1999 Open Source 79 Used in some medical projects.
PROTON OWL 2006 Open Source 300 Research ontology
UMBEL OWL 2009 open Source 20,093 Uses some components of OpenCYC as a basis.
SKOS OWL 2005 Open Source 32 W3C ontology
COSMO OWL 2006 Open Source 5200 See FTP site for an overview (COSMOoverview.doc)

For further information on these ontologies, you can look at the web sites. Also, here are a few of the references I have used:

My recommendation? Choose one, it will save you time and extend the usefulness of your design. However, be prepared to commit some time to learn how the concepts work. If you are doing serious work with ontology in general, it helps to have a design strategy and a UO will give you that.

CYC is notable, not only because it is HUGE, but because it is comprehensive and has an excellent system of Micro-Theories which allow a federated approach to dealing with ambiguous and mismatched knowledge domains (fungus in medicine versus fungus in botany, for instance). However, it is bound to the proprietary CYC engine which makes interchange difficult.

One of the seriously important thing about CYC is that it has an excellent tutorial system. These documents cover a number of topics, including their use of events and time concepts. Anyone starting on ontology work should go through these materials.

I had to choose one a few years ago, so my choice was SUMO. I support it because it had been available for a while and is fairly comprehensive, but more because I am familliar with it at this point. I don’t think it is necessarily the best, but it is more than enough for the work that I do. I will expand on it in some of the discussions ahead.

Back to Ontology

The three things that are needed for serious Semantic Web applications are a standard set of languages, engines that know how to deal with these languages and knowledge bases in these languages.  This blog is supposed to be about Ontology, that is, Knowledge Representation (KR).  So far, I have had to spend a lot of time on tools and languages. With the testing of engines so far, there is enough of a platform with Pellet, OWL/SWRL/RDF and JENA triplestores to do general Ontology work, so let’s shelve all that for a while.

First of all, the W3C languages (OWL/SWRL/RDF) are not the only language group that can be used for serious Ontology work.

  • KIF was created in the 1990′s and had several variants, including SUO-KIF, a version currently in use on the SUMO project.  KIF is logic in a LISP-like syntax and is quite easy to learn and expressive. One thing it lacks is RDF’s partitioning (KIF has a single name space, so the names tend to get long for disambiguation).
  • MELD, the language used by CYC and the open source OPEN-CYC (a publically released spin-off project which contains a subset of the full CYC product).  This is another LISP-like language with several extensions to support the special inference capabilities of the CYC engine.
  • Common Logic is an upcoming ISO standard language for logic.  Like RDF, it comes in several syntaxes.  Common Logic Interchange Language (CLIF) is a LISP-like syntax (which just proves that computer scientists seriously love their nested parenteses). However, there are other syntaxes such as CGIF (Conceptual Graph Interchange Format), XCL (XML-based notation for Common Logic) and CLCE (Common Logic Controlled English).  The latter is significant, because it represents a trend towards natural controlled languages for specifying logic (also see SBVR and ACE).

For now, I am sticking to OWL/SWRL, but CLCE and others like it are serious enticements.

So, what next? Here are some important areas that look interesting:

  • Existing Ontology Standards – There are literally thousands of published standards available on the web.  Take a look at SchemaWeb or Swoogle. There are a few, though, that have been especially well crafted and have gained wide acceptance. These are important because when doing Ontology work, it is better not to start from scratch every time a project starts.
    • Upper Ontologies – These try to be act as universal definitions of everything. Generally, they are abstract and are meant to be the core to which other ontologies (domain-specific) link terms, allowing all the linked into a single world-view and be able to do cross-inference.
    • Domain-specific Ontologies – There are a number of well-accepted standard ontologies for things like various kinds of time, standards, spatial relations and so on.
  • Semantic Design Patterns – What is the best approach to representing various kinds of knowledge domains?  While the whole SW effort has been directed almost exclusively at tools and languages, very little work has been done on exactly what and how all this knowledge should be constructed.  Fortunately, philosophers have been arguing these fine points for centuries.  So what approaches are good?  Some areas to examine:
    • Space - There are many ways to represent space (volumes, cartography, grids), ways to measure space (units) and relations in space (topological, compass directions, containment, touching regions, mereology).
    • Time - There are many types of time, measurement systems for time and relations in time.
    • Events (what/where/who and so on) – How to represent things happening sequentially in space and time.
    • Narrative and reification – This covers notions about statements, including who believes them, who said them and in which form, when they were said and whether they are still valid.  This is important in a number of areas, such as understanding narratives and tracking business requirements in systems engineering.
    • Solution Frameworks – If you have knowledge about a problem, how do you arrange the knowledge (“frame the problem”) so that there is a clear way to solve it?  It is amazing how much tacit knowledge is involved in “simple” high-school physics problems in mechanics can be to describe in a logical form.
Follow

Get every new post delivered to your Inbox.