Mindmap Bots (Mindmap Conversion)

XML => xsl => OPML => xsl => MM => xsl => XTM => xsl => AIML



[Update: 15-05-03] Graphs include recursion, or loops, whereas Tree structures do not (which makes trees faster than graphs).

I have successfully converted from Sitemap to Mindmap, via Bookmarks. Both Freeplane and Freemind allow for the importing of nested Internet Explorer (IE) Bookmarks. Because this website (Meta-Guide.com) exceeds the Google Sites native sitemap limit of 1000x webpages, it was necessary for me to crawl the site, in this case using WinWebCrawler. So, I started with a simple text file of URLs saved as CSV, and uploaded to Google Drive. (I could have just as easily done essentially the same thing using a smaller sitemap directly in Yahoo! Pipes XPath module.) With the simple URLs CSV from Google Drive in the Yahoo! Pipes CSV module I was able to parse the directory file tree for each URL, using the Regex module. (This was made that much easier for me since my file names closely match the page titles.) I then opened the “tree view” output from Yahoo! Pipes via CSV in MS Excel, where I applied the Bookmark (XBEL) template. I exported from Excel to CSV, then simply renamed that file to HTM, imported into IE Bookmarks, then into Freeplane (see screenshot at right). Freeplane seems to be more up to date than Freemind. Although Freemind has built-in OPML export, importing from OPML would have required using XSLT.

  • Sitemap => Yahoo! Pipes => Spreadsheet => IE => Freeplane




editgrid.com | fsv.sourceforge.net | pordl.com | powermapper.com | sitemap-generators | text2mindmap.comtm4j.org | treeview.net | ulmxmlview.sourceforge.net | wandora.org

See also:

100 Best Mindmapping Videos | 100 Best Sitemap Tutorial Videos | 100 Best UML Tutorial VideosBest Freeplane Videos | Best MindMeister Videos | Best OmniGraffle Videos | Best OPML Videos | Best TreeMap VideosBest VUE Videos | UML (Unified Modeling Language) & Dialog SystemsVUE (Visual Understanding Environment) | XML Variants | XSLT Resources

Sitemap | Sitemaps | Sitemap index


Outline (summary) | Outliner (software) | OPML (Outline Processor Markup Language) [Table of contents]


Mindmap | Mindmapping programs


Topicmaps [Back-of-the-book index]


Dave Winer

@davewiner .. Is there any utility for converting XML sitemaps into nested OPML outlines? http://t.co/W0yrCIIG 4:54 PM Nov 12th 2012

@davewiner .. don’t fully grok your networked opml #worldoutline .. but couldn’t opml serve as xml lingua franca via universal web service ? 2:42 PM Jun 12th 2012

@davewiner .. don’t want to “edit” sitemaps, want to import, view & export (convert) .. sitemap2opml + opml2mindmap = sitemap2mindmap .. ;^) 2:23 PM Jun 12th 2012

@davewiner .. fyi, ‘web programmer guy’ @smailliwnosaj has XSL for “Nested List SiteMap from a Flat XML File” http://t.co/glvuOirN .. 2:07 PM Jun 12th 2012

@davewiner .. simple sitemap2opml would be okay, but would be nice to have page titles inserted into OPML (like an *outline* of bookmarks) 3:25 PM Jun 11th 2012

@davewiner .. hehe, just tried renaming my sitemap.xml to sitemap.opml and opening in OPML Editor, no go .. 3:16 PM Jun 11th 2012

@davewiner .. how can I auto-convert my website directory structure (or XML sitemap) into an outline (OPML) ?? 2:45 PM Jun 11th 2012

Mindmapping Knowledgebases

> http://en.wikipedia.org/wiki/List_of_concept_mapping_and_mind_mapping_software

What are some useful tools for visualizing knowledgebases? For instance, are there any visual editors for AIML (or ChatScript)?

