INRIA Rhône-Alpes, 655 avenue de l'Europe, 38330 Montbonnot Saint-Martin, France Jerome.Euzenat@inrialpes.fr
ABSTRACT: HyTropes is a HTTP server allowing the manipulation of a knowledge base written in the Tropes object-based representation language through the world-wide web. It allows the navigation through the knowledge base as well as the invocation of search queries (filters). The display can be customised in order to best suit the needs of the applications. HyTropes will be demonstrated through three prototypic knowledge bases: ColiGene and FirstFly devoted to the genetic regulation of various organisms and STG, a bibliographic knowledge base.
As already noted by various authors -- e.g. ISF (Rees, Edwards, Madsen, Beasley, and McClenaghan, 1995), WebMap (Gaines and Shaw, 1995) -- an object-based representation system is already a web of related objects. The similarity between WWW pages and objects is quite obvious and the mapping from one to the other is straightforward.
Knowledge bases can be used as WWW servers whose skeleton is the structure of formal knowledge (mainly in the object-based formalism) and whose flesh consists of pieces of texts, images, sounds and videos tied to the objects. Turning a knowledge base system into a WWW server is easily achieved by connecting it to a port and transforming each object reference into an URL. If the knowledge base is already documented by WWW pages, the latter remain linked to or integrated into the pages corresponding to these objects.
The object-based knowledge representation system Tropes is provided with its HTTP server counterpart HyTropes (Euzenat, 1996a). HyTropes has access to the internet, the internet has access to HyTropes but access can also be easily restricted to the so-called "intranet". The advantages of such an approach with regard to the previous proprietary hypertext systems are chiefly the availability of the knowledge base content to a wide and untrained audience. However, other advantages are found in the consistency of the base (for instance, there is no dangling link since the skeleton is generated automatically and formal information is maintained sound).
The concept first determines a set of fields (a.k.a. attributes or slots) which are possible for the objects of the concept. The name space of these slots is the concept (i.e. the same name refer to the same field throughout the concept while it can refer to something else in another concept). The fields are defined through their name, type (i.e. string, integer or another concept like room) and constructor (a single value, a set of values or a list of values). A subset of these fields constitutes the key of the concept which is used for identifying the objects. For instance, in a real-estate knowledge base, a house can have a surface field whose value is an integer and a rooms field whose value is a set of room objects (instances of the room concept).
The concept also determine a set of objects which belong to the concept. Each object corresponds to an individual in the modelled domain. It is described by the values of its fields. Only the key fields are compulsory since they enable the identification of the object. For instance, the myHome object is identified by its address, (i.e. town name, street name, number, floor and id fields whose values are respectively "Montbonnot", "rue de l'Europe", 655, 2 and 215).
Figure 1. The connection between the pages concerning Tropes entities (Real-estate). They correspond to the following entities [rows are numbered and columns are lettered] (2a) concept, (2b) viewpoint, (2c) class, (1a) concept slot, (1b) bridge, (1c) class slot, (3a) filter, (3b) object and (3c) list of attached objects. The links between pages correspond to direct links between them.
The concept determines a set of viewpoints identified by their names. Each viewpoint is made of a class hierarchy. This is a very special feature of Tropes. Usually object systems allow only one hierarchy in the system. Seeing a set of objects (a concept) from several viewpoints which organise the objects differently eases the understanding of the knowledge base. In the real estate knowledge base, the houses can be seen under the price, localisation and size viewpoints which allow to directly access the corresponding classifications. Under the price viewpoint, the hierarchy is divided into high, moderate and low prices. A class is characterised by its name, its super-class, its sub-classes, its fields (a.k.a. class slots) and its set of attached objects (the objects which have been classified under that class in that viewpoint). The fields constitute a sub-set of those defined in the concepts and can support additional constraints restricting the range of possible values to a particular set of values, intervals or classes, excluding some values or restricting the cardinal of sets and size of lists. For instance, the value of the rent field under the high priced class is restricted to be in the [10000. 15000.[ interval.
Finally, a concept also defines bridges which can be understood as monadic Horn-clauses. They specify that the objects attached to a set of classes (under different viewpoints) must be attached to another particular class under yet another viewpoint. In the real estate knowledge base, large and residential house are classified under high priced houses.
Each of these entities can be explicitly manipulated by the Tropes user (through an Application Programming Interface). It can also be displayed on a HTTP client through its own HTML page (figure 1 and 2). All the pages are generated on demand (i.e. when a URL comes through HTTP) by the HyTropes program. They make numerous references to each others like figure 1 demonstrates. They also display various documentation and give access to Tropes functionalities as shown below (figure 2).
Figure 2. Detail of a Tropes generated page (ColiGene). It shows the general patterns of a HyTropes page: a strip accessing super-entities, the identification of the current entity, an embedded description of it, its description from the Tropes content which includes links to other entities, a set of buttons triggering Tropes functionalities, another embedded HTML description and the HyTropes footer.
Figure 3. Filter and instance WWW page from a sample real estate knowledge base (Real-estate).
Another well-known aspect of object based systems is their ability to classify objects in various classes according to the values of their fields. Tropes is no exception and allows to process classification algorithms interactively on several viewpoints simultaneously. The result of classification is displayed on a graphic drawing of the hierarchy using colour code to distinguish possible from impossible classes.
Figure 4. Classification query (Real-estate). The particular house is asked for classification under the viewpoints localisation, size and price. The result is displayed as a sequence of taxonomies whose classes are coloured in red (high and low under price) when the class is impossible and green (house and average under price) when it is possible for the object.
Figure 5. Navigating through hypertext (ColiGene). From the gene class illustrated by a text and a picture provide access to another WWW page describing the translation process (not represented by a Tropes entity) which, in turn, access to the messenger RNA class page illustrated by a text and another picture.
By simply adding such an inclusion in the footer of the first page of the FirstFly knowledge base (figure 6), the system is able to trigger more complex functionalities that can be added to the genuine HyTropes through tasks (here they are only LISP functions). The HTML code corresponding to the button on the first panel (in figure 6) is the following:
<FORM METHOD=GET ACTION="http://hytropes.inrialpes.fr/cgi-bin/hytropes/ff/select-path"> <INPUT TYPE=SUBMIT VALUE="Find the paths between two products"> </FORM>It can be interpreted by HyTropes because HyTropes allows to define a particular function to be used when it does not recognise the keyword in the URL. This function will here interpret the select-path keyword and display the second panel. When the user hit the "Display paths" button, the HTTP client (NetScape here) generates the following URL:
http://hytropes.inrialpes.fr/cgi-bin/hytropes/ff/return-path/ ?begin=%23%3C%3C+protein+%22BICOID%22%3E%3E &end=%23%3C%3C+gene+%22hunchback%22+%22FBen0001180%22%3E%3E &depth=7which is, in turn, interpreted and parsed by the same function before calling the function searching the paths in the interaction graph.
Figure 6. Integration of a task for computing paths in a graph of objects (FirstFly). The button triggers an input panel which invokes a method for computing the paths in an interaction graph.
Figure 7. Integration of external CGI script calls (STG). Embedded calls trigger automatically filled queries.
For instance, in the STG base, the display of author objects contains the following HTML code:
<UL> <LI><A HREF="http://altavista.digital.com/cgi-bin/query ?pg=aq&what=web&fmt=. &q=title:Jerome.Euzenat">Search for the Web page</A> <LI><FORM METHOD=POST ACTION="http://www.four11.com/cgi-bin/SledMain?FS,234,2,377FB00,3F70FA11"> <INPUT TYPE=hidden NAME="FirstName" VALUE="Jerome"> <INPUT TYPE=hidden NAME="LastName" VALUE="Euzenat">... <INPUT TYPE=submit NAME="Search" VALUE="FindMail"> </FORM> </UL>which corresponds to the invocation of Altavista or Four11 sites in order to obtain the home page or electronic mail address of the concerned author (figure 7).
In the FirstFly base (figure 8), the network objects are displayed through a Java applet whose invocation is as follows:
<APPLET CODE="IntGraphApplet.class" CODEBASE="http://hytropes.inrialpes.fr/java/graphdraw/" WIDTH=500 HEIGHT=400> <PARAM NAME=edges VALUE="Kr-Hb,Hb*Kr,tll*Hb,gt-Hb,tll-Kr,Kr-gt,gt-kni,tll-kni,Hb-kni,Hb-gt,gt-Kr,Kr+kni,kni-Kr,kni*gt"> </APPLET>It is generated on the fly and the client has all the burden of fetching and running the corresponding Java classes. If this operation (displaying graphs or even hierarchies) are repeated several times, the gains in terms of response time become important since the Java classes are cached.
Figure 8. Integration of a Java Applet for displaying gene interaction graphs (FirstFly).
This is an opportunity to rationalise and publish all the URL rules (far simpler than the URL generated by the FORM tag, see above) for editing the knowledge base. This will enable any application disconnected from Tropes to:
Erlingsson, U., Krishnamoorthy, M. (1996). Interactive Graph Drawing on the World Wide Web, Research report 13, Rensselaer polytechnic institute, Troy (NY US) http://www.cs.rpi.edu/projects/pb/graphdraw/paper.ps.gz