SUMO

SUMO (Suggested Upper-Merged Ontology) has the approach of domain ontologies and an upper ontology. Example:

  • Top level
            Entityne
            /    \
      Abstract   Physical
      / | | \    /    |  \
  Attribute … … Object … Process
  • Domain ontology
          AirportsFromAtoK
           /      |      \
     <fine-grained distinctions>
        /    /    |    \     \
    Arlanda  …    …  Heathrow  …

All entries in SUMO are part of a single tree, starting from Entity. A domain ontology about airports is linked to the top level ontology, in a distant subtree of physical entities.

The upper ontology of SUMO consists of 1000 terms and a bunch of axioms. The cutoff at 1000 is just arbitrary; you have to draw the line somewhere. The domain ontology becomes connected to SUMO by using existing SUMO terms in the new terms and axioms it defines. For instance, if I need to add the term FullMoon to my new domain ontology, I add axioms that use the existing SUMO terms Moon, TimeInterval, during and so on. By this practice, my new ontology is a SUMO domain ontology.

SUO-KIF

SUMO is written in SUO-KIF. Unlike most ontology languages, SUO-KIF is not among Description logics#.

Expressivity

Quote from Mitrović et al. (2019) Modeling Legal Terminology in SUMO

The existing SUMO model has most of the elements needed for a legal framework. It is implemented in a higher-order language, which, unlike a description logic or even first-order logic, allows us to use entire formulas as arguments to relations.

SUMO is also translated into OWL#: http://www.adampease.org/OP/SUMO.owl.

Terms

In some other ontologies, these would be called concepts.

Terms are the basic building blocks of SUMO (and other ontologies). All of the CamelCased thingies in the examples above are terms (Entity, AirportsFromAtoK, Heathrow, …).

If you browse SUMO online, you need to type the term in the text box where it says KB Term.

SUO-KIF is untyped, so there is no formal difference what kind of role the terms may take.

  • Class, like AirportsFromAtoK, DeonticAttribute
  • Individual, like Heathrow
  • Predicate, like occupiesPosition, instance. More about predicates after Axioms are introduced.
  • Function, like WhenFn, which takes a process and turns it into a time interval. More about functions after predicates.

Axioms

Pease (2009) Standard Upper Ontology Knowledge Interchange Format calls these just Statements and Rules. In other sources I see both called axioms1.

Statements (or “simple formulas”)

Example from Pease (2009) Standard Upper Ontology Knowledge Interchange Format

“Kofi Annan is a human and he occupies the position of Secretary General at the United Nations.”

(and
  (instance KofiAnnan Human)
  (occupiesPosition KofiAnnan SecretaryGeneral UnitedNations))

“Silvio Berlusconi is not the president of Libya.”

(not
  (occupiesPosition SilvioBerlusconi President Libya))

Rules (or “quantified formulas”)

Example from Pease (2009) Standard Upper Ontology Knowledge Interchange Format

“If a person is sleeping he or she cannot perform an intentional action”.

(=> (and
    (instance ?P Human)
    (attribute ?SL Asleep))
  (not
    (exists ?ACT
      (and
        (instance ?ACT IntentionalProcess)
        (overlaps ?ACT ?SL)
        (agent ?ACT ?P)))))

Predicate

Examples from from Enache (2010) Reasoning and Language Generation in the SUMO Ontology

As mentioned in Terms, predicates like occupiesPosition and instance are also part of the stuff that SUMO is built of. What is an instance?

(instance instance BinaryPredicate)

Just like any terms, predicates (and functions–more about them soon!) can be nicely placed in a hierarchy.

                     Relation
                  /  |  |  |  \
                 /   …  …  …   \
        SingleValuedRelation …  Predicate
               /                / … … … \
              …       BinaryPredicate QuaternaryPredicate

Furthermore, we can specify the types of the arguments of a predicate, using another predicate called domain. Predicates have also an arity: binary predicates are an instance of BinaryPredicate, quaternary predicates of QuaternaryPredicate and so on. As the graph shows, BinaryPredicate and other arities are all subclasses of Predicate, so

The following example defines the arguments of the predicate homeAddress.

(instance homeAddress BinaryPredicate)
(domain homeAddress 1 PermanentResidence)
(domain homeAddress 2 Human)

And of course, domain is itself a TernaryPredicate, and its arguments are defined by using domain

(instance domain TernaryPredicate)
(domain domain 1 Relation)
(domain domain 2 PositiveInteger)
(domain domain 3 SetOrClass)

Function

Let’s add functions to the graph we saw previously.

                     Relation
                  /  |  |  |  \
                 /   …  …  …   \
        SingleValuedRelation …  Predicate
               /                / … … … \
           Function      BinaryPredicate QuaternaryPredicate
          /  |  |  \         ⌇
         /   |  |   \      homeAddress
        /    …  …    \
