Title: Ontology for Moving Points/Objects/Change... What can ontology contribute to our debate?
1Ontology for Moving Points/Objects/Change...What
can ontology contribute to our debate?
- Andrew U. Frank
- Geoinformation
- TU Vienna
- frank_at_geoinfo.tuwien.ac.at
- www.geoinfo.tuwien.ac.at
2From Moving Points to Moving Objects an
ontological contribution in 3 pieces
- 1. andante What should an ontology for moving
objects contain? - 2. largo How to formalize an ontology for
moving objects? - 3. vivace What can we achieve with it?
3Ontology today
- Ontology in information science is defined as
- an explicit formal specification of the terms
in the domain and relations among them.
4Ontology captures structure
- Structure of the data is represented in
- is_a relations
- part_of relations
- Instance relations
5Two critical observations
- 1. a static view no process, no operations,
nothing changes - 2. it is very difficult
- imagine how difficult it is to describe the
structure of a dish (e.g. apple pie) in
contrast to the recipe (a description of a
process)
6Discussing ontology means first discussing the
formal methods to describe ontologies
- Natural language descriptions of ontologies are
not clarifying the semantics an ontology purports
to clarify.
7Formal methods to describe ontologies (highly
simplified)
- 1. Construct a particular formal language for the
type of ontology you are interested in - - ontology for GIS
- - ontology for moving objects
- - ontology for flocks ...
8Ontology languages 1 UML
- Informal, but extensive use
- Uniform Modeling Language (UML) limited by lack
of formal definition no conclusions drawn or
consistency checked automatically. - Tools (graphical editors) for UML are available
- Nice, easy to use, flexible but no formal
background, therefore no fixed semantics, not
much can be checked for consistency!
9Ontology languages 2 Description logics
- consists of
- A set of unitary predicates denote concept names
- A set of binary relations, which denote role
names - Recursive constructors to form more complex
constructs from the concepts and roles.
10Many variants of Description Logics
- Various DL with different levels of expressive
power and computational complexity, depending
which constructors are included - union and intersections of concepts
- negation of concepts
- value (universal) restriction
- existential restriction
11Actual languages
- The Web Ontology Language OWL (the culmination
from a sequence of KL-ONE (1985).... DAML, OIL,
DAMLOIL). - A compromise between expressive power and
tractability of logical deductions (goal
consistent theory!)? - Practically very limited and difficult to use.
12Example Person - Gender
- ltrdfRDF
- xmlnsrdf"http//www.w3.org/1999/02/22-rdf-synt
ax-ns" - xmlnsrdfs"http//www.w3.org/2000/01/rdf-schema
" - xmlnsowl"http//www.w3.org/2002/07/owl"
- xmlns"http//localhost8080/OWLBuergerInformati
on.owl" - xmlbase"http//localhost8080/OWLBuergerInform
ation.owl"gt -
- ltowlOntology rdfabout""/gt
-
- ltowlClass rdfID"Gender"/gt
- ltowlClass rdfID"Person"/gt
- ltowlClass rdfID"Woman"gt
- ltrdfssubClassOf rdfresource"Person"/gt
- ltowlequivalentClassgt
- ltowlRestrictiongt
- ltowlonProperty rdfresource"Gender"/gt
- ltowlhasValue rdfresource"female"
rdftype"Gender"/gt - lt/owlRestrictiongt
- lt/owlequivalentClassgt
13Ontology editors, e.g. Protege
- Ontology editor based on description logic.
- Produces ontologies in different output languages
(e.g. OWL-Light). - Very difficult to use, very time consuming.
14Example definition of pizza
- Gives list of incredients (structure) but not the
process of baking one!
15Extend ontology descriptions with time, change,
process
- Why is this difficult?
- 1. First order logic is essentially static,
adding time - - adds confusing bulk to expression
- move (P, A, B, T) -
- is_at (P, A, T1) is_at (P, B, T2) before (T1,
T) after (T2, T)? - - frame problem
- need to state what does not change to allow
logical inference
16First order logic
- Difficult to represent change and process in
first order logic - (complicated temporal logics would be needed)?
17Using existing languages for ontology modelling
- Algebraic background, to be prepared to describe
operations and change. - Mathematical rigor and simplicity
- functional languages.
18Example
- Specification of classes
- Boat House and Houseboat.
- (KuhnCosit'06) in Haskell (www.haskell.com)?
- Gives
- classes and subclasses
- operations for objects of these classes
- Semantics is defined by operations!
19Ontologies with operations is an object-oriented
ontology!
- In an object orientation view the world consists
of - objects with operations!
- The object-oriented research in software
engineering concentrates uses an algebraic
approach to model object classes and operations
applicable to the objects.
20Formalization Subclass
- Dogs are Animals they breath and bark
- class Animals a where
- breath a -gt StateChange World
- class Animals gt Dogs d where
- bark d -gt StateChange World
- eat d -gt f -gt StateChange World
21Programming with inheritance
- The is_a relation does not translate directly to
the operations. - class Numbers n where
- division n -gt n -gt n
- instance Numbers Rational
- instance Numbers Int
- Int is subset of Rational
222nd Problem Contravariance of Functions
functions are contra-variant applying a function
to subsets of the arguments does not guarantee
that the result will be a subset of the result of
the original function.
23 Solution
- Parametric polymorphism, as shown in the above
example, where - class Numbers n where ...
- has a parameter n.
- The usual ad-hoc polymorphism of current
programming languages (C, Java) is not
theoretically clean.
24Formalizing 1 Moving point
- a moving point is a list of tuples (fixes)?
- t, x, y (,z)?
- this is what most understand by trajectory,
interpreting that the same point was observed at
the given location at the given time.
25Formalizing 2 Moving point as a function
- a moving point is a function
- p (t) ...
- e.g.
- p (t) (x0 vx t, y0 vy t)?
- but using a lookup function in the list of fixes
and interpolating between known locations can be
written as a function as easily.
26Formalizing 3 Moving and changing objects
- an object can not only change position, but any
other property (heading, speed, color,
ownership...)? - Model each property as a function from time and
objectID to value - e.g. speed (ID, t) v
- color (ID, t) c
27Formalizing 4 Many changing objects in a world
- Populate a world with many objects which change
(e.g. SWARM). How to check for interaction
between objects, expressed formally! - (Model objects as autonomous agents, with
capabilities to obseve the world...)?
28Formalizing 5 Operations of objects produce
change in the state of the world
- operations for objects start with a state of the
world and result in a changed new world state - op ID -gt WorldState -gt WorldState
- w1 op (id, w0)?
29Formalizing with Monads
- op ID -gt ChangeWorldState
- (where ChangeWorldState WorldState -gt
WorldState)? - The result of applying an operation to an object
(and possible additional parameters) is a
function, chaning the world from current state to
a next state.
30Special Monad, so called State Monad
- nice algebraic properties for the monad
opereations return and binb - "return" must preserve all information about its
argument. - (return x) gtgt f f x
- m gtgt return m
31Special Monad, so called State Monad
- Binding two functions in succession is the same
as binding one function that can be determined
from them. - (m gtgt f) gtgt g
- m gtgt (\x -gt f x gtgt g)?
32Special Monad, so called State Monad
- A monad can define a "zero" value for every type.
Binding a zero with any function produces the
zero for the result type, just as 0 multiplied by
any number is 0. - mzero gtgt f mzero
- Similarly, binding any m with a function that
always returns a zero results in a zero - m gtgt (\x -gt mzero) mzero
33Paradigm change necessary
- Two traditions that are hindering temporal GIS
and the necessary ontologies with processes - - logic (especially Description Logics)?
- - Inheritance in (imperativ) programming
languages (especially C and Java)
34Ontology description with algebra
- operations are explicit changing state to new
state - t1 f (t0)?
- class hierarchy with parametrised polymorphism.
- Tools functional programming languages (eg.
Haskell, Caml, Scheme, ML)?
35Paradigm change must fix more than one problem!
- I have argued for a paradigm change in the
methods to describe ontologies. - Does this address other pressing problems?
36An ontology based on operations could be used to
more than just clarify semantics
- The ontology gives a theory!
- Constructing a model checks that the model
corresponds to our intuition. - Formal ontologies should allow entering instances
and observe their behaviour (e.g. Protege)?
37How?
- The data structure part (static ontology) can be
used to present the data this is standard for
administrative data processing. - The operations described in the ontology give a
computational model.
38Ontology with operations equals prototype
application
- Test the ontology! Improve code where not
appropriate. - Ontology gives automatically (minimal, but
standardized) interface. - Slogan
- GUI's from ontology for free!
- How? Translate the operations to buttons and feed
the user input to them!
39Finale
- It is necessary and worthwhile to jump to a new
paradigm and build ontologies with operations!