[topicmapmail] options for engine

Alexander Johannesen alexander.johannesen at gmail.com
Wed Aug 5 09:05:34 EDT 2009


On Wed, Aug 5, 2009 at 22:42, Lars Heuer<heuer at semagia.com> wrote:
> Why would you do that? Are you unsatisfied with the existing ones?

Hmm, are you saying all platforms, philosophies, architectures and
goals have been fulfilled by the current crop? :) Thought not.

Let me clarify why *I* have made 3 (complete; more incomplete one
tucked away in various backups) engines so far. First, to help me
learn the innards of the TMDM, secondly to learn the innards of TMRM,
and third because what I learnt in step 1 and 2 inspires me to do
something others haven't done yet, play with some concept, do things
differently.

For example, no one has yet come up with a TM engine for cloud
computing. Or for embedding into current success frameworks such as
WikiPedia, WordPress and FaceBook (TM4JScript could be adapted for
sure). There's no engine as far as I know which are based on Tuple
stores. There's no current engine that performs well under massive
data amounts (hundreds of millions of TAOs). There's no engine that
ventures far outside the TMAPI world, and certainly not much outside
the standard OO API world (where the alternative is behaviour-driven,
event-driven or declarative-driven, etc.). I don't know of any engine
that travels clusters well, nor deal with widely distributed systems
and SOA principles (although NetworkPlanet maybe has something up
their sleave?)

I'm sure some engines cover some of this stuff, but seriously, there's
a million reasons for creating more engines and tools. The last thing
we need is to discourage it, even if it means that it is just a path
for people to end up supporting one or the other open-source
alternative (and then we look at TM4J and see where that one is,
mostly untouched for years). Even something like Ontopia is great, but
sadly doesn't do what I need, for example.

Back to the question;

Read the TMDM specification 20 times until you feel you roughly get
it, and get cracking in your favourite tool. Even if you make a mess,
screw things up and don't get it wrong, your second or third try will
be well worth it.

If you feel your skills are a little basic, try creating the TMDM in a
RDBMS / SQL ; it's easy enough, and will give you good insight into
how to do things from there. Or simply a TM in-memory OO engine, like
the delicious TinyTiM. Another option in a similar fashion is to grab
an XTM file somewhere (Google it; I'm sure you'll find the excellent
opera.xtm file out there), and then process it with your favourite
tool. My first TM engine was written in XSLT, for example, and works
great if your XSLT-foo is strong, and you can use the brilliant XPath
query language for all (well, most of) your query needs. Or just
download something like TM4JScript (found on SourceForge, I think,
still) and play around with it in your browser, and using JQuery on
the DOM should keep you busy.

If your math-foo is strong, you want delicious abstractness and like
lambda calculus, look no further than the TMRM specification, which
will give you all you ever need to create a Topic Maps engine,
including yummy ties right back to the current TMQL draft, and with
that core you can create the TMDM. Know how to create a Tuple store,
or know how to modify an existing one? This is your best bet.

And a final word of advice / warning ; once you go TM, you can never go back!


Kind regards,

Alexander
-- 
 Project Wrangler, SOA, Information Alchemist, UX, RESTafarian, Topic Maps
--- http://shelter.nu/blog/ ----------------------------------------------
------------------ http://www.google.com/profiles/alexander.johannesen ---


More information about the topicmapmail mailing list