[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Subject: Re: [xtm-wg] Binding Topics and Topic Characteristics to Time
I came across the question about dates and time intervals
too recently and
I have a quite simple solution in mind. I have not tried
this out thoroughly,
but I post it now, since the issue has been addressed now.
To avoid having to create topics for every date or time
interval,
PSIs could be used instead. If there was a well-defined
syntax for
generic date and time interval PSIs, topic map authors could
simply
use <subjectIndicatorRef> to refer to dates and time
intervals:
<topic id="petrograd">
<baseName>
<scope>
<subjectIndicatorRef
xlink:href="http://www.topicmaps.org/psi-time-interval-01-01-1703-01-01-1913"/>
</scope>
<baseNameString>St. Petersburg</baseNameString>
</baseName>
<baseName>
<scope>
<subjectIndicatorRef
xlink:href="http://www.topicmaps.org/psi-time-interval-01-01-1991-today"/>
</scope>
<baseNameString>St. Petersburg</baseNameString>
</baseName>
<baseName>
<scope>
<subjectIndicatorRef
xlink:href="http://www.topicmaps.org/psi-time-interval-01-01-1914-01-01-1923"/>
</scope>
<baseNameString>Petrograd</baseNameString>
</baseName>
<baseName>
<scope>
<subjectIndicatorRef
interval-01-01-1924-01-01-1990"/>
</scope>
<baseNameString>Leningrad</baseNameString>
</baseName>
</topic>
(I do not know the correct dates, that's why I used Jan. 1st
in every example and there
should of course be the possibility to simply refer to
years instead of dates...)
Question: Is there a better way to express that a certain
name characteristic assignment
is valid in *either* scope A or scope B ?
Another example:
If I wanted to express when my birthday was, I'd try this:
<topic id="date"></topic>
<topic id="person"></topic>
<topic id="jan-algermissen"></topic>
<topic id="birthday-of"></topic>
<association>
<instanceOf>
<topicRef xlink:href="#birthday-of"/>
</instanceOf>
<member>
<roleSpec>
<topicRef xlink:href="#person"/>
</roleSpec>
<topicRef xlink:href="#jan-algermissen"/>
</member>
<member>
<roleSpec>
<topicRef xlink:href="#date"/>
</roleSpec>
<subjectIndicatorRef
xlink:href="http://www.topicmaps.org/psi-date-05-02-1971"/>
</member>
</association>
Maybe, it is worth to consider such an approach for any
(physical)
unit (coordinates, lengths, weights,...).
Applications could simply parse the PSIs and represent the
value
(and unit) in a numeric form.
If these kinds of PSIs were defined by the XTM standard,
they would
serve as a point for application developers to agree on.
Jan
Eliot Kimber schrieb:
>
> Steve Pepper and others have often posed the question: how do I express
> the fact that something in a topic map is scoped to a particular span or
> point in time without creating a topic for every instant in time I care
> about? For example, the city in Russia at 59 degrees 57' North latitude,
> 30 degrees 19' East longitude has been known as St. Petersburg,
> Petrograd and Lenningrad at various times. How does a topic map author
> express these time relationships and how does a topic map viewer use the
> time bindings?
>
> I have worked out one possible solution that uses HyTime's scheduling
> facilities. The basic idea is to have scoping topics that are scheduled
> events in a time-based finite coordinate space (HyTime provides a
> mechanism for binding an axis of an FCS to real time). To bind a
> characteristic or topic to a particular span of time, you create a topic
> that is scheduled to that time and then put that topic in the
> characteristic's or topic's scope. A topic map viewer that understands
> the semantics of the FCS can provide the service of selecting "active"
> scopes based on their occurrence at a particular point in time or within
> some span of time. A topic map viewer that does not understand the FCS
> semantics just ignores that aspect of the data but still lets users
> select the time-bound scoping topics normally (as they would any other
> scoping topics). Topic map engines can also compare the extents of
> different topics to see if they are intersecting or disjoint, allowing
> answers to questions like "find all topics relevant to the year 1968" or
> "find all topics whose time span touches time span of this topic".
>
> For example, with a time-aware topic map viewer, I could say "limit my
> view to topics and characteristics that are scheduled to the year 1920
> (that is, any topic whose scheduled extent includes any quanta in 1920).
> In the case of Lenningrad, that would limit the visible name
> characteristic to "Petrograd", the official name for St. Petersburg
> between 1914 and 1924.
>
> Note that this approach is not specific to time--it could used to
> express any spatial relationships. For example, I could define a 2-axis
> FCS that represents a map with scheduled topics representing different
> countries or regions on that map. I could define a 3-axis FCS
> representing some physical place, like a building, with scheduled topics
> representing rooms. I could define a 4-axis FCS representing a
> 4-variable data space with scheduled topics representing different
> interesting collections of data points within that space.
>
> Here is a simple example using pidgin topic map syntax (I have not yet
> learned the XTM syntax, so this example reflects the original 13250
> syntax, more or less). This document does the following things:
>
> 1. It sets up a HyTime finite coordinate space measured in real time, in
> units of years (that is, each quantum represents a single year),
> calibrated to One Common Era (1 A.D.).
>
> 2. Creates an event schedule of scheduled topics that represent specific
> ranges of dates. These topics are created primarily to serve as scopes
> for other topics, but some also serve as topics that represent defined
> historical periods.
>
> 3. Creates a topic for the city of St. Petersburg with three display
> names, each display name having a different time-based scope.
>
> 4. Creates a topic Russian History, for scoping the discussion in
> general and the defined time periods in particular.
>
> After the document I discuss how this document could be used by a topic
> map processor.
>
> I have tried to make the HyTime-related markup as complete and correct
> as possible. The only thing I've elided is the marker function
> definition that provides a dynamic reference to the current time.
>
> <!DOCTYPE SchedulingTopicMap [
> <?IS10744 arch name="HyTime"
> options="fcs evsched event extent dimlist"
> ...
> ?>
> <!NOTATION datestring PUBLIC "A syntax for specifying time-based
> calibration of FCS axes" >
> ]>
> <SchedulingTopicMap HyTime="HyDoc">
> <!-- The real-time-fcs element defines the "time-line" FCS. It is
> measured in years
> and is calibrated to 1 C.E (1 A.D.), meaning that the first
> quantum represents
> the year 1 Common Era.
> -->
> <real-time-fcs
> id="common-era"
> axes="realtime SIsecond"
> realtime="3000 year"
> calibrat="realtime timecalibrator datestring"
> timecalibrator="1CE"
> HyTime="fcs"
> />
> <!-- The TopicSchedule element is a HyTime event schedule that
> contains those topics that are bound to specific regions
> of the time line.
> -->
> <TopicSchedule
> fcs="common-era"
> HyTime="evsched"
> >
> <!-- This is a topic that is also a HyTime event
> (Note that I am ignoring the fact that in 13250
> topics are mapped to varlink--I think that's bogus
> and is incovenient here, so I'm ignoring it for
> the purpose of this discussion.) Another solution
> would be to add a wrapper event element around
> topic, but I think that extra syntax is unnecessary.
> -->
> <topic id="daterange-1703-1913"
> exspec="ex01"
> HyTime="event"
> >
> <!-- The extent element binds the topic to a region on the FCS,
> in this case, from the year 1703 to the year 1913 (start, length)
> -->
> <extent id="ex01">1703 210</extent>
> </topic>
> <topic id="daterange-1914-1923"
> exspec="ex02"
> HyTime="event"
> >
> <extent id="ex02">1914 9</extent>
> </topic>
> <topic id="daterange-1924-1990"
> exspec="ex03"
> HyTime="event"
> >
> <extent id="ex03">1924 66</extent>
> </topic>
> <topic id="daterange-1991-present"
> exspec="ex04"
> HyTime="event"
> >
> <!-- Here the markfun element is a marker function that is calculating
> the number of years since 1991 at the current time. It's result
> is a single integer that is used as the second axis marker.
> -->
> <extent id="ex04">1991 <markfun>$current-time -
> 1991</markfun></extent>
> </topic>
> <topic id="Kievan-Appanage-period" scope="russian-history"
> exspec="ex05"
> >
> <basename>Kievan-Appanage period</basename>
> <extent id="ex05">860 829</extent>
> </topic>
> <topic id="Imperial-period" scope="russian-history"
> exspec="ex06"
> >
> <basename>Imperial period</basename>
> <extent id="ex06">1689 227</extent>
> </topic>
> <topic id="Soviet-period" scope="russian-history"
> exspec="ex07"
> >
> <basename>Soviet period</basename>
> <extent id="ex07">1917 74</extent>
> </topic>
> <topic id="Post-Soviet-period" scope="russian-history"
> exspec="ex08"
> >
> <basename>Post-Soviet period</basename>
> <extent id="ex08">1991 -1</extent>
> </topic>
> </TopicSchedule>
> <!-- The following topic represents the city of St. Petersburg.
> It is scoped both to "city" and to the periods of Russian history
> during which the city existed.
> -->
> <topic
> id="petrograd"
> scope="Imperial-period Soviet-period Post-Soviet-period city"
> >
> <basename>petrograd</basename>
> <!-- The display names are each scoped to the date ranges during
> which the name was the official name of the city.
> -->
> <dispname scope="daterange-1703-1913 daterange-1991-present">St.
> Petersburg</dispname>
> <dispname scope="daterange-1914-1923">Petrograd</dispname>
> <dispname scope="daterange-1924-1990">Lenningrad</dispname>
> </topic>
> <topic id="russian-history">
> <basename>Russia, history of</basename>
> </topic>
> <topic id="city">
> <basename>city</basename>
> </topic>
> </SchedulingTopicMap>
>
> Note that from a pure topic map perspecitive, there is nothing special
> about this map--there are topics and scopes and everything is completely
> sensible. The fact that some of the topics are also HyTime events causes
> no interference with topic map semantics or syntax--a topic map
> processor simply ignores the HyTime-specific stuff, just as it would
> ignore any other non-topic-map stuff.
>
> However, because the scheduling information is there, an enhanced topic
> map engine could take advantage of that information by providing
> features that let users select the active viewing scope in terms of
> dates.
>
> For example, I should be able to say "I am interested in Russian History
> topics relevant to 1927". The system will select the scoping topic
> "Russian History" and those scheduled topics whose extent includes the
> year 1927, which in this case is the topics "daterange-1924-1990" and
> "Soviet-period". This has the effect of limiting the displayed name for
> the topic "petrograd" to "Lenningrad".
>
> I can also ask the question "Is the topic 'petrograd' relevant to the
> year 1689?" The answer is yes because one of its scoping topics has 1689
> in its scope (the topic "Imperial-period"). I gave the topic this scope
> because its existence started during the Imperial period.
>
> But this is probably an authoring mistake. It would probably be better
> to create a new scheduled topic that is the extent of the city's
> existence and use that as the scope, so I'll change the petrograd topic
> to this:
>
> <topic
> id="petrograd"
> scope="existence-of-petrograd city"
> >
> <basename>petrograd</basename>
> <!-- The display names are each scoped to the date ranges during
> which the name was the official name of the city.
> -->
> <dispname scope="daterange-1703-1913 daterange-1991-present">St.
> Petersburg</dispname>
> <dispname scope="daterange-1914-1923">Petrograd</dispname>
> <dispname scope="daterange-1924-1990">Lenningrad</dispname>
> </topic>
>
> And create this new scheduled topic (within the TopicSchedule):
>
> <topic id="existence-of-petrograd"
> exspec="ex09"
> >
> <basename>from founding of petrograd to now</basename>
> <extent id="ex09">1703 <markfun>$current-time -
> 1703</markfun></extent>
> </topic>
>
> Now when I ask the question "Is 'petrograd' relevant to 1689?" the
> answer is "no".
>
> But I can also ask questions about the relative time relationships of
> topics and the things they scope. For example, I can learn that St.
> Petersburg existed during the Imperial period by asking the question:
> "What topics have in their scope topics whose scheduled extent overlaps
> the scheduled extent of the topic 'Imperial-period'?". This returns the
> petrograd topic with the display name St. Petersburg visible because the
> petrograd topic's scoping topic of "existence-of-petrograd" is a
> scheduled topic that overlaps the extent of the Imperial period topic,
> as does the scoping topic for the display name St. Petersburg.
>
> Note that all the time-specific processing is done by the topic map
> engine as additional features over and above the base features required
> by the topic map standard. The use of the scheduling stuff does not
> impair interchange as long as we presume that processors can ignore
> stuff they don't recognize. Because the time-based stuff is in terms of
> a standard, there is some hope of consistent interpretation by different
> topic map processors.
>
> Note also that the additional syntax needed to create the date ranges is
> minimal. It is a little more verbose than absolutely necessary in the
> abstract because the HyTime standard requires extent specifications to
> be subelements of events--there's no way to put the extent specification
> in an attribute of the event itself. But the scheduled topics probably
> have more value as topics than I've given them in this example (I was
> trying to keep the example as simple as possible).
>
> Cheers,
>
> Eliot
>
>
> To Post a message, send it to: xtm-wg@eGroups.com
>
> To Unsubscribe, send a blank message to: xtm-wg-unsubscribe@eGroups.com
>
> Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
--
Jan Algermissen
Chief Programmer
SERUBA GmbH
Notkestrasse 13
22607 Hamburg
Germany
Tel: ++49 (0)40 41 360-211
Fax: ++49 (0)40 41 360-100
jalgermissen@seruba.com
http://www.seruba.com
------------------------ Yahoo! Groups Sponsor ---------------------~-~>
Find software faster. Search more than 20,000
software solutions on KnowledgeStorm. Register
now and get started.
http://us.click.yahoo.com/ee3V2C/RNSCAA/2h4EAA/2n6YlB/TM
---------------------------------------------------------------------_->
To Post a message, send it to: xtm-wg@eGroups.com
To Unsubscribe, send a blank message to: xtm-wg-unsubscribe@eGroups.com
Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Powered by eList eXpress LLC