Bertrand Delacretaz wrote:

> > Some form of topic map would be useful to build "what's
> related" info
> > though, which helps navigation and discovery a lot.

Stefano Mazzocchi wrote:

> Yes, but such a topic maps would have to be human edited.
> this is what
> scares me. tools for ontology creation (like Protege,
> http://protege.stanford.edu/ for example) are available but are
> *incredibly* complex to to use.

Certainly some, but not all of this topic map needs to be human-edited. I
think a basic ontology could be written by hand in a text editor and still
be large enough to be usable. NB there are other sytaxes for authoring topic
maps which are simpler than XTM, too.

To be useful, a hand-written ontology would only need to cover some of the
core concepts such as "namespace", "component", "block", "howto",
"generator", "transformer". The bulk of the topics and relationships are
implicit in the docs, and could be automatically harvested into XTM with a
bunch of XML stylesheets, and linked to the underlying ontology.

For instance, references to java classes, XML namespaces, etc could be
automatically harvested from xdocs:

<xsl:template
        match="source[contains(.,'http://apache.org/cocoon/request/2.0')]"
        mode="harvest-namespace-topics">
        <!--
        This document contains a reference to the request namespace,
        so it can be harvested as an occurrence of the namespace's topic
        -->
        <xtm:topic>
                <!-- topic for the request namespace -->
                <xtm:subjectIdentity>
                        <xtm:subjectIndicatorRef
                                xlink:href="http://apache.org/cocoon/request/2.0"/>
                </xtm:subjectIdentity>
                <!-- this occurrence -->
                <xtm:occurrence>
                        <xtm:resourceRef xlink:href="{$current-page-url}"/>
                </xtm:occurrence>
</xsl:template>

<xsl:template match="source[contains(.,'org.apache.cocoon.')]">
        <!-- reference to a cocoon class: -->
        <!-- harvest the class-name and link this resource to the topic reifying
that class -->
        etc.
</xsl:template>


A topic map layer could be harvested not just from the docs, but also from
the Wiki, the javadoc, the cvs, etc, etc, and the resulting topics merged to
reveal the relationships which are currently produced by hand. Then you can
define a website FROM the topic map. Also, of course, you can use other TM
tools such as the tm-visualiser "tmnav" which displays the topic map using
the TouchGraph component.

Cheers

Con




Reply via email to