[topicmapmail] Ceryle API online
Murray Altheim
murray06 at altheim.com
Thu Oct 26 17:50:44 EDT 2006
Hi,
I've recently had a few people wanting to know more about my
Ceryle project, progress, plans, releases, etc. Rather than
spend the time writing up project documentation I've mostly
been focussed on (i.e., scrambling, actually) coding. While
woefully out of date, the Ceryle home page is located at
http://purl.org/ceryle/
though that will most certainly be replaced by an almost-
immediate link into the CeryleWiki, as I long ago decided
that hard-coding web pages was taking up too much time.
It always seems to be time, doesn't it? I'd have that wiki
online and a distribution available (there is a shell SF
project already) if I had the time, and have been pondering
a release for many moons. In lieu of a code release I've
posted the Javadoc API for the project at:
http://purl.org/ceryle/dev/api/
so people can see the scope of the work. Ceryle is a
standalone Java application that has a built-in Jetty web
server that supports one or more instances of JSPWiki. The
wiki-related work I've been doing is centered around the
WikiEvents API (that is now part of JSPWiki proper), the
XNodeProvider (which serves wiki pages from an XNodeStore,
an XML database API and implementation developed for the
project -- based on ideas from conversations with Lee
Iverson and his NODAL project -- that once used Apache
Xindice, now Berkeley DB JE as its backend), and the various
wiki plugins that support an assertion framework:
org.ceryle.wiki.providers.XNodeProvider
org.ceryle.wiki.plugin.assertion
Once the embedded Jetty HTTP server and the JSPWiki is up and
running, an AssertionCrawler harvests the AssertionPlugins
lurking on the wiki pages, building a Topic Map that can be
then used to do inferencing based on the available assertions,
which take the form of
[{Assert [Jack Kerouac] IsA [Author] }]
generalized to:
[subject] predicate [object]
or property assertions:
[{Assert [Kerouac 1958] DC.title="The Dharma Bums" }]
generalized to:
[page] propertyName="propertyValue"
so you can then do things with the assertion query plugin like:
[{Assertions page='Kerouac1958' dir='up' depth='all' }]
to travel the ontology up to "Thing". Syntax on that last
plugin still up in the air... So rather than wiki category
links one can do something akin to:
[{Assertions output='bullet' [*] [IsA] [Book] }]
to get a bulleted list of all wiki pages asserted as Books.
Plans are for navigation (sequence) links, hierarchy links,
etc. There's a subclass of the FormPlugin called BibRefPlugin
that with one plugin creates a Dublin Core-based biblio-
graphical entry form, where each field becomes an asserted
property in the Topic Map graph (stored as a Topic Occurrence).
Ceryle itself has Topic Map visualization and editing features
to show the overall structure of the wiki. It can, for example,
express a sequence of document sections as part of a visualized
Topic Map graph, and selecting the beginning node of that
sequence you can auto-generate an XHTML document from the Topic
Occurrences referenced by those nodes (where the content of each
can be plaintext, wiki text, HTML or XHTML. With the move from
Radeox to JSPWiki the wiki content processor is now broken. It
also has built-in Groovy scripting support and a bunch of other
features too numerous to mention, some that actually do work
properly.
Once I finally get the wiki online and begin distribution I'll
be looking for collaborators for various parts of the project.
I'm particularly interested in building up support for a plugin
framework. As I mentioned above, I simply haven't had the time
to devote to publicizing so far, being just one person on a
large project.
Murray
...........................................................................
Murray Altheim <murray06 at altheim.com> === = =
http://www.altheim.com/murray/ = = ===
SGML Grease Monkey, Banjo Player, Wantanabe Zen Monk = = = =
In the evening
The rice leaves in the garden
Rustle in the autumn wind
That blows through my reed hut. -- Minamoto no Tsunenobu
More information about the topicmapmail
mailing list