- Use the Source, Luke
Home | Register | News | Forums | Guide | MyLinks | Bookmark

Sponsored Links

Latest News
  General News
  Press Releases
  Off Topic

Back to files

Release Notes

OpenSHORE Server 2.0.0 Beta 2

$Id: RELEASE.html,v 1.11 2005/04/23 13:32:14 heschulz Exp $

Copyright © 2003-2005 Helge Schulz


New in Version 2.0.0 Beta 2


List of Files

Required Software



Feedback and Bug Reporting




An OpenSHORE server builds up a semantic network from your documents in a database. You access this network with a Web browser by navigating your documents through hyperlinks or running Prolog queries against it.

This is a beta test version. Please read the limitation section carefully. OpenSHORE runs on Linux (libc6 with libstdc++3 or libstdc++5) and Windows (NT/ 2000/XP/2003). Windows 95, 98 and ME are not supported. Ports to other Unix variants would be probably easy (Solaris, HP-UX, AIX, ...), but are not (yet) planned (volunteers are welcome).

New in Version 2.0.0 Beta 2

Release 2.0.0 Beta 2 cuts down the memory consumption of an OpenSHORE server up to factor two. It comes with enhanced and optimized container classes for the integrated object-oriented database. The new classes needs up to factor two less space in memory and on disc for typical document sets (Java source code for example). Containers now use shared keys over all persistent container. The previous version (Beta 1) was the first version with deductive query support from the project. Version Alpha 3 was the first version with transaction support. The Alpha 2 version supports Linux first time. The first open source version (Alpha 1) was a Windows only release. The last non open source release was 1.1.1. Version 1.0 was released in April 1999.

The binary distribution files of this version contains also the OpenSHORE Smalltalk parser (creates SHORE files from Smalltalk sources), the OpenOffice export filter (creates SHORE files directly from OO text documents) and the XML Merger (merges XML tags from different sources into one or more files).

Since version Beta 1 OpenSHORE offers the user sophisticated deductive query possibilities to find out all sort information inside stored documents and their relations among them. OpenSHORE shows query results as hypertext, which leads the user directly to found documents, semantically marked text sections (objects) and relation end points. It uses extended Prolog as query language and XSB Prolog 2.7.1 as its query engine. The query engine reads facts about documents on demand from an interface to the object-oriented database of OpenSHORE, so facts must not be copied for queries.

Since version Alpha 3 OpenSHORE provides full team support by simultaneous read and write access to transaction guarded documents (ACID properties). The extended memory mapped file persistence layer implements MVCC transactions with redo log, optimistic write access control and database page merging. MVCC (Multiple Version Concurrency Control) transactions allows users to access consistent document structures while new or updated documents are imported. Such transactions guarantee repeatable reads without setting read locks, which would block write transactions. They provides users a snapshot view from the start of their read transaction. But different users can see different consistent states (multiple versions).

MVCC transactions with ACID properties are implemented by a redo log file inside the store subdirectory (*.tlog file). All changed database pages are appended to these file and are inserted into the database file (*.db) after a successful commit at begin of the next transaction. Write conflicts are detected at commit time and are leading to a rollback, if database page merging failed (three way merge).

See the English or German change logs for bug fixes and other enhancements.


  • No loading of foreign XSB (binary) modules

    The feature of XSB Prolog to load non Prolog binary modules was disabled intentionally to prevent linking problems and minimize size of executables. Additionally XSB packages (not needing this feature) can be added from the XSB distribution archives.

  • Limited database size through memory mapped file persistence

    This depends largely on used operating system. On Linux you get more then 2 GByte usable address space and with special kernel configuration more then 3 GByte. On Windows you get in best case 1 GByte and in worst case only several hundred MBytes. This depends on installed system DLL's versions, which have hard coded addresses with conflict resolution only at program startup.

    This limit can be overcome by compiling OpenSHORE on a 64 bit system, but this is not (yet) tested (volunteers are welcome).

Security Warning

The OpenSHORE server is not a security hardened application. So you should never startup an OpenSHORE server on a machine with sensitive data directly connected to the Internet. Please run it behind a firewall with an HTTP application level gateway inside a separated network zone (DMZ). The HTTP gateway should only passes /shore/[_/a-zA-Z]*(\?.*)? like URLs and should filter out all suspicious HTTP headers.

