[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Subject: [xtm-wg] Binding Topics and Topic Characteristics to Time
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 ------------------------ 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