NeoCoreTechs - New Core Technologies
Applied Computational Sciences
The Definitive Source for Displacement Technology
Look for our repositories of open source contributions on GitHub
Robot IRA-1
The Relatrix:

The Relatrix is the worlds first Functor Object Oriented Database Management System (FOODBMS)
Using the theoretical underpinnings of a branch of mathematics called 'Category Theory', The Relatrix uses the functor morphism identity to allow random Key/Value collections to be overlayed with semantic information stored as identity functor relationships. Unstructured data can be related with any conceivable "has", "is a" or arbitrary mapping of relationships. Data is retrieved using 'Forgetful functors' that create new group homomorphisms presented as standard Java Iterators. More plainly, imagine that rather than being able to map keys one-to-one like a relational database you can map them through a function that adds more relevance. Once this 'identity functor' relationship is created, many set operations can easily be performed through Set Theory constructs such as 'Function Composition' and Category Theory constructs such as 'Colimits' using 'Commutative Diagrams' or 'Natural Transformation' as a knowledge join. Any Key/Value store can be overlayed with The Relatrix but it uses The Java Key/Value deep store BigSack (See tab above) as the primary durable storage mechanism. Building relationships is as easy as saying:

Relatrix.store([fromObject],"relates to",[toObject]);
and a query for that set is as simple as:
Iterator iterator = Relatrix.findSet("?","relates to","?");

and each iteration returning an array of Comparable[] keys of arity "?"=2 for your 2 "?" parameters in the findSet call.
The previous is just one extremely simplified example, there are a multitude of options for returning new sets using variations of the same simple query method calls. The target use case for Relatrix is robotic memory. Research is under way to use the sets of functors in Markov Chains to combine machine learning with The Relatrix to facilitate smarter robots. The code is in alpha stage with release to GitHub pending. A smart controller board with built-in cognitive capability is being used to power the IRA-1 Autonomous Underwater Vehicle (AUV) proof of concept platform which will attempt sensor integration and autonomous tasking using category theory.

BigSack:

BigSack is a Java persistence mechanism that provides TreeSet and TreeMap functionality with a small footprint and exabyte object serialization capability. Just about any Java object can be stored backed by a BTree and multiple levels of pooled tuneable cache with durability through undo logging. The target use case is any where large unstructured heterogeneous collections must employ transparent durability and persistence, as in a robot that collects sensor data. The BigSack can be used in much the same way as the TreeMap and TreeSet from the Java collections classes.
Features:
  • Utilization of memory-mapped file IO or file system IO controllable by property file entry
  • Data consistency and integrity maintained by undo logging
  • Full 64 bit file pointers for exabyte storage levels
  • Multiple tablespaces for improved performance
  • B-Tree indexing of individual entries
  • Ability to use custom ClassLoaders for object resolution
For more information and to view/download source code go to GitHub
Neovolve:

Neovolve is a Genetic Programming framework that uses unit tests as a fitness function to evolve programs. Using formal functional acceptance unit tests as fitness functions confronts programming from the purest set of criteria; that of specifying the 'proof' of the working program. As Alan Turing theorized, if you write the code that proves the program, you have after a fashion written the program itself. By specifying a complete enough set of unit tests and starting with the domain of possible operations, a genetic programming solution can be converged upon by statistical methods. As the complexity of our systems exceed the threshold of comprehensibility, such a framework would seem to be the future of programming. The name Extreme Genetic Programming borrows from the Extreme Programming paradigm by proposing a completely test-first design environment complete enough to allow the machine to devise the code.

Neovolve as an Extreme Genetic Programming Framework:

Neovolve is a modified version of the 'jgprog' Java Genetic Programming framework from SourceForge. Modifications include enrichment of the data types, function set, and addition of changes making it more amenable to developing solutions based on generic unit tests. The FIT testing framework was also integrated to vastly simplify unit test construction and provide a browser-based interface.

A major objective is for the unit tests to be transparent to the actual mechanics of the solution. We don't want the user to have to guess what might be necessary to solve the problem. In fact, we don't want the user to have to know anything about how to code the solution. We only want them to design unit tests and program as complete a test harness as possible. Neovolve will only ever know the values being tested and the type returned from the evolving code. As the code evolves, the results of running it with the values under test is checked against expected results. This process continues until all the tests are solved by the evolved code. Surprising , unexpected, emergent behaviour arises from the machine's attempt at optimal solving. Behaviour which often exceeds the parameters of the objective tests.

Click here to see an actual solutions evolved from unit tests.

Click here for more details of the overall vision.

GOOeFloys:

They belong to the flocking Artificial Life creatures variety, sharing with them the social tendency to stick together, and the lifelike emergent behavior which is based on a few simple, local rules. They differ from most other flocking Alife animals by having the following properties:

  • Predation (they must survive against predatory GOOeFloys, or survive as one)
  • Ability to evolve (using the Genetic Algorithm).
  • Potential individualism (each can possess a different personality through evolutionary processes)
PowerKernel:

A parallel computing framework written in Java that allows multiple cluster nodes to assist in evolving genetic programming solutions. Virtually any TCP/IP based network can function as a parallel computing cluster using the PowerKernel and Neovolve has been parallelized using it.

The PowerKernel uses a "Tuple Space" paradigm to provide a simple retrieval mechanism based on class template matching and a simple set of operations. By providing a global homogeneous memory buffer and implementing a set of cluster-based operations, parallel computing can be achieved. Some notable features are barrier synchronization and cluster node provisioning through zero-time class loaders. A principal difference from many clustering offerings is the ability to perform less-than-boulder-size granularity of computational operations.
The target use case became providing a content management framework with clustering built in rather than added as an afterthought. To that end a number of 'front ends' were developed to allow use of the cluster including SOAP based Web Services and dynamic forms submission supporting the classic MVC model.

Click here to learn more about the PowerKernel and PowerSpaces clients
Click here to learn more about the PowerKernel server
Click here to learn more about the Overall Architecture vision


NeoCoreTechs
Portland, OR 97217
Phone:(503)235-4284
Fax:(815)550-1014
info@neocoretechs.com
http://www.neocoretechs.com

Copyright © 2001,2013,2014 NeoCoreTechs