List of Files

(): Linux only
[]: Windows only

(openshore/)                     installation directory
   CHANGES-de.html               German change log
   CHANGES-en.html               English change log
   RELEASE.html                  release notes (this file)
   sdm-cpl-v10.html              sd&m Common Public License
   [Uninstall.exe]               uninstaller
   bin/                          server binaries
      (dot)                      GraphViz dot dummy (see comment inside)
      [dot.exe]                  GraphViz dot program for meta model graph
      shore[.exe]                server startup and control program
      shore-server[.exe]         main server program
   client/                       command line client
      cmdclient.jar                 "     "     "    JAR file
      shore[.cmd]                   "     "     "    startup script
      shore.conf                    "     "     "    configuration file
   conf/                         server configuration files
      account.conf               password file
   data/                         static server files
      css/                       style sheets
         default.css             default styles
         info.css                bottom frame styles
         metamodel.css           meta model styles
         welcome.css             welcome page styles
      html/                      static server pages
         document.html           welcome page
         faq.html                German frequently asked questions
         manuals.html            German manuals page
         menu-gen-proglang.html  customized menu frame
         menu-plugin.html        menu for browsers with old Java plug-in
         menu.html               default menu frame
         wait.html               wait page
         work.html               work frame
      img/                       images
         OpenSHORE-Surfer.ico    OpenSHORE icon
         shore-waves.jpg         waves image
      java/                      Java libraries
         graphtool.jar           graph plug-in
         swing.jar               Java Swing runtime for old browsers
         webclient.jar           SHORE applet
         querybuilder.jar        query builder plug-in
      pdf/                       PDF manuals
      index.html                 startup frame
      plugin.html                " for browsers with old Java plug-in
   docstore/                     document repository
      <project name>/            project document repository
         css/                    style sheets
         doc/                    imported files
         html/                   generated HTML files
         index/                  index files
         xml/                    parsed files
   log/                          log file directory
   parser/                       parser installations
      bin/                         "    binaries
         limwrapper[.cmd]        LIM wrapper script for Smalltalk parser
         xml2xml[.exe]           do nothing parser
         xmlm.jar                XML Merger JAR file
      lib/                       parser libraries and script files
         lang/                   language specific files
            smalltalk/           smalltalk parser
      meta/                      meta model files
         gen-proglang.meta       generic programming language model
   projects/                     projects directory
      examples/                  example projects
         java/                   Java example
         openoffice/             OpenOffice filter with examples
         smalltalk/              Smalltalk example
         xmlm/                   XML Merger examples
   store/                        database files
   tmp/                          temporary server files
   xsb/                          Prolog libraries
      cmplib/                    Prolog compiler library
      config/                    Prolog configuration files
         <osname>-<arch>         system specific configuration files
            bin/                 system specific binary files
               gpp               general preprocessor for Prolog
            lib/                 Prolog configuration library files
      emu/                       headers files of Prolog engine
      etc/                       Prolog message files
      lib/                       general Prolog library
      metalib/                   predicates generated out of SHORE meta model
      prolog_includes/           Prolog include files
      rules/                     user Prolog rules
      shorelib/                  Prolog interface to SHORE database
      syslib/                    system Prolog library
      tmplib/                    temporary Prolog files (testing of rules)

The OpenSHORE Debian packages install all program files into directory /usr/ lib/openshore and all other directories into /var/lib/openshore. The OpenSHORE programs addresses all data directories with relative pathes from the binary file. The packages contain a couple of symbolic links to support this.