Mindmapping seems to be a useful way to visualize tree structures. It would be great to have a conversion tool for AIML into Freemind, or Freeplane, format. Freemind format is basically another XML variant, so XSLT could be used for conversion.

> http://www.meta-guide.com/home/mindmap

I’ve recently tried converting my Meta Guide website sitemap into mindmap format, and was surprised to find no easy import tool available for converting sitemaps into mindmaps. I can see no real difference between visual sitemaps and mindmaps, just basic tree structures.

= = =

> http://www.ai-forum.org/topic.asp?forum_id=1&topic_id=72481

What would be really grand is a convenient way to *visualize* the knowledgebase, and both visually edit and speech edit, in other words visually explore the knowledgebase and then input answers or replies using speech-to-text….

= = =

> http://www.chatbots.org/ai_zone/viewthread/840/

Uchiha has got me thinking about whether or not AIML chatbots could read MM mindmaps, and if so whether or not it would be useful…. So, how are concepts handled in AIML? I know there have been various attempts to connect AIML chatbots with WordNet, for instance. How is this done, and is it really useful?? The whole issue of concepts ultimately relates to the semantic web technologies and their integration with AIML, which I know people are working on at the moment….

= = =

> http://www.aihub.org/pdf/04338340.pdf

Sub-Symbolic Semantic Layer in Cyc for Intuitive Chat-Bots (2007)

“ALICE-based chat-bots have been provided with advanced reasoning capabilities through the linking of the AIML interpreter with the OpenCyc commonsense ontology.”

= = =

> http://www.daxtron.com/pdf/CYN_Description.pdf

Living in cyn: mating aiml and cyc together with program n (2004)

“Daxtron Labs’ experiments on linking the Artificial Intelligence Markup Language (AIML) interpreter called Program N (by Gary Debuque) to OpenCyc (a freeware version of the Cyc program created by Cycorp).”

= = =

> http://programw.sourceforge.net/

“Program W is an AIML interpreter written in Java. It extends Program D technology with new AIML tags that allow chatbots to query the WordNet lexical dictionary. Chatbots can use information about lexical terms and evaluate existing relations between words.”

Apparently the creator of ProgramW (above), Alessandro Caronia, co-wrote a 2009 paper about it, “A semantic layer on semi-structured data sources for intuitive chatbots”; but, I can’t seem to find a copy available online.

I did find a copy of a 2012 paper by Caronia’s colleagues, Giovanni Pilato etc., “A Modular System Oriented to the Design of Versatile Knowledge Bases for Chatbots” http://bit.ly/LxCBvP , which mentions AIML quite a bit.

= = =

> http://www.meta-guide.com/home/bibliography/google-scholar/aiml-opencyc

AIML & OpenCyc

> http://www.meta-guide.com/home/bibliography/google-scholar/aiml-wordnet

AIML & WordNet

> http://www.meta-guide.com/home/bibliography/google-scholar/aiml-ontologies

AIML & Ontologies

= = =

Basically, OpenCyc is an ontology. WordNet can serve as an ontology. Mindmaps are also a form of ontology.

So, AIML should be able to use mindmaps in a similar way to OpenCyc and WordNet….

Let’s ask the question in another way….

How could MM mindmaps be made from AIML KBs, or rather how can we mindmap AIML ??

= = =

> http://en.wikipedia.org/wiki/XSLT

AIML is an XML variant, a markup language.

The mindmap MM file format is also an XML variant, another markup language.

We know that XSLT is a good way to transform virtually any XML variant into another.

Hmmm …

= = =

> http://en.wikipedia.org/wiki/FreeMind

FreeMind is a free mind mapping application written in Java.

> http://freemind.sourceforge.net/wiki/index.php/Export_using_XSLT

There is a function that allows exporting of FreeMind mind map using any XSLT—a transformation stylesheet. Several transformation stylesheets come as part of FreeMind distribution, located in the “accessories” subfolder.

