Date post: | 14-Dec-2015 |
Category: |
Documents |
Upload: | pablo-keeler |
View: | 215 times |
Download: | 1 times |
Ontology for Moving Points/Objects/Change...What can ontology contribute to our debate?
Andrew U. Frank
Geoinformation
TU Vienna
www.geoinfo.tuwien.ac.at
4. Nov. 2008Andew U. Frank
From 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?
4. Nov. 2008Andew U. Frank
Ontology today
Ontology in information science is defined as
“an explicit formal specification of the terms in the domain and relations among them”.
4. Nov. 2008Andew U. Frank
Ontology captures structure
Structure of the data is represented in • is_a relations• part_of relations• Instance relations
4. Nov. 2008Andew U. Frank
Two 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)
4. Nov. 2008Andew U. Frank
Discussing 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.
4. Nov. 2008Andew U. Frank
Formal 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 ...
4. Nov. 2008Andew U. Frank
Ontology 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!
4. Nov. 2008Andew U. Frank
Ontology languages 2: Description logicsconsists 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.
4. Nov. 2008Andew U. Frank
Many 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
4. Nov. 2008Andew U. Frank
Actual languages:
The Web Ontology Language OWL (the culmination from a sequence of KL-ONE (1985).... DAML, OIL, DAML+OIL).
A compromise between expressive power and tractability of logical deductions (goal: consistent theory!)
Practically: very limited and difficult to use.
4. Nov. 2008Andew U. Frank
Example “Person - Gender”:<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns="http://localhost:8080/OWLBuergerInformation.owl#"
xml:base="http://localhost:8080/OWLBuergerInformation.owl">
<owl:Ontology rdf:about=""/>
<owl:Class rdf:ID="Gender"/>
<owl:Class rdf:ID="Person"/>
<owl:Class rdf:ID="Woman">
<rdfs:subClassOf rdf:resource="#Person"/>
<owl:equivalentClass>
<owl:Restriction>
<owl:onProperty rdf:resource="#Gender"/>
<owl:hasValue rdf:resource="#female" rdf:type="#Gender"/>
</owl:Restriction>
</owl:equivalentClass>
</owl:Class>
<owl:ObjectProperty rdf:ID="gender"
rdf:type="http://www.w3.org/2002/07/owl#FunctionalProperty">
<rdfs:range rdf:resource="#Gender"/>
<rdfs:domain rdf:resource="#Person"/>
</owl:ObjectProperty>
<owl:DatatypeProperty rdf:ID="name"
rdf:type="http://www.w3.org/2002/07/owl#FunctionalProperty">
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
<rdfs:domain rdf:resource="#Person"/>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:ID="firstname"
rdf:type="http://www.w3.org/2002/07/owl#FunctionalProperty">
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
<rdfs:domain rdf:resource="#Person"/>
</owl:DatatypeProperty>
<Person rdf:ID="STilgner" firstname="Susanne" name="Tilgner">
<Gender rdf:resource="#female"/>
</Person>
</rdf:RDF>
4. Nov. 2008Andew U. Frank
Ontology 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.
4. Nov. 2008Andew U. Frank
Example: definition of pizza
Gives list of incredients (structure) but not the process of baking one!
4. Nov. 2008Andew U. Frank
Extend ontology descriptions with time, change, processWhy 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
4. Nov. 2008Andew U. Frank
First order logic:
Difficult to represent change and process in first order logic
(complicated temporal logics would be needed)
4. Nov. 2008Andew U. Frank
Using existing languages for ontology modelling:
Algebraic background, to be prepared to describe operations and change.
Mathematical rigor and simplicity:
functional languages.
4. Nov. 2008Andew U. Frank
Example:
Specification of classes “Boat House” and “Houseboat”.
(Kuhn:Cosit'06) in Haskell (www.haskell.com)
Gives:classes and subclasses
operations for objects of these classes
Semantics is defined by operations!
4. Nov. 2008Andew U. Frank
Ontologies 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.
4. Nov. 2008Andew U. Frank
Formalization Subclass:
Dogs are Animals; they breath and bark:
class Animals a wherebreath :: a -> StateChange World
class Animals => Dogs d wherebark :: d -> StateChange Worldeat :: d -> f -> StateChange World
4. Nov. 2008Andew U. Frank
Programming with inheritance:
The is_a relation does not translate directly to the operations.
class Numbers n where
division :: n -> n -> n
instance Numbers Rational
instance Numbers Int
Int is subset of Rational
4. Nov. 2008Andew U. Frank
2nd 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.
4. Nov. 2008Andew U. Frank
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.
4. Nov. 2008Andew U. Frank
Formalizing 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.
4. Nov. 2008Andew U. Frank
Formalizing 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.
4. Nov. 2008Andew U. Frank
Formalizing 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) = vcolor (ID, t) = c
4. Nov. 2008Andew U. Frank
Formalizing 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...)
4. Nov. 2008Andew U. Frank
Formalizing 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 -> WorldState -> WorldState
w1 := op (id, w0)
4. Nov. 2008Andew U. Frank
Formalizing with Monads:
op :: ID -> ChangeWorldState
(where ChangeWorldState = WorldState -> 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.
4. Nov. 2008Andew U. Frank
Special 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) >>= f ≡ f x
m >>= return ≡ m
4. Nov. 2008Andew U. Frank
Special Monad, so called State Monad:Binding two functions in succession is the
same as binding one function that can be determined from them.
(m >>= f) >>= g ≡ m >>= (\x -> f x >>= g)
4. Nov. 2008Andew U. Frank
Special 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 >>= f ≡ mzero
Similarly, binding any m with a function that always returns a zero results in a zero
m >>= (\x -> mzero) ≡ mzero
4. Nov. 2008Andew U. Frank
Paradigm 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)
4. Nov. 2008Andew U. Frank
Ontology description with algebra :
operations are explicit changing state to new statet1 = f (t0)
class hierarchy with parametrised polymorphism.
Tools: functional programming languages (eg. Haskell, Caml, Scheme, ML)
4. Nov. 2008Andew U. Frank
Paradigm 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?
4. Nov. 2008Andew U. Frank
An 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)
4. Nov. 2008Andew U. Frank
How?
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.
4. Nov. 2008Andew U. Frank
Ontology 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!
4. Nov. 2008Andew U. Frank
Finale
It is necessary and worthwhile to jump to a new paradigm and build ontologies with operations!