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 forStreetAddressFn
:(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 ofMurder
, which is an indirect subclass ofPhysical
), thenWhenFn
applied to that murder is an instance ofTimeInterval
. (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 likeearlier
, 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.
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.”
↩︎