Analytic Information Server™(AIS) is an analytic database designed to store massive amounts of heterogeneous data, upon which complex computer science algorithms are to be employed. The goal is to convert data, whose information content is a mystery, into data whose information content is understood.
The principle component of data analysis is the "Lambda". AIS Lambdas are executable objects which can operate alone or in larger communities of Lamba objects. A single Lambda object is like a simple function (albeit with possible persistent memory). A community of Lambda objects is more like a function or class library complete with persistent memory and even rudamentary intelligence (see Alice). Throughtout this documentation, the term Lambda will be used to include a single executable object as well a lerger community of executable objects. Upon execution, within an instance of the AIS engine, Lambdas execute at near native machine register speeds - equivalent and often exceeding the execution speeds of C programs. AIS is a database designed specifically for the easy storing and retrieval of Lambdas as well as more tranditional data.
Each instance of the AIS engine attaches to a user defined TCP/IP port, making each instance of the AIS engine a web analytic server. AIS Lambdas can serve their analytic reports directly to a web browser or to any other program, which can open a TCP/IP connection. Pure HTML, XML, or a proprietary binary protocol is supported; and, each of these protocols can be used to invoke individual Lambdas residing on available AIS engines. Furthermore, Lambdas in one instance of the AIS engine can invoke Lambdas in any other available AIS engine connected by TCP/IP. Each instance of the AIS engine can support multiple Lambda contexts, each running on its own machine thread.
AIS supports an ultra-fast register virtual machine with a proprietary Just-In-Time compiler (JIT). The AIS virtual machine is designed to support fast algorithm development as well as ultra-fast algorithm execution. The VM accommodates these two design goals by supporting four well-defined instruction sets.
AIS Lambda development begins with the generic instructions until the algorithm "proof of concept" is attained followed by conversion of the bottleneck routines into native, register, or vector instructions for ultra-fast algorithm execution. The AIS JIT's drawback is Lambda bloat. A great deal more information is saved about each Lambda than in a standard C binary program executable. This is not a terrible problem, since AIS is a high volume database, the data size dwarfs any possible code bloat. Another drawback is that Lambda invocation runs at approximately 50% of the speed of C function invocation - more information means there is a longer set up time to invoke an Lambda than a C binary function. This is not a terrible problem, since most ultra-fast algorithms must be code generated in linear layout, without too many embedded function calls, to avoid cache hits. For extremely fast algorithm execution, algorithms should fill up registers, L1, L2, and L3 cache with as few interruptions as possible.
Analytic Information Server™ is the industry's first mobile, distributed, Lambda oriented repository. AIS supports fast object repositories for storing of Lambda and/or object closures on disk. AIS object repositories support a basic associative memory access paradigm across multiple extents. In addition, all of the native file structures of the host OS are available to AIS Lambdas in a host independent paradigm. AIS Lambda can have very fast access to the host file system while being cocooned in their own OS independent environment.
Analytic Information Server™ provides a mobile runtime environment and a mobile persistent database. "Intelligent Lambdas" infiltrate each location of a distributed application, personalizing and adapting the application to each user's needs. It is no longer necessary to send user data from the client interface back to the server for lengthy processing. Users interact with distributed "info-nimble" application interfaces which perform in-depth analysis of the user's needs on-site, at the client. With its open and modular architecture, Analytic Information Server™ allows intelligent Lambdas to be easily integrated with Excel, Oracle, Java, as well as with existing in-house applications such as customer service, data warehousing, decision support, sales automation, and help desk.
Analytic Information Server™ supports a library of "intelligent Lambdas" which grow opinions and predict user needs by asking questions about the user's objectives that would never be thought of at the time the application was written. Each intelligent Lambda is a mobile software program that automatically performs a specific task, responds in a timely fashion to user feedback, and has the ability to learn. The ability of these Lambdas to modify themselves as they learn delivers unprecedented results to users in personalizing their application experience.
Analytic Information Server™ already boasts a number of powerful Lambda tools and more are being added every quarter. Mobile Lambdas can be written using the built-in Lisp and/or JavaScript compilers. Currently Lambdas exist which support: rule based semantic analysis, natural language parsing and analysis, datamining, relational datawarehousing for up to 500 gigabytes, rule based compiler construction, rule based decision support, multivariate regression, neural networks, case based reasoning, fuzzy logic, and genetic programming.
Inspired by the book, "Society Of Mind", Analytic Information Server™ supports a variety of statistical and machine learning algorithms, not just a single approach. The power behind LambdaServer™ is its unique capability to combine or blend opinions from all of the Lambdas and distributed copies of the repository into a single enhanced application experience. Using Genetic Programming, Lambdas actually compete with each other as they try to satisfy user requests. The Lambdas, with the best user feedback, play an ever increasing role in the user's experience.
AIS provides a number of built-in support services and advanced analytic algorithms such that any data analysis project has a considerable head start. These support services and algorithms, including both built-in functions and Lambdas, cover at least the following features:
Analytic Information Server™ supports multiple concurrent users, transaction rollback with no arbitrary limitation on the size of a transaction, password protected data security with automatic record compression and encryption, data recovery, and a runtime dynamic database schema at each location.
AIS is agnostic concerning programming paradigms, virtual machines, and programming languages. AIS provides a built-in AIS Lisp compiler. Multiple virtual machines are supported, in fact a parent Lambda can run on one virtual machine while its child Lambda can run on another. Also, an Lambda can serve as a virtual machine for any other Lambda. There is built-in support for functional programming, object oriented programming, rule based programming, and Lambda oriented programming. Also supplied is an AIS JavaScript compiler, and an AIS HTML/XML compiler.
AIS technology represents a significant step forward in the use of "Intelligent Lambdas" in integrating both existing and new distributed applications with "Adaptive Intelligence". Adaptive Intelligence allows applications to identify previous patterns and relationships in a user's interaction history and then use this new information to alter the application's responses for a more effective, personal user experience. It's the key to retaining customers and ensuring a greater share of their business over time by developing personalized relationships. Increased knowledge about users quickly translates to better customer service, more opportunities to cross sell services and products, and ultimately improved results.
An application with a personalized, responsive interface is compelling. People will return to a Web site which is different with each visit. Static web pages bore people. Students proceed at a faster rate when the application reconfigures as the person learns. Data mining is more accurate when the mining application adapts to feedback results. Kids retain interest in games which constantly reconfigure to match the player's skill level and past game experiences.
Here are links to all available AIS reference documents.
Here are links to AIS Built-in Functions grouped according to Data Type.
Here are links to the functions of the AIS Built-in Data Types.
AIS Lambdas are designed to be write-once-run-anywhere executable objects. This is accomplished via the virtual machine concept of software Lambda execution. Lambda virtual machines are designed to be mapped onto the actual host microchip at the server location, providing faithful Lambda execution wherever the Lambda may travel on the Internet. There are currently several virtual machines operating within Analytic Information Server. The DRM virtual machine uses a Dynamically typed Register Machine model to provide portable Lambda execution from high level dynamically typed instructions all the way to super fast microchip-level register execution. The DRM virtual machine runs in emulation mode during the testing and debug phases of Lambda development, and there is an AIS Lambda debugger available for Lambdas running on this virtual machine. During the final release phases of Lambda development, DRM virtual machine Lambdas are automatically converted to the NATIVE virtual machine on the host computer, using the just-in-time compiler. The NATIVE virtual machine is a faithful machine language translation of the execution rules in the DRM virtual machine onto the actual host microchip at the server location. NATIVE virtual machine execution runs at microchip-level execution speeds.
Here are links to examples using the AIS Built-in Functions. These examples illustrate how the AIS Functions operate on the different AIS Objects and in what context these functions may be used. These examples are grouped according to the different Data Types.
The sections which follow, show all of the functions of the BitVector data type at work.