MONDO FAQ
What is MONDO?
MONDO is a general architecture for encoding, modeling, and processing information.
MONDO is especially designed for building information from human-readable text
files and then doing sophisticated interactions with that information.
MONDO uses an object-oriented information model, which enables it to
build and work with both document-oriented information and also
general and complex domain models. MONDO is the result of evolving
and integrating descriptive markup (like SGML/XML) with object-oriented
information modeling.
That sounds like a lot?
Well, it is, but MONDO cheats: it reuses as much as possible of other technologies and designs. MONDO uses object-oriented information modeling for its models, common design patterns for its interfaces, SGML or OML for its document markup, and common high level languages (Java, Perl, Smalltalk, etc.) for its reference implementations. MONDO is doing little more than aligning two major technologies (document management and information systems) and then reaping all the functionality that comes from that alignment.
What can I use MONDO for?
MONDO can be used with many different types of information projects. The following are some of the current or possible applications of MONDO:
- Structured Document Management
- Object Serialization and Interchange
- Hypertext
- Literate Programming
- WWW Sites
- Program Properties and Localization
- Data creation and backup for Information Systems
Some of these applications may sound repetitive. That is because they are, but in the past most of the applications have used completely different tools. MONDO uses a single architecture and provides core functionality to handle the common needs of these applications.
Why should I use MONDO over other technologies?
You should only use MONDO if it fulfills your current and future needs better than other solutions. MONDO has a good amount of functionality, and, even more importantly, it integrates well with all the techniques, functionality, and tools provided for doing object-oriented information systems. MONDO implementations will provide object visiting, hyper-retrieval, queries, validation, introspection, and metamodeling. Other object-oriented tools and frameworks can provide:
- UI Presentation and Interaction with the information
- Database Storage
- Sophisticated Queries
- Distributed Execution
- Information Model viewing and editing (e.g. UML)
Because MONDO works with general object models it can integrate with the tools that provide these types of functionality.
Why should I use other technologies over MONDO?
There are many good technologies available for structured documents (SGML/XML parsers, converters, formatters, and other processing tools) so if your information fits with those technologies' capabilities they will better serve you. MONDO is an evolutionary step when you need more general information modeling capabilities and MONDO will still cooperate with these other tools to use what they do best..
Similarly there are many good tools for encoding and transferring information in machine-readable formats. MONDO is only a step forward over these tools if you need programming-language independence or readability/modifiability for humans.
How does MONDO relate to SGML/XML?
In one sense, MONDO is a generalized application of SGML/XML because MONDO can use SGML as the encoding format for its information. But MONDO is the result of evolving and integrating the concepts from descriptive markup (like SGML) with the concepts from object-oriented information modeling. In that sense, MONDO is a next generation of SGML that can more easily handle general and complex information models as well as document-oriented models. There is a specific MONDO & SGML FAQ at:
http://www.chimu.com/projects/mondo/sgml_faq.html
What language is MONDO in?
None, Java, or Many depending on what you want to know. The MONDO architecture is programming-language independent. MONDO describes components and functionality that could be implemented in any programming language. MONDO is easier to implement in programming languages that use similar concepts (especially OO concepts) and have capabilities for metamodeling. The first MONDO reference implementation is in Java and other implementations will be in Perl, Smalltalk, and as many other languages as possible.
MONDO also uses language-neutral text representations of information, and parsing is either extremely easy (for OML and well-formed XML) or there are already multiple tools that provide more complex parsing capabilities (for DTD-valid XML and SGML).
How much does MONDO cost?
The MONDO architecture will be completely free and publicly available. MONDO reference implementations are also planned to be free for Java, Perl, and Smalltalk. Tools that work with object-oriented programming and with MONDO implementations are sometimes free (e.g. Java, Perl, and Squeak themselves) and sometimes expensive (high-end object databases).
What is OML?
OML is a simple Object Markup Language very similar to SGML/XML. OML is a possible front end to MONDO and supports representing complex information in textual files. See the OML FAQ at
http://www.chimu.com/projects/mondo/oml_faq.html
But you can use SGML/XML with MONDO?
Yes. The current MONDO implementations provide an SGML/XML application that will work with MONDO to produce either grove-oriented information models or more general models when used with DTD/Element annotations.
Where do I get more information about MONDO?
The main MONDO site is at:
http://www.chimu.com/projects/mondo/
How can I help with MONDO?
Glad you asked. We are hoping to make MONDO capable of working on many different systems and for many different tasks. Please look at the MONDO design and give feedback. Think about applications MONDO may be good or bad at, or about new applications that you would not have done with available tools. Try out MONDO on a particular project for document processing or serialization or object-interchange or literate programming or what ever you can think of.
Or if you want to work with the core of MONDO, try porting MONDO to a different language. Or help to extend the MONDO specifications and implementations to support sophisticated queries or document flow objects. Maybe add general functional (e.g. LISP) scripting capabilities into a builder. Please beg, borrow, and steal great ideas from other applications and see how they integrate into MONDO.
MONDO is meant to integrate the best of everyone's work in
information processing techniques and make it as freely available as possible.
We want MONDO to be a giant leap for an object and a small step for mankind.
|