In the course of the last three decades, we've been hearing a lot about all sorts of A.I. (Artificial Intelligence) related developments and breakthroughs. Research and development in the fields of Knowledge driven analysis, Logic based thinking robots, Elimination based analysis, Expert Systems and Neural Networks have really evolved with time bringing some surprising results in their evolutionary history. More research is also being created to implement analysis and evaluation system based on combinations of these architectures to see if they can arrive at even better results. While these big undertaking take place, I believed it was about time that today's A.I. technology was finally available to the rest of us.
Memorium Professional takes you right into these domain by offering you a complete, interactive development system allowing you to create all types of A.I. related applications, create your own A.I. Engines and do your own Research and Development and create a user interface (or an entire application) giving other users the means to work with your knowledge engines and analytical processes. The best way to explain Memorium is to say it is an environment that allows you to define every aspect of A.I. to let you arrive at your own "expected" results.
There is quite a big list of features described here. The main reason is that Memorium Professional has to be complete enough to allow it's users to do their A.I. projects no matter what the type of A.I. it is and/or how big a project it might be. Let's take some time to review some of these feat1res to give you a better idea of exactly what Memorium Professional is all about.
These features have to do with the whole system in general. No matter what type of A.I. system you are trying to create or use, the features listed here will be available to you for all of them.
Availability Of All Popular A.I. Engines:
As mentioned above, there are many different A.I. Domains and fields that you can use in your A.I. projects. A special effort is made to make sure that all available methods are present in Memorium Professional. The Systems mentioned above are present. When I see new ones, or when I get requests for other systems not implemented, I will see to it that it is present as soon as possible.
Ability to create your very A.I. System From Scratch:
It is a well known fact that A.I. is all about Research and Development. As such, this features allows you to start with a blank page so to speak and define, from the grounds up, what you A.I. system is, how it works, why it was created the way it was created and everything you need to make it work. Once done, you can begin to use your system as you would any other already implemented system available.
Inter-Engine Relationship definition:
Since the latest trend in A.I. technologies is to combine different techniques together in order to evaluate logic and other means of reasoning. This feature will prove itself a very powerful one by allowing you to do just that. Define at different steps and under different conditions, which engine should attempt to solve the problem or part of the problem depending on the circumstances. You could even define that two (or more) engines should evaluate the problem provided the knowledge is defined in all used engines, in order to compare notes on the results provided by the engines.
Definition of A Complete User Interface To The Knowledge System:
There is an old saying that goes like this: "Knowledge is only as good as the means by which it can be retrieved and used.". A complete User Interface library is at your disposal to give the user the best possible user interface they can have in order to work with the engine and knowledge system you have created. You have the liberty to create the whole visual aspect of your system because I strongly believe that each domain of knowledge and analysis can benefit from a very standard and specific type of interface. However, today being what it is you can also create a more familiar type of user interface using the standard pull down menu system and the desktop metaphor as the basis of your system.
CEREBRAL (Cognitive Engine of Realistic Evaluation and Brain Reasoning Application Language):
Indeed, just when you thought that things seemed complete enough as it was. CEREBRAL comes along and gives you all the flexibility you need to combine the power of your created knowledge or other architecture based A.I. system with the efficiency and power of a full fledged programming language. Needless to say that this will give you even more power and flexibility when creating your A.I. experiments and full fledged applications.
All A.I. Systems limited by System Resources Only:
The simple version of this is the more RAM you have and the more disk space you have, the more elaborate your system can be. That is true no matter what A.I. technology your project may use.
Learning Machines have been used in many roles already. The classic example is a system that was created to learn how to play chess against human opponents and learn from the player's moves and strategies. These are evolving systems that can have a basis of knowledge to add to or start with acquisition rules and learn everything from scratch. Of course you could use learning machines to learn about anything at all provided you can feed it the proper type of knowledge. The features listed here are specific to learning machine type A.I. projects.
Fully Configurable Knowledge Organization:
This features allows you to define the inner organization of the data. Depending on the knowledge base itself, organizing it a different way for a certain type of research facility could prove faster for the system to arrive at it's conclusion. As such, you can create and change the organization of your knowledge and/or just change the way the system is to look through the knowledge in it's processing.
Fully Configurable knowledge Templates:
This is the means by which you can teach the system what it is supposed to remember by telling it what piece of information it should need to know about a given item into to completely define an object. Once defined, when the user tries to define such an item of knowledge, he/she will be prompted for the valid expected information needed by the system. Each branching level of a knowledge tree can be customizable this way allowing for very specific related knowledge to be created.
Fully Definable search Rules and Comparison Criterion:
Basically here, you can decide and define that for a given question, or a given set of expected results, which element you'll want to compare on as well as the type of comparison you would like to do. Likewise, you could easily define that at that point of the search, a user input is required in order to perform the next search/comparison operation. Think of this one as the decision and analysis recipe needed for the system to arrive at it's conclusion(s).
Ability To Let The System Ask Search Relevant questions:
As the system is looking for an answer to a question at some point in it's path, it may need to get the input from the user in order to be able to go on. Some analysis might require that while other may be able to do it on their own. It all depends on the knowledge itself and the way it's organized while processing for an answer.
The most popular and widespread of this type of system is the Prolog language. The main goal of these engines is to prove, or disprove a given statement. A popular nick name for this method is the Sherlock Holmes analysis method. Essentially, it takes all the different theories and rules and knowledge about a given problem, including possible solutions and causes to the problem. And goes about eliminating the solutions that do not fit in the full set of "validation rules" so to speak. What remains, as per Sherlock Holmes himself, must ultimately be, the truth. Here are the features that best help this type of system to do it's job.
Full Set Of Instructions To Define a Scene:
Basically, in a particular scenario, there are either people or objects that play a specific role in the current scene. Some or all of these objects might have some kind of relation to the problem to be solved. They could be part of the cause of the problem and/or part of the solution to the problem. When you are defining the scene, you don't know that yet. It will be up to the system to analyse what role each "actor" played. All depending on what you are asking the system to prove or disprove.
Ability To Define More Than One Scenario:
You see this all the time in the criminal scene. Investigators can follow more than one path (especially if they have more than one suspect to go on. and they start to theorize on what might have happened for each suspect. The system lets you do just that for each "actor" and you could even define scenario where two or more actors could have worked as a team somehow.
Ability To specific Analysis Paths And Rules:
For each scenario, you could specify what needs to be considered in the elimination process as in what elements of information are relevant to arrive at it's conclusion. Since you are eliminating Items until you arrive at the ultimate truth you can enter conditions, rules and paths that would prove each item right and do the same thing that would prove each item wrong.
Some of these systems are actually used in businesses. In a very general way, the goal of these systems is to help the user, or the system, arrive at the best possible conclusion about a situation. To do this the user needs to feed the system with decision making criteria, possible solutions to the problem, given everything a degree of importance based on what the decision to be made is about and let the system evaluate the best possible solution according to the information it was supplied.
Ability To Specify What The Problem Is:
If you want the system to arrive at a successful decision about your problem you need to have a clear way to define what the problem is to the system. As such, you can specify the type of decision you want the system to make in all it's details. What exactly you need to decide on. What are the main selection criteria of your decision. How important each criteria is compared to the other criteria entered, What the different items of decision are and the likes.
Ability To Tell The System What To Do With The Information:
As you are defining the problem. Parts of your definition will be about what the problem is. Other parts will be about what needs to be considered when arriving at a decision, what's important to think about so to speak. You can use a structure, much like the learning machines, in order to break up a problem into it's composition elements and break them up as needed for the system to know what type of information each part you specified is and how it should be treated in the decision making process.
Ability To Do "What If" Experimentation:
Essentially, you can change, at anytime the information you entered about a decision to be made and have the system reevaluate it's decision. You could change any aspect of the problem including adding possible alternatives, adding or changing the importance of the criteria, adding criteria all together and really explore different possibilities about a given decision to a problem.
These systems are typically purely data driven analysis, comparison and validation system designed to work efficiently on a narrow domain of expertise. Unlike some beliefs seem to state, the object of an expert system is not to replace the expert and his knowledge of a specific field. But rather to implement what the expert feels should be present as far as information and conditions for his specific field of expertise. These systems are usually regularly updated as the expert finds new methods and new information to feed the system to help it arrive at a more accurate conclusion. When new theories are proven, new theories are also implemented into the expert systems. As such, the following features are practically required in order to create an intelligent expert system.
Data Structure Definition and Validation Language:
Of course, since these systems are purely data driven, it's important to be able to define what that data is as specifically as the domain of expertise needs it to be. A complete and very simple language is available to do exactly that. it is inspired greatly by the Structure Query Language however a specific set of new syntax is present to accommodate for the very specific needs of Expert System based data definition.
Ability To Store Data and/or Knowledge Rules in the tables:
It's common practice to store data into tables when creating an expert system. It is, in fact, the best way to go. Others also use tables to store the analysis and domain specific rules of analysis and validation. You can do that here too and then just direct the expert system on what to do with rule based table contents and how they affect the rest of the data in the other tables.
The Ability To Control The Flow of The Analysis/Validation Process:
This can be achieved from the Data itself (specifically the tables that hold knowledge rules. Or from outside the database, in the environment. The main reason to do this could be, for example, to analyse the results of processing between processing steps to see what the first step created for results that are needed in the second step of the analysis and so on and so forth for however many steps are needed.
This is the newest of all base A.I. engines. It is based on the Biological metaphor of the neurons in our brain. This system is designed to process numbers. Numbers on input side will become numbers on the output side as well. The idea is to create neurons and connect them together (like the neurons in our brains is connected) with some type of connection rule(s) and validation and processing rules. That a neuron can use to accept data on one side and spit out data on the other side. Although this system specifically is numeric at it's roots, there's nothing stopping anyone from starting with text based information and generating human readable text output based on the numeric data generated.
Ability To Create Nodes And Node Connection Conditions:
As expected, because of the nature of a neural network based analysis system, the need to create virtual neurons and connections between them is mandatory. One of the many strengths of Memorium Professional is the ability to define these neurons as having a specific role to play in the analysis process. Not only does this give the user the ability to give a certain sense of organization to their neural networks. It also gives the ability to direct and control the flow of virtual synapse between neurons. A neural network needing the ability to multi process will also have that ability on a host system and/or network to do just that if needed, or simulate it on a single CPU system.
Ability To Create Different Types of Connections For Different Types Of Evaluations:
This feature is somewhat related to the previous one only this time you're working on the connections rather than on the neurons themselves. While the previous feature would allow you to define what each neuron is by themselves and in relations to other neurons in the network. Defining roles of a neural connections help you defined what the flow of values is in terms of what the value is what is expected to be done with that value and what your connected neuron is expected to generate from that value. Allow this level of definition really helps make a neural network complete and more functional.
Interconnection Of Different Types Of Networks:
I think this pretty much self explanatory. But I'll describe here a typical application of this feature. A neural network can be as specific (narrowed domain) as it needs to be. And by doing so, you are in fact accelerating the whole network. Hence the least amount of connections need to arrive at a result, the better, the faster too. Imagine if an A.I. system needed some very different domains to work with to arrive at a conclusion. You don't have to create an extremely large network to accommodate for all that. You could if you wanted to however. You could separate the independent entities into independent networks and create gateways or interfaces between the neural network groups to ease the processing required each step of the way.
After reading all these features the important thing to remember is that Memorium Professional Is designed for versatility and flexibility all in one. You're free to use existing engines and/or create your own either based on what exists or completely from your imagination. You are absolutely free to do with this software whatever type of learning, thinking, reasoning, evaluating, calculating logically, and whatever else you can thinking of in terms of simulating what you would define intelligence. All of which are available in an intuitive console based application that offers a complete command based environment, Standard User Interface that is both keyboard and mouse driven. All this in an effort to have the system work for you the way you do.
Memorium Professional offers you the environment you need to work in the many domains of Artificial Intelligence. Because of it's simplicity it's a great learning tool for new comers in the field. But don't let the simplicity fool you. This is a very powerful application the likes of which have never been seen before because of all the features it offers, because of the complete ability to create your own A.I. engine from the grounds up started with a concept idea and because it comes complete with all the tools you need to give your projects a user interface that users of your systems can easily understand combined with a complete programming language specialized in the fields of A.I. at your complete disposal.