Last modified: June 12 1998

Object-Relational Language
Introduction
Universal Financial Object
Mind Interchange Language
Why ORL?
ORL Concepts
ORL News
ORL Samples
Currently, complete ORL specifications aren't available yet. Anyway, in you are interested, just become our partner and obtain full information in terms of our cooperation. To do so, just drop e-mail with your suggestions to
Anton Kolonin.
Introduction
ORL is not just a language. Like for its parents, Smalltalk, Lisp, Prolog and SQL it is just a way of doing computing. That means, to use full power of ORL you need special software engine or even special computer. At this moment, C++ based engine for Windows is nearly ready to launch. Java based engine is coming and C++ based UNIX engine would be fine in future.

History
1987-1993. Oleg Vlasov's BOOL language at CTC Company, Chita, Russia
1993-1995. Anton Kolonin's visual D4 engine and language at CTC Company, Chita, Russia
1994-1997. Leonid Kouzine's object-relational mapping engine at FTC, Novosibirsk, Russia
1995-1997. Anton Kolonin's objective engine at STS Company, Novosibirsk, Russia
Concepts
The main ideas of ORL language are
Language semantics is nearly equal to underlying engine semantics. That means, no any "compilation" is needed to put source code into executable format or in other words, source code is equal to p-code.
ORL statements read from any stream (local file or remote URL) turn in ORL objects in memory and might be easily stored back into ORL statements into another stream. That is, no any additional protocol is required to communicate one engine with another on the network.
Each system engine itself is nothing else than ORL objects preloaded in memory at system startup. So, it is welcome to inherit system-defined objects features or even override system object's methods.
Object is similar to Process and Class is similar to Function. One difference between object and process is lifecycle (creation-destruction or startup-shutdown).
ORL engine functions
Data transfer between user-defined data structures and regular data sources as SQL databases, spreadsheet tables or flat files, etc.
Transparent manipulation with such an entities as object, class, method, process, input-output form, access right. Those objects are basics to specify another user-defined objects, classes, procedures, forms etc.
Object-oriented "object-attribute" and relational "entity-relational" approaches support for objects/entities manipulation.
Distributed referential integrity control.
ORL engine architecture
Engine is just a set of "system-defined" objects and methods.
Engine objects and methods structure is defined within ORL language.
Engine basic classes
Data classes
- Value
- Reference
- Collection
- Object
Functional classes
- Class method or "free-lance" function
- Data access operator within any method, function or other complex operator
- Data access query within any method, function or other complex operator
Metadata classes
- Class (just a class of "class" objects)
- Attribute
- Domain
ORL engine implementation
Intended to be realized in three ways
Single-user workplace
Single-user client workplace
Multi-user client-server with full application server features and transaction management
Originally written in Microsoft Visual C++, thought to be easily moved to Java. Communication support is Remote Automation/DCOM or TCP/IP sockets.
Object-Relational Language
Language semantics is adequate to underlying engine semantics.
Language allows manipulating with objects in regular object-oriented notation, but object access is powered by extended relational notation.
The basic entity for language and engine are not "class" but "object" - each class is just a regular instance of basic class "class" and all objects in system are instances of class "object".
Merging object-oriented "CLASS.METHOD" and relational "SELECT/UPDATE TABLE WHERE CONDITION" notations allows to perform any manipulations with any set of objects, say "TABLE(CONDITION).METHOD" or "CLASS(CONDITION).SELECT/UPDATE" .
The very basic elements of language are
Value
Reference
Collection
Object
Only one real language statement is "Query". What is going on during file input, is just direct translation of input file characters into query object and running such a query. In it's turn; query itself creates, modifies or even objects in memory.
Most important subjects of query processing are
- Constructor of method or query for another objects, classes or methods creation, modification or deletion. Method and query both include
- Conditional operators to perform object selection or conditional processing
- Direct action operations to perform object modifications
- Constructor of new class with
- Attributes definition
- Methods definition
- Object of known class constructor with
- Valued attributes values
- Queries pointing to another objects in references and collections
News
At this moment we're working on
Distributed peer-to-peer client-server exchange (
Anton Kolonin)
Powering smart database support for SQL server (
Leonid Kouzine)
ORL-based Input/Output fomrs processor (
Anton Kolonin, Roman Axenov)
MDL/MIL extension of ORL for AI purposes
Artificial life WorldWideMind project (Anton Kolonin)
Samples
MIL (mind interchange language) of artificial ethics rules
Some abstract business system application design
Any names or products referenced are trademarks or registered trademarks of their respective owners.

Object-Relational Language and Universal Financial Object are trademarks of ProPro Group


Mind Definition Language and Mind Interchange Language are trademarks of Anton Kolonin

This page is designed by
Anton Kolonin