ontolog-forum
[Top] [All Lists]

[ontolog-forum] Time representation

To: "[ontolog-forum]" <ontolog-forum@xxxxxxxxxxxxxxxx>
From: "John F. Sowa" <sowa@xxxxxxxxxxx>
Date: Sun, 20 Jan 2008 14:55:27 -0500
Message-id: <4793A72F.8080304@xxxxxxxxxxx>
On the CG forum, there was a question about representing time in
conceptual graphs and OWL.  Since that topic may be of interest
to people on this forum, I am forwarding the following copy of
my response.    (01)

John Sowa    (02)

-------- Original Message --------    (03)

There are many possible options for representing and reasoning
about time.  Any of them could be used with conceptual graphs.    (04)

OWL is an extremely limited subset of logic, which was not
designed to accommodate time in a systematic way.  In fact, the
purpose of OWL was to represent a limited subset of logic that
is used for stating timeless relationships among the categories
of an ontology.  Trying to add time to such a logic requires
either a complete overhaul of the entire system or an ad hoc
solution that is useful for only a single type of problem.    (05)

In representing time, the first option is to choose between an
explicit time or an implicit "temporal logic", which does not
actually refer to time.    (06)

Temporal logics avoid references to time by using operators
such as 'sometimes', 'always', 'before', and 'after'.  That
representation, which was developed by Arthur Prior (a good
name for a philosopher who was writing about time), treats
time as a kind of modality (with 'always' corresponding
to 'necessity' and 'sometimes' to 'possibility').    (07)

An approach with explicit time represents time with a linear
coordinate system.  That raises more questions, whose answers
require further distinctions:    (08)

a) 4 dimensions or 3+1 dimensions?  A 4-D approach treats objects
    and processes as connected regions of a four-dimensional
    space-time continuum.  A 3+1 D approach treats space and time
    as independent, but related, coordinate systems.    (09)

b) Time points or intervals?  Using real numbers to represent time
    coordinates implies that time is divisible into infinitely small
    points.  But finite intervals with domain-dependent granularity
    are more realistic.    (010)

c) Contexts or extra arguments on relations?  If time is represented
    by some coordinate system, how are those coordinates associated
    with the other representations?  By attaching the time (and/or
    space) coordinate to a context box or other delimiter that encloses
    the description of a situation at that time?  Or by adding another
    argument to every relation to indicate the time when it is true?    (011)

As an example of point (c), the relation HasPart(x,y) would say
that x has y as part.  If parts can be added or lost over time,
there must be some way to state when that relation is true.    (012)

The first option specifies the point in time t of a situation
when all the relationships happened to be true, including the
fact that some entity x had some entity y as part.  The second
option adds an extra argument to every relation; for example,
HasPart(x,y,t).  The first option adds more complexity to
the logic, but simplifies the description of each situation.
The second option adds more arguments to every relation, but
it does not change the underlying logic.    (013)

This list of options illustrates why it is so difficult to
handle time in RDF and OWL:  they have no way of representing
contexts, extra arguments for time, or modal and temporal
operators.  For a specific problem, some ad hoc solution may
be possible, but there is no systematic representation.    (014)

For further discussion, the following web page summarizes a
taxonomy by Eric Sandewall with 2304 types of processes:    (015)

    http://www.jfsowa.com/ontology/process.htm    (016)

The following paper describes how a representation with time
(or other kind of index) attached to a context box could be
mapped to a flat representation with the index added as an
extra argument to each relation:    (017)

    http://www.jfsowa.com/pubs/laws.htm
    Laws, Facts, and Contexts    (018)

Common Logic does not make provision for delimiting a
description and referring to it in some other statement.
But the IKL extension to Common Logic does.  See    (019)

    http://www.ihmc.us/users/phayes/IKL/SPEC/SPEC.html
    IKL Specification Document    (020)

    http://www.ihmc.us/users/phayes/IKL/GUIDE/GUIDE.html
    IKL Guide    (021)

The IKL language adds an expression type '(that p)' to
Common Logic, where p is arbitrary sentence that states
some proposition.  That expression maps to a CG context
box of the following form:    (022)

    [Proposition: p']    (023)

where p' is the CG translation of p.    (024)

Time does not apply directly to propositions, but to situations.
In CGIF (Conceptual Graph Interchange Format), you could write    (025)

[Situation *s] (PTim ?s, "20 January 2008") (Dscr ?s [Proposition p'])    (026)

This says that there exists a situation s whose point in time is
20 January 2008 and whose description is the proposition p'.  It
could be translated to the following statement in IKL:    (027)

    (exists (s Situation)
       (and (PTim s "20 January 2008") (Dscr s (that p))))    (028)

By using "type coercion", the above CGIF could be abbreviated
to the following form:    (029)

    [Situation *s p'] (PTim ?s, "20 January 2008")    (030)

Whenever a conceptual graph, such as p', is nested inside a box
of any type other than Proposition, the default assumption is
that the CG describes some entity of that type.  Therefore, this
abbreviated notation can be expanded to the above CGIF statement.    (031)



_________________________________________________________________
Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/  
Subscribe/Config: http://ontolog.cim3.net/mailman/listinfo/ontolog-forum/  
Unsubscribe: mailto:ontolog-forum-leave@xxxxxxxxxxxxxxxx
Shared Files: http://ontolog.cim3.net/file/
Community Wiki: http://ontolog.cim3.net/wiki/ 
To Post: mailto:ontolog-forum@xxxxxxxxxxxxxxxx    (032)

<Prev in Thread] Current Thread [Next in Thread>