Primus Artificial Intelligence Framework
This post is old and obsolete. The project no longer exists on GitHub, and all links have been removed. For more current information on the Artificial Intelligence efforts of Asher Wolfstein, see this blog post.
Primus is a collection of libraries/components that are expected to work together to form a general artificial intelligence server/runtime environment. Deployment and application propositions include mobile robotics, information processing, pattern recognition, and social interaction simulations. The components are language-specific, but the framework itself is not language-specific. The framework is meant to include support for other intelligent agent software interfacing such as common computer vision libraries, simulation environments, natural language processors, external neural networks, and so on. This framework is meant to run in an environment that can support each component independently where each component communicates or interfaces both internally and externally through messaging mechanisms such as sockets, serial I/O, HTTP, TCP/IP, RESTful APIs, XML-RPC, etc.
NOTE: This repository of Primus is the current fresh repository, primus (1) and FalcraftCMF (asherwolf) will be deprecated and deleted as soon as this repository is caught up.
Falcraft PHP Module
The Falcraft PHP Module encapsulates various data structures and algorithms that are found in many artificial intelligence systems. It offers many tools, such as pure PHP implementations of type checking, graphs, sets, lists, networks, events, autoloading, and interfaces to other useful PHP libraries (included via composer). It is meant to be run as a CLI daemon on top of a non-blocking socket server infrastructure, such as http://socketo.me. For more information consult
http://systemsarchitect.net/multi-threaded-socket-server-in-php-with-fork/, https://www.christophh.net/2012/07/24/php-socket-programming/, and [ http://devzone.zend.com/209/writing-socket-servers-in-php/] Zend Developer: Writing Socket Servers)
For interprocess messaging, look further into the ZMQ library. This is planned to be used in Primus 2. (A working installation as an extension of PHP is already working on our development machine) http://zeromq.org
Other potential interfaces exist as well, such as accessing a control panel via the browser and then using WebSockets to communicate to the service.
For more flexibility with PHP, and to delve into possible embedding situations you can consult the book http://www.amazon.com/Extending-Embedding-PHP-Sara-Golemon/dp/067232704X/ref=sr_1_1?ie=UTF8&qid=1427573401&sr=8-1&keywords=embedding+php.
All the code developed for Primus 2 coming from AsherWunk is under the MIT License. This is a VERY flexible license, enabling one to use, embed, link, propagate, etc for both commercial, personal, and non-profit use.
It’s funny actually. When I was a teenager I vowed that I’d never write open-source code. I wanted to be paid for all my programming efforts no matter what they were. My friends J. and my adopted brother kept telling me that my position was kind of dumb. But I was intensely intent (hee) that I was going to be paid for anything I program. Well, fast-forward 14 years (that’s right), and I’ve realized exactly what this open-source thing is all about. The idea is very attractive, and I can still be paid for my programming efforts. There are many advantages of open source, including collaboration, so, why not? Funny thing huh?