> mm2opml.xsl – to OMPL

> opml2mm.xsl – from OPML

= = =

This is a little progress. Freemind at least allows exporting via XSLT, and comes with an XSL stylesheet for converting to OPML. There is also a stylesheet for converting from OPML to mindmap. I’m not sure if Freemind also imports via XSLT. And, it would take some testing to find out if there was any loss of detail going either way.

What this means is that if AIML could be converted into or out of OPML in any meaningful way, without too much loss of detail or functionality, then there would be an avenue for going back and forth between AIML and mindmap.

Presumably, by designing better XSL stylesheets then the OPML step could be eliminated altogether, allowing transformation directly from MM to AIML and back, but will require some concentrated, if not painstaking work to accomplish.

Basically, if we can figure out the correct XSL stylesheet configurations, then we could get AIML to talk to mindmaps and vice versa, theoretically at least!

= = =

> http://www.quora.com/XSLT/Is-there-any-high-performance-XSLT-web-service-available-for-realtime-schema-translation

Is there any high performance XSLT web service available for realtime schema translation?

I’m particularly interested in going from XML sitemap <=> MM mindmap <=> AIML (Artificial Intelligence Markup Language), in other words translating website sitemaps into mindmaps then making them ontologically available to dialog systems.

= = =

> http://twitter.com/mendicot/status/207528165864775680

Testing new webpage2mindmap summarizer .. Web Summarizer http://websummarizer.com for http://twitter.com/Summarizer .. creator of http://twitter.com/WikiSummarizer .. ?#mindmap?

= = =

> VUE (Visual Understanding Environment)

Good one, I didn’t know about VUE. I’m not sure where this will lead either, but somehow it seems related to integrating semantic web technologies with AIML….

I think that this is about hybrid visual and automated solutions. Maybe it’s about bypassing semantic web technologies and discovering another way….

I don’t know of good tools for either visualizing AIML KBs or visually editing AIML KBs. I don’t know of good tools for visualizing the automated processes in realtime.

There is a lot of human effort going into making things like mindmaps, as well as tools like VUE. Beyond that there is an immense store of website structures in the form of sitemaps, which also represent a kind of ontology.

The idea would seem to be, how could AIML dialog systems access and leverage this immense trove of relations, in mindmaps and sitemaps? (Relations not even coded into RDF yet….)

So, the questions seem to be how could AIML read MM mindmaps, and how could MM mindmaps read XML sitemaps??

Ultimately, will we really need RDF, yet another markup language, but containing additional ontological metadata coded into microformats?

= = =

> http://www.meta-guide.com/home/bibliography/google-scholar/ontology-alignment-dialog-systems

Ontology Alignment & Dialog Systems

= = =

“Ontology alignment, or ontology matching, is the process of determining correspondences between concepts.” (On Wikipedia, “ontology mapping” defaults to “semantic integration”.)

“The problem of Ontology Alignment has been tackled recently by trying to compute matching first and mapping (based on the matching) in an automatic fashion. Systems like DSSim, X-SOM or COMA++ obtained at the moment very high precision and recall.”


Looking at these systems, the first thing that strikes me is how similar they are to XSLT systems….

= = =

In my initial attempts using XSLT to map XML sitemaps to MM mindmaps (before even trying to map MM mindmaps to AIML), I hit a few of snags….

1) It’s not clear to me how to translate the directory structure of the URLs in XML sitemaps into the tree structure of MM mindmaps, like one on top of another connected to the following and multiples within.

2) Ideally, a really good sitemap2mindmap translation would also map all internal linkages, which would involve spidering the website then merging all those connections as above.

3) Further, webpage titles are not necessarily included in XML sitemaps; therefore, spidering would also be necessary to extract page titles to include in a better mindmap.

A straight translation from XML sitemap to MM mindmap would probably be inadequate, and so require spidering the whole website beforehand.

