I have been working on a WWW frontend to our object-centered database,
LINCKS (available under GNU GPL) whenever I have time over ;-)
The first prototype have been running and used (mainly by myself)
for the last few months. It is implemented by using a CGI-program
which interfaces to a special database application (e.g. like gsql).
I'm currently rewriting the frontend as a standalone server
to gain speed and for making it simpler to distribution with the
rest of the database. The current prototype only allows browsing,
but for the upcoming next i'm hope to add posting and possible
annotations. I'm posting this to get comments and feedback
concerning the current prototype before i'm to deep in the
And now it is interesting to use LINCKS as a backend? (This
is cut from our release announcement).
What is LINCKS?
LINCKS is an object-centred multi-user database system
developed for complex information system applications where
editing and browsing of information in the database is of
paramount importance. The focus is on sharing of small
information chunks which combine to make up complex
information objects used by different users for different
purposes. The information chunks are semi-structured in that
they contain one part which is well-structured to facilitate
addition of A.I. processing within the system, and one part
which is unstructured and suitable for management by the user.
Some of LINCKS interesting features are:
a) Multiple users - LINCKS is a multiuser database system.
b) Composite objects - although all objects are built up of
small pieces, the user interface presents these as single
`composite objects', allowing editing over the entire
composite object using an Emacs-like editor.
c) Database history - the LINCKS system maintains information
regarding the history of objects and actions within the
system. Object history is maintained at both the single
chunk and composite object level. Past versions of objects
can be accessed and reactivated.
d) Alternative views - LINCKS allows a user or application
developer to interactively define alternative views on the
underlying database objects. This is particularly useful in
applications where the same information is to be used for
different purposes or by people in differing roles which
require a different composition and display.
e) Information sharing - LINCKS provides an easy way for users
to share database objects or for one user to share
information across all of her/his accessible objects. This is
done by linking objects into composition objects. Thereby,
any changes to that object by one user will result in updates
to all compositions which have that object as an component.
f) Parallel Editing Notification - As LINCKS is a multi-user
system and allows information sharing, this leads to possible
conflicts. Consequently, the LINCKS system maintains a list
of objects being edited and issues warnings when parallel
For the WWW application the b, d, e, and f is most interesting. Then
current prototype generates HTML on the fly from documents in the
database. A document's structure is described by a grammar (similiar to a DTD,
but very simple), but also specified is _where_ in the database the
differents parts of the logical structure should be fetched.
By using different views applied to the same document root object
we are able to generate:
a) the full document
b) a brief table contents (toplevel) with links to different
c) a full table contents ...
and this without any need to create new/split file. We have a _single_
source for every different views. When authoring documents, you only
have to inserted a link document, not use the usual cut-and-paste with
which you can lose tracibility.
Enough rambling for now, if you find the server at
and it is a tad slow currently. You might have to wait for a
while before getting information back. I have had the time
to add much material to the underlaying database, it is
all most the same database as we distribution with the source,
e.g. information about using our X11 interface to the database,
some general information.
-- Martin Sj\"olin | http://www.ida.liu.se/labs/iislab/people/marsj Department of Computer Science, LiTH, S-581 83 Link\"oping, SWEDEN phone : +46 13 28 24 10 | fax : +46 13 28 26 66 | e-mail: email@example.com