The OKlibrary
The OKlibrary is an open-source research platform and generative
library for generalised SAT solving (released under GPLv3).
- It contains tools to tackle "intractable problems".
- The "SAT problem" (satisfiability of propositional formulas) is
at its centre, but the whole world of problems in "NP" is targeted.
- The core library provides new abstractions for "generalised
satisfiability problems", together with efficient algorithms and
implementations.
- A further aim is to make available all (open source) tools
- in the direct context (other solvers and libraries for example,
also for graph colouring etc.)
- as well as in the wider context (statistics tools and computer
algebra for example).
Current status
- The current version is 0.2.1.6.
- The BETA RELEASE is planned with version 0.2.2 (anticipated
30.11.2011).
- The PRE-ALPHA RELEASE is planned with version 0.2.3 (anticipated
31.3.2012).
- The ALPHA RELEASE is planned with version 0.2.4 (anticipated
30.6.2012).
- The RELEASE is planned with version 0.3 (anticipated
31.1.2013).
On-line documentation
The local
documentation gives access to the "local home page", the index
page for the documentation as on your system.
- This is a copy of the documentation on one of the developers
machines.
- It shall show you the documentation on a real working system.
- So information about the state of installed external sources
is only there to show an example (on every installed system it
might look different).
- And links from doxygen-created pages to external html-pages won't
work, since the link is an absolute path-name (on the developers
machine).
- These absolute path-names are required by the build system, and they
are also informative --- to show you where what is located (that is,
on a real system, not on the Internet-mirror).
Communication happens via the following mailing list:
-
users
Download
The download directory contains three kind of
packages:
- Minimal packages, with just the repository (also checked out)
and the directory scaffolding.
- Standard packages, which contain additionally the
pre-created documentation (so that is doesn't need to be
built).
- Full packages, which additionally contain also all
sources for external sources used by the library.
If in doubt, then download the full package.
- Every package yields (directly!) a directory "OKplatform".
- This is actually the directory to work with, and all build
processes happen inside this directory.
- To extract this directory from the package, use
tar -xjf package-name.
- For building the OKlibrary, change into directory OKplatform, and
read the README file.
- For the release history see the history page of the local
documentation (use the link above).
For downloading single external sources, go to the
OKplatform directory.
The public source-code repository
As an open-source library, you can participate in the development
process, and/or clone/fork the platform:
- "Git" is the (distributed) source-control system we are using.
- At the public git
repository the repository can be inspected.
- Normally, downloading from there won't be needed since the above
packages contain a clone of this public git repository.
- The git-address to clone from is
"git://github.com/OKullmann/oklibrary.git". This is the default when pulling from
a package.
- Collaboration happens at Github,
via creating a "fork" of the OKlibrary there, changing this clone,
and then inviting to pull the changes.
Remarks on the release process
Some remarks regarding the packages (aspects which might be unusual):
- Due to the character of the OKlibrary as an "active library",
there is no such thing as "building it" (once), but the library
comes with the ability of "permanent building" of the many
parts of the library. For further discussions of such aspects
see the aims-page of the local documentation.
- Due to the active character of the library, and
also due to its research character, the library always
comes with the (git) repository.
- Due to the extensive amount of external sources, the full
package is quite big. We do not provide an "external sources only"
package, since the other parts in the full package are
"negligible" from the size perspective.
- Packages are permanently updated, reflected by running
numbers, while the version number (with four digits) is
only advanced from time to time (according to the milestones).
- The four digit version number has the following meaning:
- An advance in the first digit is a "big public event"
(watch the news).
- Advancing the second digit gets a short public announcement
at places like "SatLive".
- Advancing the third digit is an internal event, to be documented
on the mailing lists.
- Advancing the fourth digit is an automatic event, which
happens when some subgoal is reached (as can be seen
in the plans).
As mentioned above, the running number is needed, since we might
release several packages a day, while advancing the version number
might take weeks.
- Updating your already existing OKlibrary-installation can happen
(at least) in the following ways:
- You can pull over the Internet from the central
public OKlibrary-clone, just by using git pull
(this needs git installed).
- If you didn't do anything inside your old installation, then
you can also just replace it altogether by a new one.
- If you installed some external sources, but you didn't change
the OKlibrary itself (inside directory "OKlib"), then
you can also just replace directory OKlib (which is provided
already with the minimal package).
- In any case, if you have downloaded the (new) full package, then
at least you should replace the old
OKplatform/ExternalSources/sources by the new directory (if you
don't have special reasons to keep old packages).
- Due to the research character and its continuous process, there is
no distinction between "stable" and "unstable" releases. If you wish
start using the OKlibrary, download the latest package, and later
perform updates as explained before.
Last modified: Mon May 2 13:42:57 BST 2011
Oliver Kullmann