Certainly, mapping MM mindmaps to AIML would not be less complex, especially to achieve a minimum of loss of detail.

= = =

> http://twitter.com/topicscape/status/209162374115115009

?@topicscape: @mendicot Don’t know of any way. Prob is, MM mindmaps r tree-based hierarchies, & sitemaps allow connections from any location to any other

> http://twitter.com/roygrubb/status/209162734149963776

?@roygrubb: @mendicot We experimented with importing web sites into Topicscape automatically, and found challenges in dealing with duplication properly

> http://twitter.com/roygrubb/status/209162867851792384

@roygrubb: @mendicot We talked to others who had tried and failed, so we gave up eventually.

= = =

> http://en.wikipedia.org/wiki/OPML

OPML (Outline Processor Markup Language)

= = =

Out driving around in traffic today, a little piece more of this puzzle came to me….

OPML is *Outline* Processor Markup Language. An XML sitemap is an *outline* of a website. And, a MM mindmap is generally an *outline* of ideas. Okay, I’m giving up on the notion of mindmapping internal recursive linkages in within websites; since, apparently MM mindmaps can’t handle recursive linkages – because they are just *outlines*…. I now suspect that using regex one could parse the directory structures in most XML sitemaps, which would result in a type of *outline*. Then one would just have to grab the page titles to make it more useful and esthetic.

Next step, are there any tools available for visualizing AIML KBs as *tree* structures? There must be; I just can’t think of any offhand.

= = =

> http://en.wikipedia.org/wiki/Ontology_(information_science)

an ontology formally represents knowledge as a set of concepts within a domain, and the relationships

> http://en.wikipedia.org/wiki/Outline_(summary)

a list arranged to show hierarchical relationships, and is a type of tree structure

= = =

Can you tell me what the real difference is between an ontology and an outline ?

= = =

> http://websummarizer.com/

WebSummarizer rich visual presentation of interactive summaries

= = =

A little more progress each day….

I’m now consulting with Henry Lewkowicz (@Summarizer), creator of WikiSummarizer and the new WebSummarizer (above), an expert in the conversion of mindmaps. He apparently believes that sitemap2mindmap can be done, with his proprietary processes. However, since he is not familiar with AIML, mindmap2aiml remains to be seen. So again, what tools are available for visualizing AIML KBs as *tree* structures or *outlines* ?

= = =

> http://www.meta-guide.com/home/bibliography/google-scholar/aiml-graphmaster

AIML Graphmaster

= = =


Graphmaster forms the core of the Alicebot engine.

The most important element is the graphmaster which implements the search algorithm that allows the bot to match the user input and construct an appropriate response.

ALICE loads all AIML into a graph metaphor known as a Graphmaster.

AIML categories are stored in a semantic tree named Graphmaster.

The knowledge based in AIML is stored using a mechanism called Graphmaster.

AIML software stores all of the categories in a tree managed by an object called the Graphmaster.

AIML software stores the patterns in a tree structure managed by an object called the Graphmaster, implementing a pattern storage and matching algorithm.

The Graphmaster consists of collection of nodes called Nodemappers.

Graphmaster is a set of files and directories, which has a set of nodes called Nodemappers.

The Graphmaster has a collection of nodes called Nodemapper. Pictorially it is a hierarchy of Nodes, each being either a root, a leaf, or both.

The stimulus-response categories are stored in a tree structure, managed by an object called Graphmaster, implementing a pattern storage and matching algorithm.

This behaviour can be described in terms of the class Graphmaster which has a set of nodes called Nodemappers_ that map branches from each node_ and branches represents the first words of all patterns and for wildcards.

Graphmaster matching is a special case of backtracking, depth-first search. In most cases matching is handled by a linear traversal of the graph from the root to a terminal node.

= = =

BTW, I was recently given a demonstration of machine translation technology. WordNet concepts were represented as numbers, like GUIDs (Globally Unique IDentifier). And, the concepts from over a dozen languages were simply mapped not only between languages but also within a given language via these universal number codes….

