date | tags | ||
---|---|---|---|
2020-06-18 |
|
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.
TODO: I don't know how the linking works in practice, or if the technical details have any relevance to the scope of CCLAW readings. (Niles, Pease (2001) seems to describe the merging process, read later if interested.)
SUMO is written in SUO-KIF. Unlike most ontology languages, SUO-KIF is not among <description_logics>.
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 : http://www.adampease.org/OP/SUMO.owl.
Note that in many 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.
Pease (2009) Standard Upper Ontology Knowledge Interchange Format calls these just Statements and Rules. In other sources I see both called axioms1.
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))
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)))))
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)
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.
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.
Footnotes
-
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." ↩