Paper presented at the Knowledge Technologies 2002 Conference

Nexist. An Open Source Knowledge Toolkit

Jack Park

jackpark at thinkalong.com



Abstract

Nexisttm is an open source Javatm application that features a plug in architecture, client-server relationships, and servlet-based web applications. Nexist is a research testbed for developing architectural ideas in support of the quest for an Open Hyperdocument System by Douglas Engelbart. The primary research programme being conducted with Nexist is an exploration of the limits of the XTM XML Topic Maps standard as a knowledge interchange format. The talk will discuss those features of Nexist associated with persistent XTM, IBIS, plug in architectures, and knowledge discovery.

Keywords

knowledge management, IBIS, Topic Maps, XTM, PIM, discovery, constructivist learning

Introduction

Nexist presently exists as a vision, and as a software architecture. The Nexist vision has its roots in the concept of ubiquitous collaboration due to the work of Douglas Engelbart, and as best expressed by Lee Iverson [1]:

The dream of ubiquitous collaboration still remains today, a fundamental part of what Engelbart has called his Unfinished Revolution (Engelbart, 2000). Engelbart was and is convinced that the only way to really tackle the most difficult basic problems that we are presented with as individuals, groups and societies is through a kind of teamwork in which the accumulated knowledge of the group is necessarily greater than that of any individual. An individual's role in the collective enterprise is then to augment the collective knowledge base by observation and synthesis. The networked computing environment that is now widely deployed as the Internet and World Wide Web is but one piece of a larger system that is needed to truly enable this collaborative knowledge development. Collaboration is currently a kind of afterthought in much knowledge work, with each individual locked in his or her own cubicle between group meetings, exchanging a few email messages when necessary.

Imagine instead a work environment in which every person is organically connected to a team of common purpose no matter where they are or what software they are using. An individual's ideas, decisions and actions become amplified and enhanced by an automatic, seamless integration with the ideas, decisions and actions of others. And the collective enterprise becomes centered on a deeply cross-linked repository of accumulated knowledge and action, which is completely open for exploitation and application to any new team activity. Without this kind of infrastructure in place, the potential for radical enhancement of efficiency and productivity that has always been the promise of networked computing can never be realized. But this will only happen when the barriers to the accumulation of group knowledge and group processes are dismantled.

The Nexist vision is intended to be expressed in a variety of research programs, one of which is called Nexist. Nexist, the program, is an open source Java application built as an engineering testbed for new ideas in the areas of knowledge management and constructivist learning environments. Nexist resides on the web at http://nexist.sourceforge.net and is available in source code form with the Apache (http://www.apache.org) license. Nexist is free software, available to all who wish to develop their own ideas or to make use of that which is being developed. Nexist may be used as a basis for proprietary software projects according to the terms of its license. At the same time, Nexist, like all open source software projects, is not intended to be used in proprietary projects which obtain patents or create other intellectual property issues which prevent Nexist from being further developed.

The design of Nexist, the program, is driven by the search for an applications programming interface (api), one that is intended to serve as a transport and communications prototol between client and server in a knowledge-intensive environment. As an experimental testbed, Nexist is being applied to the development of an api based on the XTM XML Topic Maps specification which is documented at http://www.topicmaps.org , the original web site created by the XTM Authoring Group, and at http://www.topicmaps.net , the web site of two of the inventors of the topic map paradigm, Steve Newcomb and Michel Biezunski. XML Topic Maps have recently been folded into the ISO 13250 topic map effort, and the topic maps Published Subject Indicator (PSI) work is now covered at http://www.oasisopen.org/committees/tm-pubsubj/ , a group led by Bernard Vatant.

This paper begins with a brief discussion of the architecture of the Nexist system, and the Nexist api. The paper follows with sketches of some of the applications under present and planned development that will exercise the api to probe its limits.

Nexist Architecture


Nexist is an instance of a client-server system. A Nexist server is a Java servlet architecture, and a Nexist client can be any application or applet capable of communicating in a servlet environment.

Nexist is designed as a plug-in architecture for client applications. A new application can be created, dropped into the “applications” directory, and made ready for immediate use by Nexist by simply editing a configuration file, adding the classname for the new application. Plug-in applications must be designed to appear as a new “tab” in the Nexist user interface. The following screenshot shows four such tabs in place.




XTM as an API

Using an XML dialect as an API? How do you do that? Well, you don't, actually. However, XTM is the specification for a set of XML tags, which specify a variety of information objects that must be transported between client and server. These objects include:

A client is responsible for the creation of these objects, as well as presentation for viewing of them. A server is responsible for storage and other manipulations on these objects. The API to which I refere here consists of the client-server messaging protocol coupled with a Java interface that specifies those methods necessary to achieve the goals set out in the client-server messaging protocol: to transport information objects specified by XTM between client and server.

The Nexist client-server messaging protocol is based on XML tags that define the content fields of two separate messages(under consideration is a possible implementation of SOAP as a transport protocol). The first message carries the basic XTM objects, while the second message carries uninterpreted data. Both messages are pure String objects intended for transmission in an HTTPServlet environment. Uninterpreted data can be entire XTM documents for import or export, or other documents (for example, DAML/OIL import/export documents).

Nexist Applications

There are several applications envisioned for Nexist. The primary motivation for applications presently resides, at least for the author, in the fields of education and scientific research (both of which are inherently learning related).

An XTM Editor

The XTMEditor is a core application, and is not found in the “applications” directory mentioned abovel. Rather, as a core application, it is part of the central body of XTM client code.

