ORION is an environment for modelling of analytic and experiential knowledge about a particular area. It uses an Active Structure Methodology to represent the knowledge. The network is undirected, and can transmit complex information, information which may potentially change the structure of the network. Information is processed at operators in the network, each receiving information at its connections, responding to that information and rebroadcasting it again.
The combination of an undirected network, operators responding to change at their connections, and the transmission of complex information permits the solution of many difficult and intractable problems.
Applications can be built on top of ORION to provide unusual flexibility in areas ranging from Asset Management, through Project Management, Design Analysis, Scheduling, to Customer Engagement, Business Interaction and Natural Language Processing.
Programming of algorithms becomes too difficult as we attempt to handle increased complexity. ORION is a non-algorithmic or state machine approach to the use of computers. It relies on the assembly of components whose interaction provides the necessary processing of information, in the same way as our other kinds of machines rely on the interaction of their components to perform their functions.
ORION In More Detail
ORION is a knowledge based software system used for the definition, analysis and solution of complex problems in almost any area where there is some combination of analytic and experiential knowledge.
ORION allows the user to easily build, modify and maintain a non-algorithmic software machine to reason about knowledge using tentative information. As the user imparts knowledge or ORION discovers it, ORION builds a network of operators which respond to change by interchanging information, and are capable of self-modifying their connections.
What are Complex Problems?
Complex problems are where many different factors interact and change in such a way that it is difficult for the human mind to fully comprehend the problem, let alone keep up with the changes and arrive at a solution. Such problems often have a structure that is variable over time.
Some areas where the ORION approach demonstrates a flexibility and capacity not shown by other systems:
Financial Analysis/Portfolio Management
Engineering Design and Analysis
Human Resource Planning
Resource Scheduling and Rostering
Customer Engagement and Business Interaction
Existing software systems are not very helpful since they demand that the user fully defines the problem initially or breaks it into small easily understood pieces before each separate piece can be solved. In many cases this is not possible because the problem loses its nature if it is decomposed. It is why a lot of complex problem solving continues to be handled by a combination of pencil and paper, spreadsheets and intuition.
ORION offers an integrated solution to the overall organisational and resource allocation problems that large organisations continually need to redefine and solve in a harsh and changing environment. ORION provides the link from business knowledge to operational processes.
The ORION approach recognises three critical points:
Complex problems are often best solved by using a partial-solution approach and applying the results to an expanding definition of the problem area, which still allows logical restructuring of the problem at any time. Separate islands of knowledge can coalesce as the description grows more dense and complete. ORION isn't forcing the user to state all the requirements up front. The whole point of the network is to avoid the necessity of a sequential description, something we find difficult to do for complex problems.
User knowledge is both distorted and constrained once it passes through another person and/or it needs to be organised to fit the requirements of a software system with its own inbuilt method of control. ORION allows the user to input knowledge directly using statements which they understand. In addition, ORION relieves the user of the task of organising their knowledge, permitting growth of knowledge in any direction and allowing the use of "soft" or tentative information.
The appropriate method of control for a particular problem cannot be known until the problem is described in detail. In ORION, it is the arrangement of the nodes in the network that controls the solution process, an arrangement of operators that grew as the problem was described.
At any time, the user can isolate a part of the model, study and refine its behaviour, then merge it back into the rest of the model, merely by setting and unsetting a few variables.
In some areas, text-based knowledge transfer is clumsy. Users can manipulate a graphical interface, with a building block approach to get the effects they require. The graphical network builder, using layers of drawings, provides excellent visualisation of what is being built, from the highest to the lowest level, using the same set of graphical tools.
Is ORION Ideal For All Problems?
Some problems are simple, well-structured and static. Often one only needs to perform elementary arithmetic on a relatively small number of variables. These problems are often handled well by a simple tool such as a spreadsheet, with the proviso that the spreadsheet solution usually doesn't relate well to the mechanisms that make the business run. The structure of the spreadsheet allows people to set up a simple model with the minimum of effort, but there are brick walls around what it can do, and maintenance can be messy.
Many problems involve high volume data processing rather than information or knowledge processing. These problems are probably best addressed by purchasing or writing a conventional software program. The difficulty of modification of the resulting program means that the program should only handle the high volume aspects.
The digestion and analysis of the resulting data would be a relevant area for a knowledge based system. Embedding "knowledge processing" into otherwise rigid high volume processing can make the organisation much more responsive to change.
A few problem domains (such as diagnosis in certain subfields of medicine) can be handled reasonably by purpose-built expert systems, where the method of diagnosis is little more than clicking through a checklist or working through a tree of possibilities. Under such circumstances, there would be little point in attempting a solution using the logical and structural flexibility or the potential for network growth in ORION.
ORION is quite capable of handling simple as well as complex problems; however, its knowledge network approach necessitates the use of reasonable computer resources. Because of this, it is easier to cost justify the use of ORION in more complex areas, particularly where tentative or speculative data is being used, or the user needs an interactive tool, simultaneously capable of complex analysis and user interaction.
How ORION Works
It uses Networks to represent Knowledge.
ORION works by accepting, analysing, storing and processing knowledge using a version of semantic network technology. This is a recognised technique for complex problem solving. The operators in the ORION network act as Finite State Machines and communicate with each other through the network along initially undirected pathways. The constant flow of information in all directions in a dynamic structure marks ORION apart from its algorithmic cousins.
How is Knowledge actually represented in ORION Networks
Consider the simple ORION statement:
PROFIT = REVENUE - EXPENSES
This statement is keyed into ORION by the user. The network control component of ORION will establish that it consists of:
Three variables, i.e. PROFIT, REVENUE and EXPENSES
Two operators, i.e. Equals and Binary Minus
The system will then store the statement in the network as shown:
What is important to realise is that the statement by itself has no "directedness", and neither does the network. Any of the variables in the statement could be found from the others, and the statement could be used as a test for equality.
The activity in the structure representing the statement is controlled by its logical environment through the EQUALS operator.
As more statements are added the network increases in size and complexity along with its ability to "understand" the problem area. The connections being established are providing the meaning of the problem. If tentative information is present, the addition of statements acting as constraints will reduce the range of alternative values.
As an example of a more complex use, the diagram shows a fragment of a Project Management or Strategic Planning model, where bi-directional interaction is occurring among, cost, time, duration and resource usage operators to control the existence of an Activity.
The Activity operator is monitoring its Start and Finish Date inputs to ensure its existence, and if existence is not possible, it will signal out of its control pin, potentially forcing the existence of another activity to take its place.
The network structure that allows considerable fluidity in the description of a project is made out of the same elements that make up the simplest arithmetic statements, and is using the same information transmission mechanisms. The network that represents the knowledge is visible, and can be traversed to audit particular effects.
What Happens When ORION Runs?
The process for direct use by an end user is:
The user nominates output variables (goals). Any variable in the network can be nominated as an output variable; it doesn't matter what statement(s) it appears in or where it appears within a statement, e.g.
Net Payment + Deductions = Gross Pay - (Gross Pay*Tax Rate)
Any of the above, including Tax Rate, could be output variables. Loops in the description are routinely handled.
The user provides values for input variables. Once again, any variable can be provided with input values, whether or not it contributes to satisfying the current output requirements.
The ORION solver then "finds" the desired outputs by searching the network or propagating information through it, using all the relationships which have a bearing on the goals. In the process, it also carries out all related analysis, where the operator nodes in the network provide the flow of control through the problem described by the network.
The results are made available to the user.
The user can close off areas to simplify the problem, then open them up and merge them back into the overall model again when the particular component of the solution is working correctly.
The above steps can be repeated with any combination of input/output variables without any change to the knowledge statements. The user will often not know what are necessary inputs. If ORION can not find an answer, it makes clear what is missing. The ability to view a problem from many different directions is what makes ORION a powerful modelling tool. By running the model several ways around, users can improve their understanding of the process or relations being modelled.
When run the user has "directed" the network to solve a problem. Up to this point the network is "undirected" or really just a passive repository of knowledge about problem areas that may or may not be related.
ORION will retain all valid information until it is destroyed by changing input. This "memory" is an important aspect when attacking large problems in that ORION does not needlessly recalculate or build new structure to represent what it already knows.
The operators in the network provide the correct phasing of the solution, in a complex way that would be very difficult for a programmer to comprehend, particularly as flow directions switch around in the model. Because everything is connected, the user can see what entered into the solution of the problem.
For scheduling/rostering and simulation problems, such as aircraft movements, there is a clearly defined overall flow of control, but the user can "jog", or single step the model, view the internal operations as the model runs, or stop it and examine any aspect of the operation in detail, using the Network Tools provided by ORION. ORION is general purpose, not a special purpose scheduling algorithm, so the description of the situation is richer, more complex and more subtle, leading to more realistic answers.
ORION combines a powerful direct search/solve technique with consistent reasoning about what it finds. These techniques allow it to attack unbounded and many-layered problems where nomination of a high level goal may lead it to seek hundreds or thousands of subgoals requiring many different methods of logical and numerical analysis.
There are three basic methods of information flow that ORION can use, Direct Searching where no information is present in the network, Dataflow where information is driven along network pathways, and Consistent Reasoning where there is superfluous but inconsistent information in the network.
In the search/solve process, ORION co-ordinates and manages many important techniques, e.g.
Twisting, turning and retracing as it attempts to move information through the network made up of active elements in an effort to find a path to a solution.
The propagation of alternative values through the network, allowing operators to prune values and rebroadcast, with the effect that complex operators communicate with each other to reduce the problem space.
The layering of knowledge in the sense that the validity of statements or blocks of statements can be logically controlled from any level and from any distance in the network.
Generation of possible results where it is not possible to reason away the possibilities without constructing and trying them. The backtracking is change image storage, so every change, including structural alteration of the network, is backtrackable.
Dynamic reconfiguration of the network, making and breaking connections under logical control. This changing of the network topology allows for more inferences to be made than is possible with operators remote from each other.
Network growth, by forming and testing new connections as part of a Generate, Test, Backtrack strategy.
Active simulation, where objects in the network are created, pass through processing stages, and are destroyed or recycled. This technique simulates the operation of a processing plant or job scheduler.
All these methods can be used to attack time series problems, where input/output is held in a matrix structure linked to the network.
The most powerful aspect of ORION is its generality in terms of analysis - whether it be structuring design equations or evaluating the best option for a portfolio or stringing items in a sequence. At any time, and at any point in the network, new aspects of the analysis can be added, because there is no starting and ending point as there is for an algorithm.
Problem solving can be started before the problem is fully defined. Results can then be applied to an expanding definition of the problem. ORION's general purpose nature means that it can handle the whole problem.
Knowledge is input into ORION direct using easy to understand statements or drawings, greatly improving the productivity of the problem solvers in your organisation.
No translation/organisation step is required. More complex problems can be solved because the ORION system automatically provides the appropriate problem structure and your people aren't bogged down in the "mud" of the problem, trying to see how to do half a dozen things at once so the problem will be solved correctly.
The resulting ORION knowledge base fits the problem rather than the problem being "distorted" to fit the software system. The description in the ORION language and drawing set provides the solution.
The ORION knowledge base can be "viewed" from many different directions during testing. In other words, there are no fixed input/output variables. Input/output definition is a dynamic run-time consideration. This flexibility is a direct result of not having to translate the knowledge into stack machine programs or directed Expert System rules.
ORION knowledge bases can be easily merged together to create an integrated corporate knowledge base. ORION automatically estabishes and maintains the connections.
Knowledge regarding a particular area need be stated just once rather than being repeated in (at times) hundreds of different programs in many different ways.
ORION knowledge is easily and quickly seen and changed by end users, so overcoming maintenance backlog problems and reducing errors. Even a simple spreadsheet can quickly become opaque in its operation as it grows.
Experts solve problems directly rather than working through intermediaries who aren't expert in the problem area.
The knowledge about the organisation, its plans, its goals, becomes general corporate property rather than residing in the minds of a number of individuals. ORION allows this knowledge to coalesce into an integrated whole because it has no predefined structure, only the structure of the analytical knowledge it is given.
"Knowledge processing" in the organisation allows for a faster and more intelligent response to change. Inflexible rules that are buried in a program or a spreadsheet are the antithesis of modern corporate management. Rules can never carry the subtlety that much decision making requires.
How Unique Is ORION
There have been many attempts over the last twenty years to create a computing structure, using the notion of wiring up active elements in the same way that electronic microcircuits can be wired together to create a complex circuit. When some problem area is being analysed, not many statements need be gathered together before we start to lose control of what it is that we are doing. Dealing with objects with existence and connections and accountable influences is easier than dealing with the sequential rush of a program. The analogy of real devices and hardwired connections starts to break down when we want to represent knowledge this way, as knowledge is slippery and is not directed to a specific purpose, so it is poorly represented by a structure with fixed connections and fixed directions within that structure. Complex problems are continually changing their structure as we come to understand them more, so using a fixed structure to make programming of a solution easy eventually defeats the purpose of finding an answer to a complex problem.
Most attempts at creating a network representation have been restricted to dataflow, where known values are propagated through the structure. Constraint languages provide an undirected network, and (usually) move integer ranges around that network to represent the domains that particular variables may have. A difficulty is that dataflow by itself is easily blocked by loops, and can only handle a small class of problems. For many problems, there is no value to start, because you are not even sure of the structure to use, or the structure will change based on what values you find, making the dataflow paradigm alone quite inappropriate.
ORION is intended for a very broad class of problems, typified by structural change, whether designing an aeroplane or a complex financial product, or steering a large organisation through stormy and changeable seas. It is not intended, nor is its mechanism suitable, for the high speed stereotypical program, where the structure is immutable and every action can be known and pre-programmed, and the data transformation is usually simple or simplified to make it feasible.
ORION does compete with some specialised programs which run a high speed algorithm on a fixed data structure, such as integer programming. In this area there is a crossover between high speed and dumb, and low speed and "smart", or at least trying not to be dumb. As the problem grows complex, high speed is of little use against infinite possibilities. Most complex (interesting, or at least hard) problems can't be fitted into an algorithm/data structure solution because the structure is too variable and segmentation destroys the essence of the problem.
The ORION system has many strengths:
an undirected network to represent knowledge
an integration of logic, numbers and complex objects
a language very close to the user's technical language
smooth switching between dataflow, searching and self-excitation to handle a wide class of problems
network machinery to change the topology of the network under logical control
What About Neural Networks
The similarity between ORION and Neural Networks stops at the use of networks. Neural networks are directed and static in structure, the changes in them taking place in the weightings in the connections. A problem reachable by dataflow within a static structure is within their grasp, but such problems are not at the knowledge end of the spectrum. ORION's network has connections which are modifiable by messages in the structure, which is antithetical to the operation of a Neural Network, except that the networks in our heads are also variable as they grow new connections. In one word - extensibility.