Animotron
Animo language
A language based on ideas from linguistic, neuroscience, algebra and XML database. It is a declarative representation of information relationships and processing agreements.
RDF, SPARQL, OWL, XQuery, XSL and XML Database are well known technologies, but there is no single glue to put all this together. The main advantage of these formats is flexibility. However, that leads to many different representations of same structures (e.g DocBook, TEI and etc). The problem of complexity is similar to C libraries, in that we must operate at the level of the data structures. After C, came Java with its standard libraries, a language which programmers can use and which can be easily understood by other programmer. The Animo language aim to create universal language for people (not only programmers)to speak.
Each time we start new project, we have to choose which technologies we should use, and how to put them all together. We are also concerned with separating data from code, and constructing tests to assert the behaviour.
Animo solves these issues and much more. With Animo, at design time your are not forced, for example, to have to choose top-down or bottom-up processing, it can be controlled by instructions. Default evaluation strategy similar to LISP. The Animo language cover PROLOG's use cases.
The language incorporates many proven features whilst also incorporating some new ideas, with the aim of making programming more natural for humans. The eventual goal is to create a bridge between native languages and Animo structures, computer programming style should evolve to become a dialog with the computer and as such dialog constructs must be a part of the language itself. Currently the language constructions are based on English-Prime concepts, so you can write your code as through writting a book or specification.
Features:
- Integrated database space as the global context for language processing.
- Processing flow and Context mix-in
- IS-HAVE relations build into the data model
- Data and code merged into one model
- Pluggable architecture: data, models, code and languages (evaluation of different languages)
- Type safe reference resolving
- Animo language injections to XQuery, XSL and others
Merging code and data into one topological space
Processing model
The request processing
[input] -> sense functions -> (context, processing flow) -> processing flow(context) -> [output] where sense function detect input information and transform it into processing flow and context.
Evaluation contexts
The processing flow element have access to several contexts: local, stack, global and flow.
- local is context that have highest priority;
- stack is context's train. The evaluation result pushes local context to stack;
- global context is documents stored at XML database;
- flow context is processing line until current position.
During evaluation context can be transformed to processing flow, or added to context. Result of the evaluation is sent to context.