Learning TourML

Daniel Keller edited this page Apr 18, 2017 · 6 revisions

TourML is a specification for the content and structure of interpretive tours. It has been developed by the cultural community, though its application is not specific and could easily be used by other fields.

The Basics

Each TourML document (a.k.a. instance) contains either a single Tour or a TourSet, which is a wrapper for multiple tours.

Each tour's content and structure is represented by 3 primary elements, Asset, Stop, and Connection.

  1. Assets are pointers or containers for media and data that appears in the tour.
  2. Stops are a set of Assets that are meant to be experienced together.
  3. Connections represent a movement from one Stop to another.

A simple directed cyclic graphA simple directed cyclic graph That's about it. After a very naive first attempt, a great deal of feedback from professionals and vendors from the cultural sector, and the evaluation of TourML against a large variety of tours, TourML has boiled down to these 3 primary components. Stops and Connections allow you to build a directed cycle graph that represents the structure of the tour and allowed movements between the Stops. Stops then reference the Assets that are a part of the user experience. Assets are pulled out separately in order to allow them to be shared amongst Stops.

TourML Documents

TourML documents are XML files that are an instance of the TourML XML Schema. (Learn more about XML and XML Schema.) The root element of all TourML documents must be either Tour or TourSet. The Tour element contains the structure and content for a single tour. A TourSet element is a wrapper for grouping together one or more tours. Those tours can be either inline or pointers to other tours using the TourMLRef element. You can read more about this at the TourSet element documentation.

Two example TourML instances are included with the specification:

  1. Example instance of a Tour
  2. Example instance of a TourSet

Here is an example of an extremely simple TourML instance containing 1 Stop:

  <?xml version="1.0" encoding="UTF-8"?>
  <tourml:Tour xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:tourml="http://tapintomuseums.org/TourML"
    tourml:id="org.tapintomuseums.example.tour">
    
    <tourml:Asset tourml:id="video-1">
      <tourml:Source tourml:uri="video.mov">
    </tourml:Asset>
    
    <tourml:Stop tourml:id="stop-1">
      <tourml:Title>A Video Stop</tourml:Title>
      <tourml:AssetRef tourml:id="video-1" />
    </tourml:Stop>
    
  </tourml:Tour>

A Note about Navigation

One of the first questions that comes up is "How do I navigate to a stop?". Usually the answer depends greatly on the technology you are using or the specifics of your applications. The goal of TourML is to represent the contents and structure of your tours. Those things should remain reusable and repurposable as technology changes or as your tour spans multiple platforms.

Given these considerations, you can still embed information along with your tour to drive your specific navigation. For example, the TAP iOS application offers a traditional numeric keypad for nonlinear user navigation. Each stop in the tour is then assign a unique keycode. These keycodes are encoded as a Property for each stop. This allows the TAP application to locate the stop corresponding to the keycode the user entered. This information is not critical to the tour content, however. Another application could present the same tour content as a table listing of all stops, allowing users to choose one at a time to visit. This example helps to define the boundary between navigation and tour content/structure. TourML will always strive to not endorse or encode specific technologies or navigation methods within the specification. This approach ensures that TourML will remain useful no matter how technology changes.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.