XTMEditor is useful for creating, editing, and viewing XTM documents (XTM documents are specified by the XTM 1.0 specification, found at http://www.topicmaps.org). Any XTM document, as long as it resides in the Nexist database, can be viewed and edited with XTMEditor.



An IBIS Engine

IBIS stands for Issue-based Information System. Modern IBIS systems find their roots in a book by Stephen Toulmin [2], and a popular adaptation is found in the work of Jeff Conklin [3]. The Nexist experiment includes mapping the IBIS data structures onto those of XTM. Following is an illustration of a visual vocabulary for XTM structures.




Now, given the IBIS vocabulary expressed in the IBIS Manual [3], we have an illustration of that vocabulary expressed as XTM objects.






The IBIS “tab” is an application installed in the “applications” directory. That tab appears as follows.


IBIS is a formalism for conducting dialogs, which include arguments. An IBIS session starts with a question, which, in the Conklin vocabulary, is followed by one or more ideas or questions intended to refine the original question. An idea is the equivalent of the claim in the Toulmin vocabulary. Ideas may be followed by questions intended to inquire deeper into the intentions of the idea, by further ideas intended to be more specific, or arguments: pro and con arguments. The Nexist IBIS vocabulary includes comments, which are neutral commentary that can be appended to just about any other object in the IBIS discussion.

The IBIS application was created specifically for the purpose of taking Nexist into classrooms around the world. Terms applied to this idea include Dialog Mapping, and Argument Mapping. The Web abounds in websites devoted to these ideas1. The plan is to implement a system which facilitates on-line, asynchronous discourse between learners in different classrooms, cultures, time zones and so forth. Jim Hewit [4], in the abstract for his paper “Beyond Threaded Discourse”, had this to say about this idea (references are in his paper):

The educational advantages of asynchronous, computer-mediated conferencing are well-documented. Increased group interaction, more equitable communication patterns, higher degrees of reflection, and time-and-place-independent discussions are among the benefits cited by Harasim (1990), Eastmond (1992) and Hiltz (1986).

I am working with a group of people highly motivated to create such a learning environment. Nexist will be applied, along with many other technologies, in that activity (See for example: http://www.cognexus.org, http://www.compendiuminstitute.org, http://www.austhink.org/argumentmapping/, and http://www.macrovu.com/).

Every IBIS discussion is, in Nexist, represented as a topic map. Each question, idea, argument, or comment is, in fact, a topic in that topic map. Nexist presents a Java “tree” widget (see the illustration above), where nesting implies association between IBIS objects. It turns out that a “tree” presentation is a particular form of a graph representation, one that restricts the ability to show cross-linking between nodes in the tree. For that reason, a new kind of user interface, TouchGraph (htp://touchgraph.sourceforge.net), is being groomed for eventual integration with Nexist. As the following illustration shows, TouchGraph permits display of all relationships that may exist in the IBIS discussion.




A Discovery Engine

My earlier work, following a period of rapid application of expert systems, resulted in a project I call The Scholar's Companion(r) (TSC). TSC is a kind of expert system, meaning it applies IF-THEN rules to situations. Those situations take the form of episodes in a graph that describes the history of rule actions on episodes. Such a graph is called an envisionment, and the technology is called Qualitative Process Theory due to Ken Forbus. Below is an illustration of an envisionment constructed by an early version of TSC (written in Forth, running on a Macintosh).The project illustrated was one involving the study of cell-cell interactions in a molecular biology domain. What TSC brings to the table is that it is also an instance of an evolutionary programming environment, patterned after the Eurisko program of Douglas Lenat. Human understanding of some domain situation grows through the use of TSC by means of two distinctly different actions:

  1. Human “explanation” of a domain situation to TSC forces reevaluation of all forms of knowledge about the domain in order to recast that knowledge in the qualitative reasoning paradigm. Doing so often results in minor “aha!” responses.

  2. TSC performs evolutionary operations of combination and mutation to concepts within the domain and presents those to the user, occasionally resulting in interesting discoveries. Eurisko was able to apply that idea to game theory and evolve winning strategies in a naval warfare game. A TSC user was able to apply that idea to a process control domain to discover new process control rules in the polymer chemistry domain.

Adding a Java reimplementation of TSC to the Nexist environment makes sense because doing so enables, among other things, exploration of all topic maps in the database, looking for interesting, unnoticed relationships.


Status of the Nexist Projects

Nexist is alive and well at http://www.thinkalong.com/Nexist and at http://nexist.sourceforge.net. Along the way, there have been brief excursions into other areas, looking for fresh ideas to enhance the Nexist effort. Among those excursions are the adaptation of TouchGraph (mentioned above) to display and manipulate topic map objects, and the development of a MySql database for the project KnownSpace (http://knownspace.sourceforge.net). KnownSpace is a Java, Apache-licensed “society of agents” system that will add great value to the Nexist experiment. Just adding MySql to KnownSpace resulted in code that can be immediately imported into the Nexist project, giving Nexist a much stronger relational database engine than it presently has.

The Nexist experiment is an ongoing project, always interested in having other talent join in the project. Links to contacts to join the project can be found at http://sourceforge.net/projects/nexist.

References

[1] Lee Iverson, “Nodal: A Filesystem for Ubiquitous Collaboration,” 20 September, 2001. Available at http://www.ai.sri.com/~leei/OHS/NODAL-WhitePaper.html. See also http://nodal.sourceforge.net.

[2] Stephen Toulmin, The Users of Argument, 1958, Cambridge University Press.

[3] Jeff Conklin, “IBIS Manual,” a user's guide for the product QuestMap. Found at http://www.gdss.com/wp/IBIS.htm, but see also http://www.cognexus.org

[4] Jim Hewit, “Beyond Threaded Discourse,” 1997, paper presented at WebNet '97, found at http://csile.oise.utoronto.ca/abstracts/ThreadedDiscourse.html