= = =

> http://www.meta-guide.com/xml-variants

XML Variants: Bookmarks | Sitemap | OPML | Mindmap | AIML

> http://en.wikipedia.org/wiki/MindManager#File_format


> http://freemind.sourceforge.net/wiki/index.php/Import_and_export#From_MindManager_X5


= = =

I have yet to find a real specification for the MM file format. Presumably, the MM file format stands for “MindManager”; however, the MM format used by Freemind does not seem to be identical with the current MindManger file format. I have found an XSL stylesheet (above) that transforms from MindManager into Freemind format. Apparently the real MindManager format involves some kind of ZIP archive nesting containing both XML and binary data. I have made a webpage (above) trying to visually compare these XML Variants.

= = =

> http://www.meta-guide.com/home/bibliography/google-scholar/aiml-templates

AIML Templates

> http://www.meta-guide.com/home/bibliography/google-scholar/aiml-categories

AIML Categories

> http://www.meta-guide.com/home/bibliography/google-scholar/aiml-srai-symbolic-reduction

AIML & SRAI (Symbolic Reduction)

> http://www.meta-guide.com/home/bibliography/google-scholar/aiml-random-tag

AIML Random Tag

= = =

I don’t have the depth of understanding of the finer points of AIML that you do. I neglected to note that all the sentences in my Graphmaster reply were extracted from the linked Google Scholar page.

I wonder if the “knowledge” doesn’t exist in the *relation* of the pattern to the template, in other words inside the category. So in terms of classification, the patterns could be seen as a reverse tree (roots) of the templates?

The “symbolic reduction” of the SRAI tag would seem to provide at least a partial answer to my original question about how concepts are handled in AIML. Can we say that SRAI functions or defacto SRAI structures form a kind of ontology, or ontologization? And conceptually, how does the randomization fit in the bigger picture? Doesn’t randomization just expand the tree “roots”? It has been noted to provide more “humanness”.

= = =

> http://twitter.com/mendicot/status/207492128035708928

PORDL http://pordl.com .. ?#XSLT? web feed transformer, ?#XSL? to HTML .. by ‘web programmer guy’ @smailliwnosaj

> http://pordl.com/transform.aspx?id=539

Nested List SiteMap from a Flat XML File

> http://pordl.com/xsl/539.xsl

Nested List SiteMap XSL stylesheet

= = =

It seems ‘web programmer guy’ Jason Williams has not only provided at least a partial solution for how to parse an XML sitemap into an outline something like OPML, but also a web service for at least partial schema translation, at Pordl.com . I haven’t been able to find anything else even close, and some experts said it couldn’t be done.

Just to put this in context, the basic idea is for AIML chatbots to not only “read” mindmaps, but also sitemaps in order to potentially discover conceptual relations, and further “understanding”. Whether this will eventually prove possible or practical is anyone’s guess. Theoretically, it would seem to provide a potential alternative to conventional web semantics.

= = =


Topic Maps are similar to concept maps and mind maps in many respects, though only Topic Maps are standardized. Topic Maps are a form of semantic web technology, and some work has been undertaken on interoperability between the W3C’s RDF/OWL/SPARQL family of semantic web standards and the ISO’s family of Topic Maps standards.

= = =


>>Maiana is the most efficient service to host, explore and share Topic Maps sources.<<


>>The API is awaiting your calls at http://maiana.topicmapslab.de/api and is able to process a JSON object.<<


>>Onotoa is an Eclipse-based ontology editor for Topic Maps.<<

= = =

So far, I haven’t found any converter from mindmap into topicmap. Topicmap sounds like a great idea, but actually the number of users of topicmaps is miniscule compared with mindmaps. Theoretically, topicmaps seem to be more compatible with ontologies than mindmaps.

