[topicmapmail] Web Services

Jan Algermissen algermissen@acm.org
Thu, 15 Jan 2004 13:20:47 +0100


Lars Marius Garshol wrote:
> 
> * Thomas B. Passin
> |
> | 1 - How should you ask for some relevant part of a topic map (so as
> | to avoid getting the whole thing when it is not needed)?
> 
> Two mechanisms have been discussed so far: give an identifier for the
> topic you want, or run a query.

Over the last months I have been working on a third approach, that focusses
on accessing topic maps on the Web. 

The idea is that a topic map server can make certain portions of a topic map
available, that suit common information needs. Some examples of such portions
are

  - the 'index' of a topic map, meaning the list of topics with their
    occurrences and the titles,abstracts,authors, etc. of the occurrences

  - the 'reverse index', meaning the list of information resources and the
    subjects they are occurrences of

  - the list of all classes

  - the list of all roles

  - the list of all assertion types

  - several forms of hierarchical structures, such as a superclass-subclass
    tree or a spatial-containment tree

  - hitlists based on certain properties/situations of topics

many of these are present in the available topic map browsing softwares in one
form or another.

The above conceptual portions can also be parameterized in order to 
retrieve only certain substes (e.g. index from A-C or some tree starting
at X and going down n levels)

This way of accessing topic maps integrates nicely with Web architectire
because the conceptual portions can be understood as resources and topic
map servers can provide links to them to guide a user or agent (this
is known as drill-down and navigation from a REST POV).


Suppose a topic map server provides the xmltools map at

http://www.example.org/topicmaps/xmltools

then several portions could be accessed as:

http://www.example.org/topicmaps/xmltools/index
http://www.example.org/topicmaps/xmltools/classes
http://www.example.org/topicmaps/xmltools/roles


Parameterization can be naturally done with

http://www.example.org/topicmaps/xmltools/index?range=a_c

The returned mime-type would simply depend on the Accept HTTP
header sent by the user agent.

Returned representations of the conceptual portions can be
cached in the usual HTTP defined way.

Of course there is more to all this, especially interoperability issues
(e.g. the portions have to be commonly known/understood for non-human
interactions) but I am still working the details out.

Jan







-- 
Jan Algermissen                           http://www.topicmapping.com
Consultant & Programmer	                  http://www.gooseworks.org