UnaryFunction … QuaternaryFunction
                                ⌇
                            StreetAddressFn

To illustrate the differences and similarites, consider the (binary) predicate homeAddress and the (quaternary) function StreetAddressFn.

  • Both predicates and functions have domain. We saw the domains of homeAddress already, here is it for StreetAddressFn:

    (domain StreetAddressFn 1 StationaryArtifact)
    (domain StreetAddressFn 2 Roadway)
    (domain StreetAddressFn 3 City)
    (domain StreetAddressFn 4 Nation)
  • Both predicates and functions have arity.

    (instance homeAddress BinaryPredicate)
    (instance StreetAddressFn QuaternaryFunction)
  • Functions construct new arguments to predicates, and unlike predicates, functions have range. This is easier to illustrate with a simpler function, WhenFn.

    (domain WhenFn 1 Physical)
    (range WhenFn TimeInterval)

    WhenFn takes a physical entity and returns a time interval. Say we want to talk about an individual murder (instance of Murder, which is an indirect subclass of Physical), then WhenFn applied to that murder is an instance of TimeInterval. (See also Adam Pease’s explanation.)

    (instance ?MURDER Murder)
    (instance (WhenFn ?MURDER) TimeInterval)

    And we can use that WhenFn ?MURDER just like any time expression, e.g. as an argument to a predicate like earlier, which takes time intervals as argument.

    (earlier ?T
             (WhenFn ?MURDER))

But that’s not all: you can do actual computations using Functions. Adam Pease demonstrates.

Mappings to WordNet

Quotes from the SUMO book (Pease, 2011).

SUMO has hand-written mappings to all of WordNet 3.0. (Latest version of WordNet is 3.1.) A synset in WordNet# can correspond to SUMO term one-to-one, like WN satellite to SUMO ArtificialSatellite, or in a subsumption relation, like WN elk and deer to SUMO HoofedMammal. The more general a SUMO concept is, the more WordNet synsets it covers.

WordNet was an important source of terms when SUMO was constructed.

[Mapping SUMO to WN] helped considerably in determining where SUMO was lacking in coverage. If a concept in WN did not appear to have a proper term in SUMO to link to, that often led us to create a new term or set of terms.

SUMO and WordNet have different purposes. As Adam Pease says, “ WordNet is appropriate for modeling language. SUMO is appropriate for modeling truths about the world.“ Pease illustrates the difference with an example: the SUMO Plumber is a subclass of Social Role and ultimately of Attribute, whereas the WordNet plumber is a hyponym of artisan and ultimately a person. In SUMO, a job is a role of a person, so it’s more accurate to say (attribute Alice Plumber) and (instance Alice Human) than (instance Alice Plumber). In contrast, WordNets concerns are linguistic:

(p. 162) The hyponym/hypernym relation is intended to represent linguistic notions, especially the substitution test, which allows more general words to be substituted for more specific words in a sentence without making a sentence nonsensical.

The difference can be expressed in even simpler terms: WordNet contains words, but SUMO doesn’t.

(p. 164) Note that the SUMO terms are not words. They are formal terms with definitions in first-order logic. Note also that the relationship between Knife and Cutting is not just a link, but a logical axiom suitable for use in theorem proving.

Type system

Or rather lack of one. It seemed to cause some problems when translating SUMO to GF.

Quotes from Enache (2010) Reasoning and Language Generation in the SUMO Ontology

Another difficulty is the fact that the SUO-KIF framework where everything is expressed as a predicate, and the task of checking the consistency is passed to the automated prover. As seen from the definition of first-order terms and formulas, the only type checking that can be done is that functions and predicates are applied to the right number of arguments. Also, the representation of all concepts in one hierarchy gives rise to constructions that belong ultimately to higher-order logic, and cannot be translated and checked by a first-order automated prover.

(page 18) … in SUMO, functions and predicates do not only take instances as arguments, but also subclasses of a certain class,

Given the untyped nature of SUMO, it’s easy to get confused about types, instances, classes, predicates, functions and all that stuff.

(page 20) Regarding difficulties of the translation of SUMO definitions to GF, we name the presence of concepts that appear both as subclass and instance, in the same file or in different files. For example, in Mid-level-ontology-

 (subclass PoliticalFigure Celebrity)
 (subclass ReligiousFigure Celebrity)
 (instance Celebrity SocialRole)

This is an example of bad design of the ontology that should be overcome in the translation to GF, as it is not possible in a type system that something could be both a type and an instance of a type.

  1. Example formulations from Enache (2010) Reasoning and Language Generation in the SUMO Ontology: “[…] Axioms that specify the behaviour of relations and the connections between various concepts.”; “SUMO axioms […] are of two kinds: simple and quantified formulas.”

    ↩︎