Okay, maybe it’s not necessary to mindmap the AIML itself; that was just one way to try to conceptually reverse engineer the process. All that would be necessary would be to auto-convert mindmaps into AIML. So, the recursive “symbolic reduction” of the SRAI tag could be key here?

From what I’ve heard, it seems Richard Wallace will be adding some new tags to AIML in order to better accommodate web semantics.

= = =

> http://www.meta-guide.com/home/bibliography/google-scholar/aiml-srai-symbolic-reduction

AIML & SRAI (Symbolic Reduction)

= = =


Note, the following sentences are extracted from the above webpage, reflecting a recent search of Google Scholar:

AIML Symbolic Reduction (SRAI) Technique

AIML is a tail-recursive functional language which is optimized for the semantic processing of strings, where input and output strings are desired to be at the semantic level of sentences in natural language.

The recursive feature of AIML is sometimes called “symbolic reduction” and is abbreviated as “srai” (symbolic reduction artificial intelligence).

This element can be used to make (a) symbolic reduction, (b) to handling synonyms, (c) to grammatical corrections or (d) to detect key words.

AIML also allows the use of symbolic reduction (SRAI) and wildcards (asterisk “*” and underscore “_”).

The AIML implementation for recursion is the tag .

The AL-AIML [Affect Listener AIML] set contains 14465 patterns, 15550 response instructions and 6918 srai substitution rules.

The element can be constructed merging more categories together, using the tag that allows referring to other categories.

Special functions are carried out by the topic, that, and srai tags.

AIML bots support a mechanism for recursive processing via the tag , which can be instantiated from inside a template.

AIML can also reuse other rules by means of the tag; however, there is no clear rule structuring since this tag re-launches the evaluation of the whole set of rules for an input reformulation.

Recursive categories have templates including and tags, which refer to simply recursive artificial intelligence and symbolic reduction.

A knowledge-base of this kind of chatter-conversational agent is made of pairs of textual/lexical (pattern; template), which can be linked together semantically and/or recursively by means of SRAI connections.

The < srai > tag allows procedures calls and can be used to direct different input patterns to the same exit template.

We started by augmenting the default AIML tag set (including tags such as and ) with two tags: , to seamlessly invoke the core QA module, and , to support follow-up detection and resolution.

For instance categories with templates having or tags are called recursive categories, which recursively call the pattern matcher to insert the responses from other categories. and , which refers to simply recursive artificial intelligence and symbolic reduction are playing critical rules in: reducing complex grammatical forms to simpler ones; splitting an input into two or more subparts, and combines the responses to each; and dealing with synonyms by mapping different ways of saying the same thing to the same reply.

Though posing some risk to novice programmers, we surmised that including was much simpler than any of the iterative block structured control tags that might have replaced it.

The disagreement over the acronym reflects the variety of applications for in AIML.

The tag is designed to recursively find the next pattern.

The recursion tag is used for several purposes: symbolic reduction; “divide and conquer” (splitting an input into subparts, and combining responses to each of these); finding synonyms; correcting spelling or grammar; and/or conditional branching.

AIML (Artificial Intelligence Markup Language) contains a simple yet powerful XML markup tag called . The tag is the symbolic reduction tag. This allows minimalism.

The tag invokes the recognizer recursively.

But it’s possible that this category may be invoked by another category, using the tag (not shown) and the principle of reductionism.

[CITATION] Symbolic deduction in Artificial Intelligence Markup Language (AIML)
Symbolic Reductions in AIML, by Dr. Richard S. Wallace http://www.alicebot.org/documentation/srai.html

13.13 Recursion, The Anatomy of A.L.I.C.E. http://publication.wilsonwong.me/paper/233282357.pdf

= = =

> http://freemind.sourceforge.net/wiki/index.php/Swing_applications

FreeMind is a Java application written in the Swing graphical toolkit for Java.

> http://en.wikipedia.org/wiki/Swing_(Java)

Swing is the primary Java GUI widget toolkit.