Required Software

  1. Linux, Windows NT 4.0, 2000, XP or 2003 on server side

    On Linux the following libraries are required:

    • GNU C library 2.3 or newer (
    • GNU C++ standard library 5 (
    • Expat XML parser library 1 (
  2. Java and JavaScript enabled browser as client
  3. Java 2 runtime for command line client (Sun/Blackdown Java runtime or GNU Java bytecode interpreter gij-3.3)


Installation and import of Java example:

  1. Unpack tar.bz2 file, install Debian package or execute Windows installer and follow instructions
  2. Startup a SHORE server by hand, if you unchecked this in installer:

    bin/shore <database name> <your TCP port>

  3. Configure TCP port in command line client, if you didn't use default

client/shore admin -port <your TCP port>

4. Execute Java example import script:


5. Open server instance with a browser via URL

http://localhost:<TCP port>/shore/

      or press the reload button inside already opened browser to update SHORE
      applet menus.

6. Follow instructions on welcome page or user guide

Import your own documents:

  1. Add a new project directory:

    mkdir projects/<your project name>

  2. Startup a new SHORE server:

    bin/shore <your project name> [<TCP port>]

  3. Configure TCP port in command line client:

    client/shore admin -port <TCP port>

  4. Configure working director in command line client:

    client/shore admin -wf projects

  5. Import your meta model:

    client/shore imp_mm <your meta model file>

  6. Import your document type specific style sheets:

    client/shore imp_ss <your style sheet> <document type name>

  7. Import your parser or use xml2xml.exe, if you have SHORE XML files:

    client/shore imp_parser <your parser> <your parser name> <your document file extension>

  8. Import your documents: files:

    client/shore import <your documents>

  9. Open your server instance with a browser via URL

    http://localhost:<TCP port>/shore/

    or press the reload button inside already opened browser to update SHORE applet menus.

Execute Prolog queries:

  1. Open a server instance with a browser via URL

    http://localhost:<TCP port>/shore/

  2. Chose menu Queries->Individual Queries
  3. In new appearing dialog:

    Chose one predefined Prolog rule file and enter your query into the source code field.

    To get all relations for example: relation(X).

  4. Press push button Ok to execute your query.


At this time the OpenSHORE project has released a Smalltalk parser and OpenOffice 1.1 export filters to generate SHORE XML files. The Smalltalk parser and the OpenOffice filter is included in this server installation. You can find the source code of our Java parser inside our SourceForge CVS. This parser is not yet released. If you want to build a SHORE parser for Cobol, C++ or C, TinyCOBOL, GCC XML or Mono C Compiler are good starting points.

Feedback and Bug Reporting

Please send feedback, bug reports and patches to the following addresses:


The OpenSHORE source code and binaries are available under the OSI approved Common Public License.


OpenSHORE uses the following software packages or is statically linked with libraries on this list:

Expat XML parser library from James Clark

License: X-Window like


      Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd and
      Clark Cooper

      Permission is hereby granted, free of charge, to any person obtaining a
      copy of this software and associated documentation files (the
      "Software"), to deal in the Software without restriction, including
      without limitation the rights to use, copy, modify, merge, publish,
      distribute, sublicense, and/or sell copies of the Software, and to permit
      persons to whom the Software is furnished to do so, subject to the
      following conditions:

      The above copyright notice and this permission notice shall be included
      in all copies or substantial portions of the Software.

GraphViz dot binary from AT&T Research

License: AT&T binary license


Minimalist GNU for Windows runtime (MinGW)

License: Public Domain


Regular expression library from Henry Spencer (rxspencer)

License: BSD like


      Copyright 1992, 1993, 1994, 1997 Henry Spencer. All rights reserved. This
      software is not subject to any license of the American Telephone and
      Telegraph Company or of the Regents of the University of California.

      Permission is granted to anyone to use this software for any purpose on
      any computer system, and to alter it and redistribute it, subject to the
      following restrictions:

         1. The author is not responsible for the consequences of use of this
            software, no matter how awful, even if they arise from flaws in it.

         2. The origin of this software must not be misrepresented, either by
            explicit claim or by omission. Since few users ever read sources,
            credits must appear in the documentation.

         3. Altered versions must be plainly marked as such, and must not be
            misrepresented as being the original software. Since few users ever
            read sources, credits must appear in the documentation.

         4. This notice may not be removed or altered.

XSB Prolog from Stony Brook University

License: GNU Lesser General Public License (LGPL)


Sponsored Links

Discussion Groups
  Networking / Security

About | FAQ | Privacy | Awards | Contact
Comments to the webmaster are welcome.
Copyright 2006 All rights reserved.