Current minor codebases, sorted alphabetically

  • Minor codebases are internal software we have written since writing the internal codebases. Several minor codebases are subsystems of internal codebases and have been developed separately for ease of development, but will probably be integrated eventually.


A 211-like service
This is a system to aggregate all the resources available, similar to the abstract-city-resource-collector, but also I would imagine intended to use an IVR (interactive voice response) system to help link people to such resources by phone.

3d Model Library

A library of 3d models
The purpose of the 3d model library is to cache properly licensed models for inclusion in other code and projects. For example, film-making, video game development, world simulation, words-eye, all of these endeavors would benefit from such a repository. There are obvious repos, such as the Google 3d Library. This then provides tools for converting such models to more open source friendly formats, such as .blend.

3d Scene Reconstruction

Structure Reconstruction from video
There are many world sites that would be nice to visit, but which many people may not have the means to do so. Also, for historical simulations and such, extracting models of the sites from freely available video from the web would be nice. Using freely available tools, we are assembling such a toolchain.


Integration of 3T planner into FRDCSA
Right now integration is somewhat limited, although it allows us to invoke the planner and try on a few different test domains. 3T is an incredibly expressive and programmable planner, unfortunately so much so that we've had trouble understanding it and how to use it.

A/B Testing

Extend Mojolicious/Catalyst w/ testing better variants of content
Add support to Mojolicious and Catalyst for this: "A/B testing (also known as bucket testing or split-run testing) is a user experience research methodology.[1] A/B tests consist of a randomized experiment with two variants, A and B.[2][3] It includes application of statistical hypothesis testing or "two-sample hypothesis testing" as used in the field of statistics. A/B testing is a way to compare two versions of a single variable, typically by testing a subject's response to variant A against variant B, and determining which of the two variants is more effective.[4]" -

Abstract City Resource Collector

Tool to spider the internet for services available in a given location


Tool for scholarly pursuits
This tool provides a set of helper functionality for conducting research, such as correctly parsing citations in documents. One could think of it as being related to, Google Scholar, and other systems that deal with the world of academic resources.

AceWiki Extensions

Similar to EOLAS / ReasonBase, but uses AceWiki instead of MediaWiki


Integration between Attempto Common Lisp and FRDCSA
ACL comes with a rather featureful emacs Lisp interface, which we intend to emulate here.

Action Extraction

Generates action semantics for the world from experimentation and text
A world's action semantics consists of the actions and their preconditions and effects. There have been several attempts to extract these automatically from text. Some of these are available for download. But in order to use tools like suppose-suppose (which searches all moves ahead to a given depth to avoid blunders), we require the action extraction capability.


Practical Reasoning System
Precursor to the Free Life planner, implements most of what is mentioned here:


This has been superceded by the execution-engine. Please incorporate the materials from here into that.

Adulting System

Helps with the (sometimes mundane but) necessary tasks of a responsible adult
What are most pressing executive functionality we are lacking? This system is related to many other executive skills systems in the FRDCSA, and is basically a container for some of them.

Advanced TTYPlay

Plays back terminal recordings, but with more control
This can pause, fast-forward, do meaningful jumps to things like the next terminal output, rewind, etc. search!

Affordance Interface

Quickly list affordances (uses) of a particular object or type
This is an emacs interface which queries the KNext parse of the British National corpus in order to quickly list actions, facts, etc that can apply to that particular object or type. For instance, when querying the type "car", here are some representative examples of the kinds of items returned: does-approach does-arrive does-belong-to-someone does-break_down does-come-to-a-halt does-crash does-drive_off does-move does-pull_up does-run does-slow does-start does-stop does-undergo-a-delivery does-undergo-a-purchase does-undergo-a-theft does-undergo-a-use does-wait has-a-back has-a-boot has-a-door has-a-driver has-a-floor has-a-front has-a-length has-a-rear has-a-roof has-a-seat has-a-side has-a-sound has-a-top has-a-value has-a-wheel has-a-window has-a-windscreen has-a-wreckage has-an-end has-an-engine has-an-interior has-an-owner has-control has-headlights has-wheels is-armoured is-beautiful is-black is-broken-down is-clamped is-competitive is-damaged is-dark is-driven is-found is-heavy is-hired is-in-a-country is-in-a-garage is-in-a-road is-in-an-area is-in-front is-in-the-world is-nice is-on-a-road is-on-fire is-oncoming is-open is-parked is-powerful is-red is-secondhand is-seen is-serviced is-stolen is-stopped is-unmarked is-white is-yellow


Tools to access the Andrew File System (AFS)
The Andrew File system is a complex filesystem used by many academic institutions such as CMU, and has support in Debian. This tool help us to locate interesting resources on the AFS, and manage some of the peculiarities of the fs.


Multi-agent systems, tools and resources
This system attempts to integrate various information on intelligent agents, particularly those created by unifying various modal logics, such as doxastic, deontic, alethic and so on. There is also a situation library to develop and test agent responses to tightly controlled repeatable scenarios.

Agent Attempts

A collection of attempted intelligent agents
This tool houses a variety of prototypical intelligent agents we have developed used in various other FRDCSA projects, including parts used by BDI agents, vger, prolog-agent, and FLP agents.

Agent Smith

FRDCSA self-replication
Agent Smith replicates the FRDCSA from a given existing instance of the FRDCSA. The user provides agent Smith with a configuration file containing credentials to log onto a remote system, then an intelligent agent with remote execution begins installing FRDCSA on the remote system. Right now, it assumes the target system is a vanilla version of the same Debian version as the source system, however, when the agent oriented aspects are further developed, it should be able to handle a wider range of target systems. We are experimenting with different agent oriented programming technologies until we find one that works. There is partial support for SRI's SPARK platform, but ideally prolog-agent would be used.


Container project for an intelligent agent to help with construction of our AI
There is currently not much to this project, just the beginning of a set of Prolog facts/rules for completing our ai. Evidently it was superceded.


Attempts to extract regular information from non-binary files
AIE accepts any non-binary file as input. It tries to find a repeating sequence in the file and then generalizes a regular expression to extract the information that varies within the repeating structure.


A game engine that integrates a Prolog reasoner
We wanted to develop an A.I. testbed to prototype different agents, all the while using a game engine for the environment. The idea was to build a variety of games using this engine. The key aspect is integration of SWI Prolog with a C++ game engine. There are various limitations to differing integration approaches, especially limitations on how to have players / users install the "game", that have limited our progress. It remains an interesting / tantalizing possibility.


Perl Go-ban implementation, for use with CHAP2 / RKF
Not much progress here, except a board representation. The idea is to mine using nlu the Go / Wei-Qi literature, and apply to the game of Go, so as to calibrate the nlu system.


Free/libre Emacs-based Machine Translation system


An AI cognitive agent designed to exhibit symptoms of ASD
The book "Computational Autism" details some experiments in programming intelligent agents that have similar cognitive patterns to people with Autism Spectrum Disorder. AIsperger is our attempt at doing the same.

Alexa Integration

A working interface between Alexa and FLP
Allows voice control of FLP from alexa, as well as push notifications from FLP using alexa's voice.


I used to know what this system did, but I no longer remember


Interface from FRDCSA to all things AM (as in Lenat's AM program)
Integrates FRDCSA to am-utexas Prolog reimplementation. Also links to AM documentation. Will contain all of our programming interfaces to AM eventually.

Analysis Engine

System to analyze our planning options
This system takes an adversarial planning approach to resolving real-world problems based on modeling of cause and effect relationships. So it is useful when one has to choose the lesser of two evils, a situation that frequently occurs to the poor, etc.

Analytic Environment

Counterpropaganda tool
A recent request for grant proposals targeted systems that could mitigate the effects of "fake news." So we submitted a proposal for the FRDCSA Project designed to address this - "This project leverages 20 years of artificial intelligence research towards providing readers with at least 25 counter-propaganda analysis tools, including logical fallacy detectors, evidential reasoners, shared knowledge bases, text to logic pipelines, text paraphrasing and rewriting tools, news analysis repositories, fact extracting and checking, and a peer review capability."


Contains all aspects of android development and the Android FRDCSA client/server systems
This is a simulator of the android end of the FRDCSA client for walking us through tasks, and a whole bunch of other things, like speech recognition and barcode recognition.

Android FRDCSA Client

Make Android accessible from FRDCSA
Currently just consists of a script to pull SMS messages. Outdated.

Anomaly Detection

An anomaly detection system
Related to the "nonrandom" project. Intended to learn expectations of various events via , and then to determine when anomalous events occur. But, more precisely, will emulate other anomaly detection systems. Has many use cases, such as home security, fraud detection, etc.


one-time pad generator and encrypted n-way communicator


Automatically extracts PLT tests from executing SWIPL programs
This system uses some goal expansion code written by dmiles in order to extract Prolog calls, and then memoize the results, into PLT test files. The idea is you run the program you want to build tests for (in order to help determine regressions, or recognize improvements) and the test cases are written out. Works well enough for now for simple programs, but has some loading issues for instance when run on FLP or logicmoo.

API Learner

Learning coding libraries through operator learning and representation
The goal here is to use iaec / sayer / suppositional-decomposer / entity-typing / etc to automatically infer argument types and other constraints automatically for APIs, as well as the relationship between the inputs and the outputs of the api.

API Manager

Central dispatch w/ caching to different Web APIs
This is primarily used right now with Free Life planner's world model mashups. We need the ability to query services and to understand what to expect from them. It is related to api-learner but is not based on induction.


Cleans text input
Consider a specific string as input. APT works by allowing the user to define a number of text processing functions that accept a string and return a possibly modified string. APT will loop, "firing" applicable functions until either no more modifications occur (idempotency), or a timeout occurs (this inherently avoids some of the problems with the bad worse case running of certain regular expressions we experienced on certain corpora). The user specifies a dependency chart of functions and applicable functions are those which have their dependencies met.

Archives Manager

Survivability and continuity plans for personal research
With projects such as FRDCSA and picform, there are concerns that should their primary authors die, the work would go abandoned, undisemminated, etc. Archives manager therefore allows the backing up of research to your friends computing environments, along with plans for dealing with the death of the primary author.

Argument System

Abstract argumentation / argument mapping framework
A hub of argumentation research. Various Prolog implementations of Abstract Argumentation Frameworks, various argument mapping software systems and notations. A prolog database of various common arguments in relation to FRDCSA and politics. Systems for generating persuasive argumentation.

ArXiv Spider

This tool is probably redundant since they've made their repo available now. Anyway, when the FRDCSA first started I spidered most of researchindex, and looked for a way to find-or-create the various tools mentioned in the papers. That is the role of system-implementor / iaec now - to take a paper, and try to reimplement the software mentioned in the paper semi-automatically.

Assumption Junction

System to track assumptions and consequences, as moves in a dialog game
A project tries to map out beliefs as moves from an initial blank slate, and a belief in the initial blank slate is of course a first move?


A system that does world knowledge enrichment + ML to predict market behavior


Attempts to get AI going
Consists of honest argumentation regarding the insufficiency of various methods of trying to boostrap the FRDCSA ai, like a refutation table, as well as some proposed angles that have a higher chance of success.

Audience Message Handler

Communicates between audience and the user
Ideas have been taken from the book "Take Back Your Life: Getting and Staying Organized with Microsoft Outlook". We have implemented their model of dealing with messages, notifications and interruptions. This system handles that implementation and also the task of alerting the user to important information contained in messages. As such it is highly interrelated to the email priority classifier and the rest of the audience system.


Automatically configure and build software
This program builds software, using make, finds the appropriate libraries, etc. loads them and then installs.


Create CYC bindings for as many programs as possible
Systems like KM, daydreamer, etc. This hub-spoke architecture would be a way to "information fusion", if I'm using that term correctly. I really think ai is the result of an information theoretic sufficiency condition. I'm looking through all the wonderful programs I've collected over the years, trying to think what more to do with them then package them.


Automatically configure and build software
This program builds software, using make, finds the appropriate libraries, etc. loads them and then installs.


Data driven system to learn how to make packages
Auto-packager takes existing Debian packages and their orig.tar.gz files and uses this information to construct a set of rules for packaging software.


Form-filler and automated workflow for scanned paperwork
Does Speech Act Classification on each senttence to determine the kind of information being asked. Uses a KB of personal information to form fill. A WIP.

Automated Legacy Testing

Bring legacy Perl systems under test automatically
Uses system::Table to identify dynamic module and function dependencies, and then wraps most functions with sayer using Hook::PrePostCall to memoize function inputs and ouputs (in the same way as aop-swipl does) to then generate test cases.

Backup Manager

Assists with FRDCSA project backups
Similar to data-manager.

Bash Alias Generator

Read bash history for patterns, proposes aliases
Speeds up CLI usage through creating aliases for common tasks.

Behavior Trees

Prolog-based Behavior Tree system that integrates with FLP/LOGICMOO
Before plan-monitor was written, we created this system based on Simularity's SimGen BT system, as described here: Ran into some showstopping issues, before switching tack to plan-monitor. Yet infrastructure remains should for instance logicmoo's Episodic Memory planner be finished, for Prolog-based BT integration, and more, since Episodic Memory planner goes beyond mere BTs.

Better Locate

A faster implementation of locate
When making multiple calls to locate, it may take a while. Here we take an index based approach using Namazu for now as opposed to grepping through large files. Our approach has issues that need to be resolved, hopefully by studying exactly how to formulate searches with Namazu.

Bill Tracking System

Manage bill payment
This is really too specialized of a domain for a minor codebase. However, it will be nice to have the resources organized locally. We are nearing completion of the most straightforward implementation of planning and scheduling using ai planners, SPSE2, and so on. However, advanced features, such as approximate lengths of time for task completion, replanning, etc, are not implemented. Nevertheless, it will be useful to plot out the basic structure of bill due dates and amounts and feed that to the planner. When combined with contract work, it will make it easier to plan out work and to make ends meet. Also, it will work with the analysis-engine to reason with problems of insolvency.


A collection of floss biometric software
Various biometric algorithms can be useful for security and, when used in the correct context, privacy (ironically). So we are collecting open source implementations.

BlackArch FRDCSA

Blackarch - as a situated remote environment controlled by Prolog-Agent
BlackArch Linux is a pentesting distribution, that contains a vast quantity of computer security tools. As FRDCSA is focused on collecting tools that perform tasks, BlackArch is an interesting use-case. Given the complexity and differing levels of documentation for BlackArch tools, it makes sense as a domain for prolog-agent to experiment in and learn from. Ideally, prolog-agent could semi-automatically learn to harness some of the more prominent BlackArch tools.


An Android app pushed to market in 2011 for boycott management
Helps the user to select products whose businesses are believed to act in accordance with the user's principles. It integrates with some Perl software called "elle Ethical Consumer", which is responsible for helping to generate boycott lists. Written by Skyy Siejko, Samuel Coddington, Kevin Davidson, Andrew Dougherty. I am releasing this per the agreement with elle Inc., and have also released the elle Ethical Consumer, in the hopes that some other android developers will take it and improve on it so that it will help people to vote with their dollars. It is being superseded by Koo's Koordinator web-based project, as well as boycott-manager. I really want there to be a crypto aspect where signatures are verified from trusted sources. Future versions might benefit from a (defeasible?) theorem prover for reasoning about who the user ought to buy from based on the knowledge available to them.

Bluetooth Support

Early Bluetooth tools
Bluetooth support in Debian used to be less reliable, and therefore these scripts helped me to keep it working.

Bluetooth Tools

Resources for effective use of Bluetooth under Linux
Bluetooth support was initially not very good for Linux, this package included instructions for making use of Bluetooth devices properly.


Organizes your bookmarks into categories
Performs text clustering in order to arrive at a bookmark solution.

Bookmark-Clustering (Old)

Organizes your bookmarks into categories
Performs text clustering in order to arrive at a bookmark solution.

Boycott Manager

Cryptographic and semantic infrastructure for issuing boycott proclamations


Distributed human teams for question answering
An automatic brainstorming [agent] that distributes a question you ask to multiple people and aggregates the results and uses other people to check them... [gutenphrack (Jan 2004)] The obvious question is in which way does this differ from things like forums, issue-trackers, bug-trackers, FAQs, etc. I would imagine it would work more like a messaging service, perhaps on an agent architecture, and would have a formal syntax like KQML or Prolog, and be designed to get answers as quickly as possible from a knowledge based system that automatically handled minor requests and failed to contacting people with matching abilities listed in their capabilities, and then sought verification, and defaulted from there on. Thus it depends a great deal on formal modelling of users in many disparate contexts and hence abstractly on a number of other packages. The most obvious implementations to me would be OAA, Electric Elves, and/or Retsina agents.

Broker Buy/Sell System

Manages acquisition of required and sale of unnecessary items
Looks at the Shared Priority system Editor, the inventory manager, the Budget system and the shopping list to determine what items to sell and what to keep. Handles the actual act of researching and possibly negotiating purchase and sale with various sites.

Budget System

Performs personal/business finance management
Takes into consideration ones goals and especially the financial consequences of purchases. Determines what you can afford.


A curated collection of software and datasets
An effort around 2015 for building a business for collecting and distributing scientific programs and datasets. Since integrated into FLP. Able to crowdsource and moderate project and metasite URLs. Screenshots:


Continuation of abstracted CALCULEMUS goals in FRDCSA
CALCULEMUS was an earlier Mathematical Knowledge Management project, that intended to formalize mathematical knowledge into a universal database. This is an effort to gather information about the CALCULEMUS project, and see how it ties into the frd project, and use it as a basis for continued development. This is similar to the qed-project-frdcsa.

Car Maintenance

Decision support system for car maintenance
This project is subsumed by other FLP projects, but originally had its own directory. It tracks/logs problems with a users automobiles, as well as adds the recommended maintenance Schedule of the vehicle to FLP's calendaring system. Integration also planned with ODBII sensors for FLP to automatically track vehicle condition. Generally relates to car computer systems, as well as our vanguard vehicular intelligence platform.

Cash Tracker

Another FRDCSA budgeting / cash management tool


A system to establish cause effect relationships and plan with them
There are some programs that are available to plan with causal relationships. So we are trying to amass a collection of causal relationships, such as static causal laws, and other such relationships, and then try to plan with them, perhaps in a capacity similar to AlphaZero or MCTS.


Does the same as CCP (convert copy) but for Perl


Extends CSO, acts like Master Control Program - indexes other programs
This system uses a frame-based slot system to track different metadata about computer functions. It statically (and sometimes dynamically) analyzes programs and extracts out this information. It is similar to Eurisko in this regard. It is a knowledge base about functions, vaguely consonant to the Master Control Program from the first Tron movie.


Performs traditional (human-like) chess analysis
This system performs human-like chess analysis. It reasons about position and displays the strengths and weaknesses, etc. It differs from usual computer chess in that it employs positional theorem proving and language based reasoning, as opposed to pure minimax type model-checking, which is deemed too simplistic.


Extends CHAP with updated Formalog architecture
CHAP is a program for positional theorem proving in chess. It uses a provably superior, but computationally less tractable, approach to playing chess. The idea is to learn cross-domain relationships from chess to real life. CHAP2 uses the formalog system to enable integration between Prolog and Perl, to make it that much easier to develop for it. It will still employ the same UI, once it is ported to work with formalog. But the advantage will be a better approach to using Prolog (using Language::Prolog::Yaswi) than was possible with the original chap program (using ai::Prolog).


Ostensible FRDCSA paper for CICM conference


Integration with CLG+ contingent planner

Climate Change Adaptation

"It does not do to leave a live dragon out of your calculations, if you live near him." – J.R.R. Tolkien
The svrs is the Sustained Virtual Reality Shelter, a project to house the FRDCSA and similarly inclined individuals. It dealt with all aspects of living in relation to the environment. Lately, the looming climate crisis presents new challenges that should be addressed, such as considerations as to how to help those affected by climate change, including ourselves. It also concerns carbon and other environmental footprints (of FRDCSA and others), procuring clean energy supplies, algorithms to help individuals reduce their trash footprint, so on and so forth.

Comprehensive Library Ontology

Relates to the comprehensive CSO (Software) and CFO (Function) ontologies
Track all information about programming libraries, including static, dynamic analyses, etc.


Usage of a Prolog Cluedo solver
Abstracting and reusing epistemic tools form the codef or "Reasoning about Knowledge and Action in cluedo using Prolog" by Vemund Innvær Aartun

CMU AI Repository FRDCSA

An extension of the original CMU AI repository
FRDCSA has struggled to make a comprehensive software ontology available. Given the free nature of the CMU ai repository, and with the blessings of its creator, we are engaging in a project to extend the original repository. The data schema is very apparent, and we are mapping this into freekbs2 and using all of our ontological tools to better support the layout. Then we are extending the number of systems, and the categories are being modernized. Ideally it will serve the basis for the cso (Comprehensive Software Repository).

CoAuthor Interactive Natural Language Generator

So, suppose you wanted to say: "I remembered that...". Well, you could also say it as: I recalled that I recalled to mind that I reminisced that I was reminded that etc. This system is to help one come up with those possibilities. The idea is that one should be able to take a sentence and mark parts of it for rephrasing, which then the computer generates possible selection, among which you choose. It can also grade the recommendations based on various properties. This is similar in some way to the 'bard -c' functionality, only that works on a small word or possibly phrase. This would be more general, and take advantage of NLG systems, such as possibly Halogen. I'd like to have an Emacs mode for it, of course, in which you move the mark or region over the area to be altered. It could also operate on parse trees.


Clandestine cipher
Code Language should have a morality logic associated with its invocation. Could think of it as a riddle. Even if someone knows you are using it, and knows its rules, but does not know your shared secrets, it should still be hard for them to eavesdrop. The system can have many syntactic and semantic operators. For instance, one operator could negate the following sentence or clause. Should have quote operators and metasyntactic operators. Helps maintain privacy and security. Write software that can perform these transformations and test us on our understanding and generation of them.

Code Maturity Detection

Metrics computed from available information related to code maturity
We wish to measure the maturity and vitality of various codebases we wish to incorporate into FRDCSA, as well as other properties. For instance, when using github-spider, the repositories are in a variety of states of completion. Sometimes we can use incomplete software, but often times with GitHub it is an empty placeholder project. Obviously we want to assess how complete and usable the software is, since we prefer evidence of utility upfront when collecting software.


Tools to calculate metrics over our software collections
Uses linguist to compute source language composition of codebases, records size. Other metrics planned.


Helps track down various bits of data that easily can get lost
Like a lost and found for project data which we know longer remember how to access but can think of a description of it. Ways to search: + full text search using a search engine like indri or something + document similarity search using Capability::Similarity::Document + files that had been opened around the same time, proximity search through Event Log + documents that use a certain set of modules + by document date


CogBot - FRDCSA integration
There are several projects that come to mind that could be implemented by cogbot, although I'm not 100% comfortable with the lack of an open world afforded by opensim. You could implement homeless-at-cmu, the game, which is about surviving at CMU homeless, and involves dynamic planning and so on. You could implement the metaverse and in particular the Irish history game, stored in the metaverse dir for now. You could implement a software agent. MultiAgent systems such as TeamLog language with Joint Intention Theory semantics of performatives. Use robotic soccor agents. See also:


Inexpensive book scanning robot
The famous 6th century Irish monk columcille was notable for having caused an early copyright legal battle which then boiled over into an actual battle. Columcille had something of an assembly line of manuscript copiers, spreading the Good News. So naming a robot columcille that that promotes the spread and sharing of knowledge seemed altogether fitting and proper. An early prototype is viewable here:


How would one record things one learned in a way that one could easily check after one has already forgotten the context of how it was stored. For instance, if I just write "ruled out open-type for use with web-agent", I'm not liable to remember any of the search terms. So in effect we need a context sensitive semantic memory. Another motivating use case - when using proof-general and coq - there are a lot of commands, that, if bothered to be learnt, will nevertheless be forgetton, along with with facts/commands from other places. So in effect, the net gain is zero. We must have a context-sensitive command representation system whenUsing(and(proofGeneral,coq),means(commandFn('Qed','Proof has been terminated'))). A memory aid to know what commands to use in different contexts, possibly even defining the pre/post conditions of commands. Thus related to Prolog-Agent, KMax Object Manipulation System (KOMS), BrainLeach, etc.


Tech collective concept where members rotate between work and research
Tech collective where people rotate who works so the others in the collective can work on their projects. Say you have 2-3 people working full time who send checks to the collective which supports the others, then when their work time is up or what not, they have credits or something to apply towards their project time, at which point in time others who are working will help them cover their bills. We use something like financial planner to minimize expenses for people, to something feasible. We save, then when someone's project is monetized, they contribute some portion back to the collective. Similar to a peleton drafting - some people pull (by working), others draft (work on their projects, get rejuvinated, and then can do another pull period). The group helps place people in new jobs using job-search or something. Anyway collectives usually fail, but it's worth a thought to try to help people collaborate to have time to work on their projects.


Employ ToM to aid communication
Uses theory of mind and builds libraries of translations of our writings, to improve engagement and communication.

Comprehensive Ontologies

Resource list / ontology for the project
A meta resource list for the project, detailing where to find everything. For instance,, etc. What is it called, what does it do, where it is located, how to access it, etc. Comprehensive FRDCSA Resource Ontology, and a series of "Comprehensive X Ontology"-ies, i.e. cso, cfo, clo, etc.

Computational Autism

A preexisting AI cognitive agent designed to explore ASD
From the author of the book: Computational Autism. Useful to simulate autistic reasoning for use in anticipating how to utilize some of its strengths and work around some of its limitations, as well as to simulate multiagent groups. Might be nice to integrate with Horn-TeamLog if available, to help form teams of people with autistic to work on shared problem sets.

Computational Ethicist

Ethics of, for and by computational systems
There seems to exist an attitude that computational ethics is impossible, but even if it is in the general case, it is extremely important to nevertheless develop the theory of computational ethics, of, for and by computational systems. I think that the field is woefully underdeveloped, however, there is more promising recent work. A regression library of Situations and their moral responses, such as I believe is being built by MIT, is a good starting point. As is work on deontic logic, and formal verification of ethical decisions. Collecting research into this area. Another area of study is ai safety, which is receiving increasing scrutiny lately.


Prolog-based hardware configurator
A Prolog configurator for raspberry pi / arduino which tells you which components can be connected successfully, and then the user expresses a set of capabilities, and it configures the cheapest instantiation of that.

Conspiracy Theorist

Generates plausible alternative explanations of observed phenomena
Similar to DARPA's aida program: Forensic science tells us to question the objectivity of our observations. For instance, if say you say John Doe driving his truck, are you sure you didn't just see John's truck being driven, and assume it was him? The inference of reality from inconsistent and fallible observations involves search through possible candidate models of reality. There are sometimes patterns to the failure modes of observations, which serve as heuristics for extrapolation of possible true circumstances. Another application is possibly deceptive environments, such as online media and disinformation. While the name of this project is tongue-in-cheek, the recent increasing weaponization of conspiracy theories is cause for concern. But in general, critical thinking demands this form of suppositional reasoning.

Consultant Support

An Emacs time and job tracking system
Logs time and work conducted, and then computes PDF invoices for multiple clients and pay structures.

Archives Manager

Survivability and continuity plans for personal research
With projects such as FRDCSA and picform, there are concerns that should their primary authors die, the work would go abandoned, undisemminated, etc. Archives manager therefore allows the backing up of research to your friends computing environments, along with plans for dealing with the death of the primary author.

Cooperative Game Archive

Archive of (video) games that do not encourage competition behaviors
Many domains are cooperative. Increasingly, commercial video games tend to reflect competition behvavior. This project tries to collect games which are cooperative by nature and do not have an enemy externality. For instance, often FLOSS software development is such a cooperative game.

Corpus Manager

A system for running text analysis of various text corpora
This system is capable of running hte Capability::TextAnalysis module in perllib, as well as other kinds of analysis, over whatever collection of documents you place into it's incoming directory. I've used it to process a variety of interesting data-sets, with the goal of extracting out affordances and other information relating to the text - to help with RKF-like Text to Ontology / Logic / KB / Knowledge etc, efforts.


Centralized location of all FRDCSA (pandemic) survivalism tools
The covid-19 pandemic of 2020 - present (at time of writing) has forced us to take survivalism more seriously, since we believe we have a serious duty to survive in order to make Public the FRDCSA/FLP. Therefore, this system coordinates other tools like plan-monitor, FLP, SPSE2, iem2, wsm etc etc into a pandemic survival resource. And it will help with disaster (and other emergency) preparedness in general, which is a large component of FLP anyway.

CPAN Release Manager

Tools to assist releasing FRDCSA to CPAN
We recently completed a sample CPAN module release: However, we made a lot of mistakes. There are in general a lot of endemic issues with releasing FRDCSA to CPAN, for instance, the presence of potentially destructure scripts (when run outside of the FRDCSA environment). Therefore careful consideration how to refactor to mitigate these risks is required in order to release the rest of the project to CPAN. The task1, task2 and perl-rulebase systems are also involved in releasing to CPAN.

Critic Browser

Helps fill out applications for jobs


A continuation of the CRITIC system effort, but mainly in Emacs
CRITIC3 is an effort to finally develop a usable critic system, this time using emacs. However, we ran into some unresolved issues when developing it, mainly with the emacs hidden text. That is used to store generated metadata for entries, and then the user can assert various n-ary relationships about the entries using various keybindings. It has a domain editor with different domains, and a knowledge editor for manipulating assertions.


Customer Relations Management system using FRDCSA

Crowdsource Everything

A crowdsourcing system factory
Mainly to be used to crowd-source information for FLP, including gathering guidance and compiling from English into Logic semiautomatically. Should be able to crowdsource various information, for instance, things like reverse telephone number lookups. Probably this project is contained within FLP itself. Perl Catalyst-based.


Implement the CSA portion of FRDCSA
The csa toolchain consists primarily of radar, packager and architect. This umbrella project serves to get a toy implementation of this architecture functioning. This consists of having the list of desired capabilities, executing searches for systems having the capabilities (using tools like radar-web-search and software-recommender), generates a priority queue of software to obtain. It will iterate over the queue, downloading the systems with radar and packaging them with packager. It then performs many administrative tasks wrt the new system - including the Application phase of csa, through architect.

CSX Process

Extract URIs (for spidering) from CiteSeerX papers matching search topic
Allows full text search using Namazu of our CiteSeerX data dump acquired using S3. Returns an acceptlist of papers to extract out URIs for feeding to the vger spider.

Cultural Systems

System to record and use cultural resources
Includes projects, user groups, language resources (corpora, Dictionaries, TTS, MT, grammar checking, fonts), various audio-visual resources (music, film, document (story, books, images) archives), software, politics, history, genealogy, etc. First use case was Ireland, but wish system to be general purpose factory for different world cultures. Used in conjuction with the metaverse simulation system for engaging in historical / ahistorical simulations / games / research. Tries to reconstruct world history.

Current Development Stack

Tracks recursive workflows
Usually during development of FRDCSA, we work on a given problem until we reach an impasse, and then we jump to solving that impasse. So, we essentially recurse on problem dependencies. Eventually, we wind up returning to the original problem due to a circular dependency, but all the work we have done in the interim means we are likely closer to a solution. If not we simply continue recursing. This project tracks (ideally in emacs) the recursive problem stack we are working on, so that we can pop the stack when we finish and do not lose our place.

Cyber Defense Advocate

Personal information security system
With applications like FLP, there is a need to store private information. The cyber defense advocate is an intelligent agent that works to protect this private information. It depends on our IPS/IDS called setanta and setanta-agent. It helps the user construct secure cyberphysical systems, vacuuming private information using Scrubber/Redactor/etc into airgapped installs, as mentioned in our main FLP use case document:

CYC Common

Research and code relating to CYC
Contains our notes regarding how CYC works, including some documentation, various papers, an FAQ, etc. Has scripts for launching opencyc, an FLP CYC-api, log files, etc. Just tools for studying and making use of CYC within FRDCSA.


Tools for searching and studying available CYC documentation


Emacs *CYC major mode
A specialized emacs major mode for CYCL and SubL, the languages for the CYC common sense knowledge bases. Aims to create a deep channel between emacs and CYC.

CYC Planning

Efforts to invoke OpenCYC's SHOP2 planner
Contains a small collection of notes on how to utilize CYC's planning mechanism. The idea is similar to our reactive-kb project, Source Code in Database (scid : ), the Grindwork's GTS system, the unison language (, and other systems that represent programs in data, and behavior falls out of the interaction of rules automatically. The idea is to represent everything using PrologCYC discipline and automatically synthesis programs this way.

CYC Tutorial

A quick and dirty introduction to OpenCYC
Gave a small workshop on using opencyc, and this was the syllabus.

CycL to NL

Export OpenCYC's CycL -> English data
Code to list opencyc's contents, alongside the corresponding nlg generated English version, for use in feeding to paraphrase and deep learning systems, for making progress on the reverse direction (NL->CycL).


Our reimplementation of Prolog-CYC. May borrow heavily from dmiles' PrologCYC (LogicMOO/LogicMUD/PrologMOO)
Many aspects of CYC are similar to Prolog. dmiles' logicmoo system has gone to great lengths to reimplement CYC within Prolog. Because his system is under heavy development, its APIs are not stable enough to use, so we begin by studying his system and implementing one of our own, which can either be upgraded or replaced as his system advances.

Cyclone Rule Editor

FLP-based rule editor for CycL

Daniel's AIs

A minecraft-like virtual world developed by a CW student

DarkUranium Systems

Interface between FRDCSA and DarkUranium's code

Data Integration

FreeKBS2 backend directly from Prolog using ODBC to MySQL
More generally, this project relates to the difficulty of managing various world-states across federated FRDCSA, FLP and logicmoo systems. However, thus far, it consists only of a partially complete Prolog freekbs2 backend, allowing persistent storage of Prolog facts and rules.


Aid in backing up and otherwise managing complex data storage requirements
Helps to organize git repositories, detect backed up data structures that are modified copies, and backup items on multiple disks and systems. A lot more functionality besides.

Datalog to GDL

Convert Datalog to Game Description Language (GDL)
There are a number of adapter projects in FRDCSA that translate between KRR languages. This is a theorized interface between Datalog and GDL, which should be possible because iirc GDL is implemented using a Datalog-like if not Datalog itself semantics. The idea is to help enable Prolog->GDL export as well, so that for instance, FLP could export world state to a GDL solver for use in adversarial reasoning. A bit tenuous in practice however.


Implementation of calendaring for tasks and appointments for FLP


Integration of DAYDREAMER
Ways to extend daydreamer: + flesh out missing aspects of its ontology, for instance, add homelessness surival information. There was a long list of things excluded early on in the book Daydreaming in Humans and Machines:.... + work on theoretical perfection of the planning processes, through model checking + use more than nonnested fluents + daydreamer bindings for querying the KB (as opposed to asserting/retracting to/from the KB

DebConf 2020

Video production materials for (now postponed) DebConf presentation

DebConf 2020

Video production materials for (now postponed) DebConf presentation

Debian Packaging Tutorial

Materials for intelligent tutoring of the Debian packaging process

Debian Release Manager

Project to coordinate the release of FRDCSA via Debian packages


Formalizing the rules required to package for Debian
Since packaging for Debian is a relatively complex process, we want to formalize all the rules involved, so that we can try to automatically perform this task and validate the result. We also are formalizing them to help us remember them, since there are many different hats worn in the project, and we sometimes forget procedural information. It is thus related to nlu-mf, textbook-knowledge-formation, RKF, perl-rulebase, and many others.

Debt Manager

Track all our debt
If one is experiencing economic hardship, one often falls into debt of various kinds. So this system helps a person track what they believe they owe, as well as what other people believe they owe. It also helps one avoid falling for debt collection scams. It is related to the rest of the FRDCSA financial projects like financial-planning, etc.

Decision Support System

Helps the user to formalize their practical reasoning problems
An example problem might be how best to proceed with the development of A.I.. This project is related to things like Multi-Criteria Optimization, as well as other DSSes.


Deduplicate filesystems to avoid explosion of backups
Owing to various historical circumstances, such as insufficient funds to store hardware, lack of a backup system or organized note-taking for backups, many FRDCSA files have been copied and copied, into a snowballing collection of files on various hard drives. The goal of the project is to backup all of those files, detecting duplications of individual files as well as whole directory structures, and backing up each file on enough disks in enough phyical locaitons so as to minimize the chance of permanent data loss.

Definition Extraction

Enhance RKF/Textbook Knowledge Formation by extracting definitions
There are many research papers, wikipedia articles, and other properly licensed textual materials. We have obtained a definition extraction system which extracts about 50% of the definitions mentioned in various texts, and have wrapped the results of that program into something that formalutes the definitions as comments in a SubL knowledge base file. This system is automatically invoked by the related sentinel program, which looks for downloaded PDF papers, and process them.


System to track the moral status of our duties
Deontics is an emacs system primarily intended at this point to record and reason with self imposed deontic constraints. For use with FLP.


Handles parsing of voice and other text commands for FLP
This system implements DCG parsing for a wide range of voice commands (from speech-enabled assistants like alexa), as well as associated world knowledge. It contains work on creating a multi-step dialog as well.

Dialog-Move Ontology

Resource for ontology-based dialog-management

DigiLib Agent

A agent-based tool for assembling a digital library
Consists of tools, similar to and using academician, for locating research papers and websites that relate to concepts we are interested in.


Approaches coordination problem for A.I. in a diplomatic manner
Helps us reason more diplomatically about how to work with others on A.I.. Includes things like letter writing campaigns, tracking interested parties, etc.

Disaster Emergency Survival Preparedness

Survival prepping tool, specifically for disasters
The COVID19 pandemic brought our survival planning to a crux. This system should become the focal point for a lot of FLP's disaster planning tools. Includes libraries of threats, and plans to respond to them. A known cognitive bias is that people underestimate the probability of at least one of a number of low-probability events occuring, hence we can be relatively certain that there will always be something we have to plan for.

Discipline System

Help user to acquire self-discipline
Various FLP tools, including gamification, habit tracking, enforcing habits in crisis scenarios. Just a variety of tools for helping improve self-discipline.

Discourse Representation

Focal point for DRT and DRSes
Discourse Representatino Theory is a powerful tool in the domain of computational semantics. This is a collection of resources centered around the C and C parser tools.


A free Inform7 like language and related tools
Inform7 is a popular interactive fiction language, which is currently undergoing an open source release. It is descriptive and powerful, and hence we have represented some of FLP using Inform7. In lieu of the release of Inform7 we have created a host of tools for working with Inform7-like files within the project, like parsers, translaters, rulebooks and so on. It is designed to eventually replace Inform7 should Inform7 never be released.

Dmiles AGI Bot

Chatbot tools
Infrastructure for an intelligent chatbot.

Dmiles Systems

Tools that allow accessing dmiles' software from FRDCSA


DMS-Formalog adds Formalog to Paperless Office / DMS


Documentation tools, with D&D as the domain
This is a system for quick reference to the Dungeons and Dragon's manual provided by While the domain is silly, it is a good test bed for developing interactive question answering software and tools for interacting with rule bases such as legal and medical.


DNFct is a top performing contingent planner we are attempting to integrate

Do Convert

Allows access to .do and .notes files from within Prolog
System parses .do and .notes file formats into Prolog syntax. So for instance: (completed (task1)) becomes completed(task1). This allows accessing and processing our files for overall and for different projects from with FLP.

Document Understanding System

Allow format parsing and arbitrary document understanding

Documentary Generator

Generates documentary videos from texts
System extracts named entities from text, and then uses Google Images to retrieve pictures of the entities, and displays with OpenGL (can be exported to a video file).

Documentation Central

FRDCSA project documentation

Download Auditing

Produce signed audit trails when downloading files
Sometimes, such as when building a software archive, it is necessary to track our downloads. For instance, saving the STDOUT and STDERR of wget. This can be used hopefully to prove when and where we downloaded a specific file.


Tracks voting records etc for use in applying political pressure

E-Health Clinic

Tools for locating a physician


Interface to dmiles' E2C program from FRDCSA
E2C is a very powerful nlu system that translates English to CycL representations. This system records our use cases, and other aspects of integration with E2C.

E2C OpenCYC Export Tools

Use OpenCYC NLG to create a parallel English/CycL corpus
Certain versions of opencyc have nlg available, we use it here to export the contents of opencyc into a parallel corpus for use in improving nlu (English -> CycL). One possible method is to use paraphrasing software to paraphrase the English, and then see how E2C performs mapping the paraphrased English back onto the original CycL.

ECLiPSe Prolog

Code to run Eclipse Prolog on FRDCSA

Elderly Affairs Management

Assist with eldercare

Elle Ethical Consumer

Review boycott requests and tag mentioned named entities for polarity


Event-Log v2

Emacs Agent

Intelligent Emacs agent using ELisp for program synthesis

Emacs Dungeons and Dragons

Like Fantasy Grounds but in (graphical) Emacs


Imbue Emacs Lisp with a knowledge base and an automated theorem prover
Emacs Lisp is similar to other Lisps, and lisp can be taken as the basis of a formal mathematical system. Therefore it may be possible to create theorem provers and associated knowledge bases directly in emacs. This would speed up some emacs related tasks and improve it's general "intelligence." We might consider using something similar to acl2, which is a theorem proving environment which uses an applicative subset of Common Lisp. There may be other Lisp ATP systems out there that we could either port or utilize. Furthermore, Chaitin has proven a number of results using Lisp systems, if his code is available and suitably licensed we could prove some metamathematical results using it. Would be nice to interface with other ATP systems as well, such as export. UniLang/FreeKBS2 already has an emacs syntax translatable to unilang's Prolog-like interlingua, which can be exported to vampire-kif and reasoned with.

Emacs NLP

NLP additions to Emacs
This enhances emacs' understanding of text items, enable new navigation and processing.

Emacs Poetry Mode

Emacs poetry mode that helps with viewing and interactively composing poetry

Email Prioritization and Routing

Determines which messages from your mail are importance. Ties in with your goal system.


Reading email aloud
Tools to expedite email reading. Stands somewhere between clear and audience. In addition to emails, should also read RSS, twitter - any pull information sources...


Explains FRDCSA to newcomers


Massive collection of game AIs for all known games
Ender is a general purpose game ai. That is, ender is a system that, given the rules to a game, will play that game. This is achieved on many dimensions. The first is a matchmaker1 which matches the game directly to known engines and uses on of those. If this fails, it formalizes the game, and attempts to generate an A.I. from the techniques within its system. Ender therefore naturally excels at all games for which we have an engine. But the point of this system is to encourage a classification of games, and the reuse of game knowledge across domains. For instance, many of the definitions used in the game of go might aid in other games, and in this case, the system would be able to prove more conditions that would hopefully lead to victory.

Entertainment Center

Interface for a home infotainment system
Perl/Tk interface for accessing the most important and entertaining features of FRDCSA from a TV.

Entertainment Ideas

System for figuring out fun things that people can do together
It uses the same software as the posi interest acquisition software. Then it figure out what there is to do that is fun.

Entity Database

Like Yago or Linkipedia, stores entities known to FRDCSA

Entity Resolution

Disambiguate / resolve named entities to entities in entity-database
Uses multiple entity resolution implementations.

Entity Typing

System to parse "dead text" into entities for use in processing and understanding
The idea is to parse out all text into entities, such that the Prolog-Agent/Emacs-Situated-Agent/Web-agent can use these annotations to compose services. For instance, if a file of IPs is annotated as such, tools such as NMAP know they can operate on them, pruning the space of compositions of shell commands in shell command synthesis to achieve outcomes.

Epistemic Planning

Project hub for epistemic planners

Ethical Consumer System

Advises on which products to avoid based on stated beliefs
This is a system to boycott by manufacturer, or product, or any other information. It has several modes of operation. You can scan a product, mention a manufacturer, etc, it will tell you what, if anything, is wrong with it according to signed advisories from various organizations, or your own knowledge base.

Ethical Systems Analysis

Determine relative consistency of all pairs of moral systems
Translate various moral systems into logic. Determine relative consistency. Also evaluate stories / behaviors against moral systems to determine which axioms possibly have been violated.

Etiquette Guide

Checks that all our communication etiquette is proper
Audience subsystem that intercepts our communications and ensures compatibility with respective etiquette for medium.


Reimplementation of famed Eurisko program

Eurisko Resources

Various online documentation regarding Eurisko/AM/CYC, for use with eurisko-frdcsa

Event Calculus

Tools for working with Event Calculus, including from ConceptNet API


Extract events from text such as web and email
There are many events that are referenced in emails, on web sites, etc. It is a rather common task to extract and populate calendars with this information. So this system does it automatically. There is a dataset for event extraction but it is brittle. There is also the geek event aggregator which seems to have good methods. I also want to collaborate with Tech Venue. There are some useful tools such as TIMEX3 recognizers. Integration with these is underway.

Executable Actionable Notes

Put the reasons I do things and such into notes for the AI

Execution Engine

A system to monitor and proxy users' computer usage
The Execution Engine has for instance a tool that watches over one's shoulder to see the commands they are executing, and prompts them regarding whether they really intend to execute it, or whether a particular situation that triggers other actions has come up. For instance, if you are rushing, it prompts you to slow down. Ideally it will eventually use prolog-agent to determine the consequences of shell-commands, and trigger on anything potentially harmful and bring it to the user's attention. Also will try to implement plan recognition so that Execution Engine can help detect and achieve good goals and detect and block bad goals. What is good and bad is a question worth looking into, but a simplistic notion for now might be something like, don't delete files for which the particular file(s) is the only known copy. Just general sanity. It's capabilities are not limited merely to interceding as needed, however. Will list more capabilities soon. Supersedes the action-system project.

Executive Function Decision Tree

Decision Support System for Decision Tree for Time Management
Executive functioning for mentally processing things in a flowchart fashion. Typcial neurodiverse people tend to have a bottom up approach where you have all the details. Executive function tells us to do the opposite of that. Breaks tasks down methodically, sorts in terms of priority. Continually reassess priorities within time frames.

Fact Extraction

Extracting facts from text
There are several systems in existence which are able to process text and extract facts. In general, on can think of breaking a text down into straightforward, small axiomatic assertions. So it is indeed related to natural language to logic conversion. But this methodology does not require to go the full way, for this it is sufficient to break it up into actionable facts. More later.


System of memory using computational semantics that we query

Factored Planning

Decompose large planning domains, stack others
Factored planning involves breaking a large planning domain/problem into smaller almost disjoint planning domains/problems, to enable an easier solution. FLP and verber use federated planning to generate and combine smaller domains into a large one. Moreover, with this implementation, we'd like to be able to generate a plan and assert its constraints into other domains/problems. Kind of like the way you pack a car, you put in the big items, then the medium items, then the small items, backtracking when you cannot fit things.


An AI-based user chat system for/by FRDCSA-LogicMOO
The #frdcsa-falcon channel contains our discussion of the requirements for falcon. So far, we have run Social Network Analysis (SNA) on our Discord logs. There are a lot of planned features already proposed, to be added to this page soon.

FAQ Builder

Extract FAQs from chat logs

Faster apt-file

An attempt to speed up the apt-file command by using an indexed search


Formalog + ShinyCMS
FCMS is the content management system that is created when using the Perl Catalyst content management system ShinyCMS, along with our formalog scripts for interfacing Prolog with Perl using Language::Prolog::Yaswi and formalog-pengines using JavaPengines and Inline::Java. When combined with the start up files for free-life-planner, becomes the Free Life planner (FLP).


FRDCSA replacement for E2C, in lieu of completion of dmiles' E2C
E2C is a powerful system for translating natural language input to CycL output. E2C is written by dmiles, and here are example translation results: E2C is a very complex system and as such is not yet finished, thus we are writing fe2c to act as a stop-gap.

Federated Agents

Wrappers for federated planning agents
Currently focuses on extracting store hours from Google's api, however, in general will handle lots of such federation tasks, for input into temporal and other planning domains.


Eshell enhancement for FRDCSA


Partial reimplementation in Prolog of GOAL agent programming language

File Organizer

Look at files, figure out where they belong, based on properties of the files

File Sanitizer

Clean infections from data


Consumer DSS for helping people budget/manage their finances
Parses GNUCash files, does analytics of purchasing decisions. Pulls and matches purchase data with receipts. Helps with shoppinglists.

Fitness Manager

FLP module for fitness planning


System to reconstruct circumstances at any given sets of times, by backtracking, priming, using evidence. Abduct models. Etc. Named after the character Jessica Fletcher who as a particular book mentions seems to explemify this rationalist as opposed to empiricist approach to investigation.

Flora to Prolog

Part of our n X n KRR language translation software

Flowchart Generator

FLP Prolog module that generates flowcharts from contingent plans created by DNFct

FLP Advocacy

System purpose built to market FLP

FLP Cordova

Early system to try to create an Android app for FLP using Apache Cordova

FLP Demo Release

Tools to modify and release FLP to a VPS for demoing

FLP Mojolicious

Mojolicious reimplementation or FLP module


Export FLP nested rules and facts to nonnested PDDL

FLP Tests

Continuous Integration testing for FLP


Toy implementation of basic FLP functionality, including Prolog/SubL and NN tech


A reimplementation of FLP
The main need for reimplementing comes from applying what we learned with the first FLP. Morever, the need for a proper microtheory system bogged down the first FLP project. Starting flp2, we will attempt Microtheory systems until we find one that works well. Problems arise from the nuances of the SWI-Prolog module system.

Fluent Editor

WSM helper files for managing FLP fluents


FLUX port to SWIPL by dmiles
Dmiles and I tried to port FLUX from ECLiPSe Prolog to SWIPL, unaware that a port already existed.


FLUX enhancements for the FRDCSA project
The FLUX system is a very elegant framework for agent development. Unfortunately, in our experience, and perhaps the experience of the author, the framework is not suitable performant in order to enable generation of large scale plans. This is rather peculiar as Prolog itself is performant and the design is minimal. It may have to do with the efficiency of the CLP library (CLP(fd)). Anyway, we have extended it in numerous ways, firstly, by allowing arbitrary terms instead of simply integers as arguments, by employing the serpro mapping. We have also included a nested to nonnested term wrapper. Temporal capabilities are partially working. Lastly, we integrated BFS. We have created several domains, mainly related to softbots and security.

FLUX Resources

Mostly docs regarding how FLUX and FLUXPlayer work
We tried but failed to aquire FLUXPlayer, and so we've collected a lot of documentation and some code related to reimplementing FLUXPlayer.


Run FMEA analysis over proposed actions/situations


Tag systems learner and labeller
Folksonomy is a tool for classifying software according to various "folksonomies", which is a (possibly condescending) word for things like the Sourceforge classification scheme, the debtags systems, and the Freshmeat classification system.

Food Ontology

A formal representation and interlingua of food state/condition
Being able to precisely represent the state of food is crucial to the gourmet meal planner. In this vein, we are developing a food ontology which can be mapped to various things such as folk ingredient descriptions, nutrient information, and products.

Formalization of Large Deviations

Formalize the theory of large deviations in an ITP
Large deviations theory is covered here: We are interested in formalizing aspects of large deviation theory in an ITP system like coq or Isabelle, in order to calibrate our efforts to formalize, aka make rigorous in a formal language, a useful field of mathematics for our Mathematical Knowledge Management efforts.


Formalog is a backend for FRDCSA/Perl/Prolog integration, w/ persistence
It does most of the work integrating Perl and Prolog, allowing using Language::Prolog::Yaswi calls back and forth. This is for fcms, which is an MVC obtained by combining ShinyCMS (itself based on Perl Catalyst) with formalog. Add the initialization files for the Free Life planner, or the prolog-agent, or the formalog-kbfs, and you obtain those systems. Formalog wraps unilang, currently allowing it to call freekbs2 in order to assert into the KB. However, we're working on a direct SWIPL ODBC interface which by lacking overhead should be many orders of magnitude faster. This can be found in the data-integration codebase.


Low latency, low bandwidth Perl -> Prolog RPC
This system has much less latency but also lower bandwidth as compared to Language::Prolog::Yaswi, which is initially used to talk from Perl to Prolog in projects like FLP. So this is a secondary api. It is used with emacs for instance to speed up queries. Eventually I plan to auto-select the appropriate query method based on the size of the query, and the the size of the answer.


Template code for a Formalog Emacs system.

Frame-Based System

Implementation of a Frame-Based System like FOOPS or XSIP for SWI Prolog
Lots of our systems could make use of a frame-based system format. For instance, in reimplementing Eurisko, within FLP, or with cfo. LOGICMOO already contains such a frame-based system. This is just a reimplementation for our uses.

FrameNet to IKL

Mapping from FrameNet framesets into IKL (similar to Common Logic and CycL)


Intended as a "universal database of mathematical knowledge"
The main aim of the frd project (the first half of the FRDCSA acronym) is to use mathematical reasoning to solve problems affecting people. The "unreasonable effectiveness" of mathematics allows us to engage in epistemic reasoning (what is true?), which has implications for practical reasoning (what should I do?) as well, which is in fact our main use case for such reasoning.


Attempt to release/partially fork FRDCSA
This is an attempt to release/partially fork the FRDCSA. It works by copying all the perl code and scripts to a new directory structure. These files are then vetted for license compliance. Then, tests are made to run the files to see if they still perform as desired. Files are judiciously copied over as needed, licensing permitting. The license for all files is made clear. Installers via CPAN and Debian, plus others, are created and the code is installed. This includes a CPAN installer for the myfrdcsa-1.1 itself. Tests are run in vms that are deployed to test the distribution, for different operating systems. Stuff is expected to not be in a perfectly working state. It should be backwards compatible for the most part with myfrdcsa-1.0. It will be the first release of the FRDCSA.


Rewrite of core FRDCSA functionality
This is a rewrite of the core functionality of the FRDCSA, especially unilang, freekbs2, etc. It maintains a kind of compatibility with FRDCSA-1.0 in that it should work with similar programs with relatively little modification. Everything is reengineered for better coding/documentation/test standards.


Futuristic rewrite of FRDCSA where many ideal properties are directed
At one point, several proposed versions of FRDCSA were designed, but ultimately, not yet acted upon. There were FRDCSA-1.0, 1.1, 1.5 and 2.0. The 2.0 was obviously the most advanced of these. The differences are enumerated here:

FRDCSA Dashboard

A GUI dashboard for tracking the status of and adminstering various FRDCSA systems


Helps to organize the lives of people who request the assistance
The FLP is the flagship subproject of the FRDCSA metaproject at present. It consists of a lot of tools for tracking the state of the world, and the goals of its users and trying to work out robust and fault-tolerant plans to achieve this. It makes use of many other systems, which are wrapped from Prolog. It uses fcms in order to have a Prolog/Perl/Emacs interface. The goal is for it to help those who are experiencing poverty, illness, disability and/or homelessness. A free program that plans one's life is probably more useful on average than a lot of other programs. It currently has an alexa Skill which we hope to (partially) monetize, by soliciting donations from people who have used it to improve, among others, their financial security, to help fund other project work once the FLP is complete. The ai is more general than FLP, but this is certain a critical component and will help us find the stability and productivity to pursue the rest of the project. It includes a domain for productivity.

Free Logic Form

Generates logic forms of English sentences
Free Logic Form is a system for generating logic forms of English sentences. ( parser, by postprocessing the output of the Enju predicate parser (

Free RTE

A free RTE system
Recognizing Textual Entailment is the problem of, given a source text and a target text, determining whether the target is implied by the contents of the source text. As one might guess, it is context sensitive. Such a tool is useful in applications such as determining if unilang entries are redundant. This capability is also useful in many other applications, and is closely related to paraphrasing.


Free War Operation Plan Response


Translate the FRDCSA web pages into foreign languages
Given the general applicability of the FRDCSA it seems ethnocentric to only post its web pages in English. Therefore, the Apertium engine was used to translate the static website into Spanish, for starters. However, it will work with other translation systems and so soon we will release translations to many as many other languages as we can.

Game Time

Domain-specific mass packaging
A system to categorically find and download unpackaged games from sourceforge and package them.

Google Summer of Code Application

Is just an application for GSOC


Gourmet Prolog system

Greenhouse Management

Helps manage gardening, greenhouses, aeroponics, hydroponics, etc.
Ideally interfaces with FLP and provides sensor/effector control infrastructure for the greenhouse. Includes general information about plant requirements.


System to integration FLP's home automation aspects.
Corresponds to the vanguard Vehicular Intelligence system.


Eurisko replacement, enhancement
IAEC uses a persistence mechanism and a pending sayer2 implementation which tracks multiple invocations over time to detect changes and also has a KB about the functions themselves. It uses different logics to assert functional relationships in a lispish/prologish notation. It keeps a blackboard of the state of all the different problems it's working on. It can represent strings in more economical ways by refering to function evaluation results and previously stored data. It integrates with kbfs, nlu, etc. It also does knowledge discovery and program verification. Using kbp systems we will extract a KB of properties about algorithms. It then aids in automatic programming. It is capable of exceeding the transitive closure of it' programming because it integrates external data read from books and such into its own system coherently, and thus mines and learns.


Walks users through constructed plans, handles plan failures, etc
IEM is responsible for walking the user through plans. In actual real-world Situations a plan can be hard to concentrate on and follow, even with sufficient prompting. So beyond simply walking the user through plans generated, the iem takes an active role in helping the user maintain situational awareness, and iem also tracks what it suspects the user is aware of, in order to facilitate clean interactions and missions accomplished.


Annotate text, enrich it for features, and learn extractors
This system is comparable to MinorThird or any other information extraction system. It uses something for annotating text in emacs, derived from the nlu-mode. It will be useful for a lot of tasks, but especially cso, system-ie, and other that escape my memory.


Proposal for an American Hacklab Infolab
Problem: Corporate Media, owned by just a few companies, has a monopoly on the ideas that are force fed to "consumers". Likewise, corporations to a large extent control the computer operating systems. The internet, however, has seen the production of many documentaries, documentation, and operating systems which offer different and important viewpoints. Many of these documentaries and operating systems are licensed with free redistribution, and can be distributed via DVD. The goal of the American Hacklab infolab project is to create, in the tradition of European hacklabs (but without the physical space requirements), Infolabs that can help with the distribution of materials.


Walks users through constructed plans, handles plan failures, etc
IEM is responsible for walking the user through plans. In actual real-world Situations a plan can be hard to concentrate on and follow, even with sufficient prompting. So beyond simply walking the user through plans generated, the iem takes an active role in helping the user maintain situational awareness, and iem also tracks what it suspects the user is aware of, in order to facilitate clean interactions and missions accomplished.


Interrelates UniLang messages and PSE goals
Manually identifying all meaningful relationship between unilang entries such as pse goals with the critic system is a time consuming task. This system attempts to derive relations automatically. Such relations are explicitly marked as having such a derivation. The most obvious relation is the depends relation. It would be nice to be able to determine from context which goals depend on or predepend for other goals.


Clear marking of different conversation threads on IRC (and other chatrooms)
Being able to distinguish conversation threads is a useful skill. There is existing research which seems to be related - that of topic detection and tracking. While the very concept implies a notion of "topic", it is sufficient to get started disambiguating IRC topic threads.


Jess' Debugger

A Java debugger
A very basic Java debugger. Current capabilities include stepping through code, display local variables and inspecting and navigating the stack. The main interface is based on emacs GUD mode and add additional functionality when setting breakpoints and correlating positions to code files.

JS Application Agent

Helps fill out applications for jobs

JS Form Filler

Automatically fills out job applications
Tool to fill out forms using your posi job-search profile to submit job applications.




A contextual menu for duck-typed objects from strings within Emacs
KOMS duck-types strings, so for instance, if you have a string that matches the regex for a URL, one possible duck-type for it would be URL. In this case, affordances for the URL would be opened in the contextual menu. For instance, you might want to open it in a browser, record it as a metasite, mirror or spider it, etc. If further, it were a GitHub URL, you might want to store it in the git repository repository. The main motivation for KOMS is to cut down on the number of nonessential keybindings that one has to memorize, freeing the user up to memorize more frequently used or efficient combinations of bindings.

Language Learning

Facilitates foreign language learning
Chat with text/speech bots in foreign languages.

List of Lists

System to manage lists of information
Often times there comes a need to record a list of items that is relevant to some problem or issue. List of lists just consolidates that into a system so that, if we are having in mind to build a list, it will be easy to refer to it and to extend it as time and examples furnish.

Log Analysis

Annotates Apache logs
This system display various information, like GeoIP, hostname, etc, of visitors to your Apache web server. It can also display the various search engine searches that reach your site.


Bridges the sister projects LogicMOO and FRDCSA
The logicmoo system, aka PrologMUD, PrologMOO and PrologCYC, is the sister project to the FRDCSA. The new flagship FRDCSA project called FLP (Free Life planner) makes extensive use of technologies developed by the author of logicmoo (dmiles) and imported into FLP. This project consists of various tools for bridging effectively between the two projects.

Car Maintenance

Decision support system for car maintenance
This project is subsumed by other FLP projects, but originally had its own directory. It tracks/logs problems with a users automobiles, as well as adds the recommended maintenance Schedule of the vehicle to FLP's calendaring system. Integration also planned with ODBII sensors for FLP to automatically track vehicle condition. Generally relates to car computer systems, as well as our vanguard vehicular intelligence platform.


Seeks to formalize mathematical knowledge within CYC
MKM is a recent branch of mathematics dealing with repositories of mathematical knowledge. The CYC system's ontology rather conspicuously lacks a detailed mathematical KB, seeing as CYC is derived from AM (Auto-Mathematician). Giving CYC the ability to prove theorem from mathematics will help with its reasoning abilities when trying to solve problems with automated theorem proving, especially program synthesis problems involving computability and complexity. It will also help with intelligent tutoring systems. The techniques developed for MKM will then be applied to other areas of study, such as computer science and artificial intelligence.


Implementation of MDR web data extraction algorithm
This is an implementation of the algorithm described in "Mining Data Records in Web Pages" 2003, Bing Liu, Robert Grossman, Yanhong Zhai.

Metasite Extractor

Extract system names and descriptions from metasites
A metasite is a site with links to many projects. This can be something like Sourceforge, or an academic lab's project listing, or a list of related software, etc. radar can record metasites and they are collected and stored. Their information needs to be extracted and given to cso.

Minor Source Hatchery

Like internal source hatcher, but for minor codebases
source-hatchery, is a place to hatch new codebases from. You can promote them out of the source-hatchery, or demote them if necessary to the hatchery. I plan to take a lot of the original project ideas for FRDCSA from ~2005 and put them in the hatcheries as well, and hopefully make good on them. And to demote some of the less important systems to declutter the minor codebases. However, new methods for indexing the minor codebases are necessary, since there are so many of them.

Miscellaneous Games

Implementations of solutions to various silly games
So for includes an interface to IMDB to solve the game Six Degrees - where you link two actors by a network or co-stars.

Music Control System

Control music playlists with speech recognition
This is a system for hacklabs that allows the user to pause the music and describe a song (or playlist) to play



Performs Natural Language Understanding
Interprets text in the appropriate context.


System to semiautomatically convert English to Prolog
NLU-MF is a system to semiautomatically formalize English and soon other languages into Prolog. It is in that way related to formalize and workhorse, and integrates with them.

Nooks and Crevices

Identify areas of the project that have sat dormant for a while
Nooks and Crevices uses Elog data about which files are being visited to calculate which files and directories of the FRDCSA have not been attended to recently. The thought is that often times we lose sight of the big picture and the very tasks we are attempting to resolve have been either partially or wholly completed elsewhere in the project (as has happened many times, just look at "todo-systems"). By allowing us to look at the areas of the project that have been dormant for a while, hopefully we will distill a larger picture of the purpose of the project and relearn aspects of the project.

Object Recognition

Identify objects and spatial relations among objects from photos (or video)
Updating the inventory of the pantry and the rooms using barcodes has proven infeasible, since often times things get really moved around much quicker than the information can be updated. So we are working on for pantry/inventory a combination of RFID in addition to image-based object recognition. The proliferation of deep learning has accelerated the capabilities of such systems. We intend to locate, either through GitHub or provided by some colleagues, the appropriate tools to update the inventory from a cell phone or surveillance camera. The strategy used by the image compontent (i.e. not the RFID) is this, when an object is recognizeds, its absolute location and relative location is recorded along with the recognition confidence, and asserted into the KB's relevant temporal contexts. When a particular item is sought, it checks the last known location and if present the object's assigned default location, otherwising marking the object as misplaced or via user saying directly so. Image models will probably enable a web-based image-based inventory manager, similar to the 3d one that was generously written for the project using Blender.

Option Classifier

Standardize command line options
This is probably the silliest, smallest possible application, but I just find it fun. The goal is to learn to assign flags to text descriptions of capabilities (and I guess vice versa to some extent - you want to make sure you don't use something that is better suited for something else.... In other words, it is able to assign command line options to a description of that option, ensuring standardization of flags.

Package Installation Manager

Figure out why certain packages are mutex, explore the dependency space
Often times you have massive wars between packages and their dependencies. This causes it to be hard to install useful software. Figuring out why there is a conflict and what can be done about it is important. This tool helps one explore this space and reason with packages.

Package Priority Queue

Track the collective need for different systems that are candidates for packages.
The Package Priority Queue tracks demand for different programs to be packaged. It uses a lot of predicates to model information relevant to this process. In particular, it specifies enough information so that our automated tools can attempt to retrieve and package these tools on their own. We will continue to improve the quality of that process.

Packager Agent

SoftBot dedicated to making operating system packages
Packager-agent is a SoftBot (i.e. a software agent living in a computing environment) that seeks to help make OS packages of external software. Currently the technology is lacking, because we cannot obtain the PUCCINI or XII softbot planners. Prolog-agent is supposed to have this functionality but we ran into severe limitations during development. We are also looking at using the planner from Marty's Interactive Fiction Engine in order to do metaplanning - that is planning where you may have adding a goal to the objectives as an effect of an action, and also invoking the planner as an action, etc. There is a good document here describing some of this:

Panoply Release Manager

System to manage VM releases of Panoply GNU+Linux
We have been trying to release the FRDCSA project almost from the start, however, it just hasn't gotten done. The first method thought of was to make Debian packages of the FRDCSA using the task1 system, which was accomplished but didn't fully resolve the issue. Secondly we focused on building CPAN releases of the modules, which met a similar fate. Then we began building a VM distribution. Since the ai attempts to increase its own completeness, a fitting image of that completeness is rendered by the term "Panoply". So the VM distribution took on that name. Despite some setbacks we now have a better build system for the VM. The latest attempt to release the FRDCSA has involved the manual scrubbing of important minor and internal codebases and subsequent release to GitHub. The next step with the GitHub strategy is to then pull all these repos in and build the Panoply-GitHub release, which will be the Public version of the Panoply GNU+Linux system until scrubber and kbfs are working well enough to take over.

Paperless Office

Nuance Paperport (TM) equivalent
Scan, OCR, text classify, and file (into filing cabinets) documents. It uses Ocropus and Tesseract to OCR images obtained by the scanner. The text is then classified and various other meta-data is derived. A location within your filing cabinets is prescribed. When you require documents, you have full text search along with other search capabilities (similar to many aspects of digilib).

Perl6 StdLib

Collect useful functions that should form a standard library
There are many useful functions and classes in many programming languages. The goal of this project is to analyze the existing functions to build a list of desired functions for inclusion into Perl6. This strategy is complemented by efforts to run other languages directly on the Parrot virtual machine.

Personal Adaptive Filtering

Learns your news preferences wrt goals, interests and abilities
Apply news analysis to all news feeds.

Plan Recognizer

System for integrating disparate plan and goal recognition technologies


Upgrade of Panoply VM to include PrologMUD
The Panoply VM is the distribution of the FRDCSA via virtual machine. Unfortunately, only one redacted version has been made at this point. Anyway, PlanLogic is integration of FRDCSA and PrologMUD, onto one VM. The original PlanLogic VM is lost. But we will be rebuilding it shortly. It will use the prologmud-frdcsa extensions and contain a working version of the FLP, as well as working versions of PrologMUD/LogicMOO.

Positional Analysis

Analyzing how desirable a given situation is to be in
There's no denying that some people find certain Situations more desirable than others. In fact, quality of life research indicates that the desirability of a position relates to its quality. A position is like a situation, it means the entire set of circumstances and facts obtaining for a given person or group of people. As such, this system is related to suppositional-reasoner, which seeks to ply search over this evaluation function. Positional Analysis can be likened to an evaluation function, such as in chess. Morever, we employ theorem proving using Prolog and ATPs to prove facts about the situation, which are used as features in computing the desirability of a situation.

Poverty Survival System

Assists with logistics of those experiencing poverty
Poverty is a destabilizing influence which increases the Kolomogorov complexity (due to increased disorder) of the meeting the requirements of life, depleting finite will-power reserves and generally grinding a person down. Since we have seen that modern chess programs vastly excel modern human chess players, it seems plausible that the logistics of poverty (and or homelessness, illness and disease) could be better managed by appeal to a central planning system. This system is the free-life-planner, with whose functionality the poverty-survival-system overlaps, but not perfectly. So this system attempts to have a focus on stabilizing and improving the users' health and financial security.


Does anyone share a vision of an intelligent software agent with planning capabilities that is able to navigate around a computer and generate plans to accomplish tasks it derives or are delegated by the users, moving and processing files, reading and understanding their natural language contents, extracting structured information from semi-structured sources, acting in meaningful ways as described by knowledge bases of procedural information, reading man pages, using perceptual capabilities to guide experimentation with existing software components to learn pre and post conditions to heighten capabilities, study documentation, memoize function calls, index functions, index new software, extract lists of their features, package that software and wrap it, analyze both the code itself and the function signatures, derive knowledge bases about their features, use this in automated programming and program synthesis. This is some of the more long-term research I am debating embarking on. I know that such systems already exist, such as are available in ResearchCyc. The challenge is to make an open source version. One of the ways I am proceeding is to iterate, via system iterator, over the projects available from sourceforge that are closest to these capabilities and communicate with their authors about the need to package and integrate these systems into a coherent whole. In particular, I am collecting Prolog and Lisp code, as these are among the highest level systems currently available, and can more easily be integrated, given that they are extensible programmable programming languages.

This long term research is not as important as the short term work on the life planner however, and so, given that unless I am able to generate a foolproof plan for the future I won't always have as close to an ideal environment for working on this as I do now. Also, I am having trouble finding the motivation to work on the longer term stuff because I keep getting waylaid, which is contributing to a learned helplessness against sticking my neck out again on these sorts of projects. However, without these tools, stuff like the Packager system and the Free Life Planner are going to have practical limits to what they can achieve, just as the Packager system has failed to fully automatically package arbitrary software so far.

Prolog Prolog Parser

A Prolog parser written in Prolog


Handles integration between PrologMUD and FRDCSA
Handles integration of PrologMUD and FRDCSA, as do most -frdcsa projects. In this case this consists of a lot of tools similar to those for running the FLP. Need debugging and code finding. It also, more generally, handles integration of the software systems, allowing FLP to use PrologMUD.


System to integrate Toy PrologMUD system based on MIFE into FRDCSA
PrologMUD_I7 is a smaller toy demonstration system of an interactive fiction engine based on MIFE (Marty's Interactive Fiction Engine). This consists of scripts to integrate it with FRDCSA.


Is a Priority System subsystem of Verber

Raiders of the FTP Sites

Search FTP sites for interesting artifacts and catalogue
While the FRDCSA has a ridiculous number of projects ongoing at any time, a recently developing project has taken my fancy because it promises to offer good dividends. The project, called "Raiders of the FTP Sites", well, speaks for itself. It is a system that searches FTP sites for interesting artifacts and retrieves them. It works by correlating subject matter of interest with FTP sites, extracting a recursive directory listing of the FTP site, and then performing several analyzes of the contents. While still a very immature system, it has yielded up a labelled resume corpus which will help the job-search program.

Reading Analyzer

Determine the intellectual caliber of a text
It is a theory of mine that linguistic expressitivity supervenes on thought. How can one reason with something if they cannot even precisely state it? This system is geared at determining the intellectual caliber of a text. It will assist then in locating similar texts. It works with all to teach the user concepts in the text they don't already know (provided it can know them through some means). It works with sayer and thinker otherwise.

Receipt Manager

Track purchase receipts
Receipt manager is a system to track purchase receipts for the purpose of indexing inventory and supplier data. Other applications include financial tracking, expense reporting, pantry management, shopping and resupply management, crowdsourcing, bargain hunting, etc. Our main application is for pantry management and resupply. Our intention is to use OCR and custom parsers to extract product information, and synchronize it with scanned barcodes. The process should be no more difficult than a self-checkout at a grocery store. Then the updated inventory will be made available to the meal planning system. And the supplier information will be useful for when it comes time to reorder products.

Recommender System

System to recommend information to the user based on info it already knows
This is a recommender system which works with the Free Life planner to make good suggestions to the user based on what it already knows about the user. For instance, if you have a certain political belief and you are about to buy something from a company that opposes your belief, you'd be warned. Also, it tries to proactively find out information about the user and recommend things to help their life situation. Example I've used before is if it asks you and determines that you have pets, in particular, cats, and that you are trying to save money, it would recommend to purchase cat Litter from the Dollar Tree store where there are currently large bags of it for merely a dollar. If the person had children, it would advise them differently based on this information. The Recommender system gets its data from crowd sourcing and it's own readings. It is intended to be the first alexa Skill we release as a test bed of the certification process and to eventually drive users to the website.


Reassemble lost parts of the FRDCSA
At one point in the history of the project, the main FRDCSA system was destroyed. All that was left of it was one partial backup on a remote site. As you can tell, lots was lost. But, echoed throughout that backup were some projections of parts of the data. For instance, many capabilities were listed on the webpages. This enabled the reconstruction of various parts of the project. Though several years of unilang messages were sadly lost, many years were restored through such files. They were recently reloaded into unilang, enabling the regeneration of the FRDCSA static web sites.

Release to Github

Helper functions to speed release of our software on
This software attempts to make releasing to github easier. It tracks all previous redacted information by comparing our version to uploaded ones, as well as allows us to use kbfs to annotate sensitive information and files, and infer from this what other information in the project might be sensitive. This is to speed up redacting for deployment on, so that the FRDCSA is more transparent until Panoply or whatever successful distribution mode is achieved. Possibly will try to create an installer that uses the to build an FRDCSA instance. Also helps us with differential releases, where the system may have diverged from the redacted branch. Should probably use actual git branches to achieve this.

Research Ontology

An ontology of existing research areas, problems, techniques, capabilities, etc.
The Semantic Web has led to some interesting collections of metadata regarding scientific research. The goal of this project is to collect this useful information.


Tracking critical life support and productivity resources.
Resource manager aids the inventory management system under development. It mainly looks at the availability of resources and the management of distractions in order to maximize productivity on the project, since productivity leads to solved problems which contributes to stability which recycles into productivity. It is kind of a cross roads project, integrating things like bill payment, shopping lists, supply chain info, productiivty conditions, trip plans, resource usage rules, etc.

Reward Ontology

Knowledge about what motivates individual people
Tries to distill a picture of what a person desires and what can be used as a reward signal in order to improve performance towards community goals.


Artifical emotional intelligence
RSR is a psychometric reporting system for users to record their present condition and beliefs, etc. rsr combines this information with that from other systems and mines causal relationships. Behaviour modification training, changes to SOPs, and new goals are used to eliminate undesirable states. RSR also exports its functionality as a decision aid to other systems. For instance machiavelli will use it to model/monitor other people's emotions.


Software to run RTE using CandC's Nutcracker system
While we have the project Free rte, there has since been released the CandC rte system. I am however having trouble getting this to work. It runs but the theorem prover does not return. I am trying to get ahold of the correct version of the vampire theorem prover.


System to edit planning information

Save Tara

Systems to assist those working to save Tara, Ireland
The famed Royal Demense of Tara in Ireland is under duress due to inroads being carved by greedy real estate developers. A grass roots resistance has risen to challenge this and these are tools to help the organizers.


Cognitive system that analyzes data structures for meaning
Sayer gets its name because it builds a context by asserting interesting facts about arbitrary Perl data structures. Sayer (along with thinker) is one of the most interesting projects of the FRDCSA. What it does is index arbitrary perl data structures, and attempt to derive interesting information and conclusions about that data using machine learning. For instance, if your data structure consisted of a string, and that string contained a paragraph of text, sayer would apply a decision tree or similar, set of tests, to determine that it indeed was as we described. It would represent this relation as a graph, with verticies as data-points, I.e. the input, and "true", and edges as function calls. All data of course is stored to a database. This graph data is then used as input to classifiers that attempt to distill summarily interesting information about said data. For instance, if it is a sentence, it may well wish to perform various NLP procedures, extracting things like named entities, and recursively analyzing those within it's attention span. It uses Perl as knowledge representation interlingua. The architecture is expansive, complex, and beautiful and integrates many other FRDCSA systems.


Combines aspects of Sayer and Learner
Sayer is a system for positing things about data. Learner is a system for predicting future relationships based on given information. Sayer-learner is a way to expedite the development of both systems.


System to deidentify information
There have been several scrubbing and deidentification attempts through the years. This one seems to have gotten the furthest. The other ones are classify and release-manager. A new module was created called Capability::Deidentify, which uses system::DeID as one possible engine. Unfortunately, the overhead on running this is quite high per invocation, but DeID being written in Perl should be amenable to being unilang-agentified properly. Another feature of scrubber is that it has many keybindings for redacting text, and asserts redacted text into the KB and can automatically redact it from the selected or a set of documents. KBFS tracks the metadata regarding the files.


Integrated sensor-network system for FLP

Setanta Agent

Intelligent IT and scripting transportable agent
Setanta agent can administer machines. It can read man pages and understand the options, and write perl scripts. It can transport itself through the internet. It could administer a defensive network, and recognize network attack plans. It does this using a multi-agent coalition logic, plan recognition, the ability to read, understand and write shell and perl scripts, the ability to understand natural language, a knowledge base and reasoning engine, a plan library, and so on.

Situated Agent Attempts

Attempts to build a "software robot" that can control a Linux system
In the 90s lots of work was done on SoftBots, i.e. software robots that operated in domains such as a Unix environment. We're attempting here to build one that can interact with a vagrant virtual machine, such that we can checkpoint, experiment, measure and restore until the system learns enough about the cause effect relationships on Linux and other Virtual Machines, in order to be able to construct plans to achieve goals.


Extends KMax, or is rather synonymous with it

Social Media Presence

System to coordinate, and log posts to different social media platforms
The field of social networking has expanded greatly and therefore a custom built system designed to handle the outreach efforts of the FRDCSA Project on multiple social networks and tightly integrated with the FRDCSA architecture is now under development. It also functions in other capacities, as a reference section and also a logger of posts to combat censoring.

Software Finder

Searches the web for software that performs a specific task
Software Finder mainly consists of radar-web-search, a program that searches yahoo for systems that have a certain capability.

Special Lug Admin

Software to manager Linux User Groups
In order to manage LUGs in an objective way, we are developing software to automate many of the common tasks, such as talk solicitation, scheduling and announcements, etc.


A focused-crawler for web information extraction, etc
Able to crawl websites, storing multiple versions over time like the wayback-machine. It is especially desired that this system be able to deliberate as it spiders, by using the nlu capabilities of FRDCSA. Ideally it should work similar to a web/unix softbot.

Spreading Activiation Package Search

A system for finding software suitable for a purpose
This system is related to system Recommender but takes much, much longer to run, due to its underlying spreading activation engine.

Shared Priority System Editor

System to edit planning information
The Shared Priority system Editor allows us to rapidly edit and relate sets of goals and to place constraints upon them such as what they depend on for completion, and what time constraints there are related to them. All of this information is then exported into a set of assertions that can be systematically reasoned with in order to generate appropriate plans. Various natural language processing techniques, such as Textual Entailment Recognition, are applied to aiding in the elicitation and breaking-down of knowledge about the situation being planned. Also, recently, we have added tools for visualizing not just planning domains but a large number of other domains requiring similar interactive graph based visualizaition.


SPSE2-Formalog allows us to circumvent some of the limitations of SPSE2

Suppositional Reasoner

System to manage, view and edit game state, moves and plans, etc
Suppositional reasoner currently uses GDL, but should be expanded to handle more gaming abstractions, such as FLP, TIELT, gym, etc. It allows one to load various games, view the state and edit. The idea is to provide an interface to allow positional theorem proving of game positions/states. It runs in emacs, allows enumeration in a buffer of all Ist-Asserted and Ist statements (w/ closures where necessary).


A place to develop APIs for systems
Within the FRDCSA it is not always apparent where to place custom tools developed for systems. So they can go here.


IE tools and datasets to extract system names from websites, documentation
System-IE currently uses MinorThird and a homegrown dataset to train and extract the names of systems from documents.

System Iterator

Iterate over lists of systems and download, package and upload the result.
system-iterator is a (rather weak) play on words. It's mission is to iterate over FLOSSMole, or rather cso, sets of packages, perhaps using information such as auto tagged debtags or other resources from folksonomy, and download and package the various systems automatically, using all the various toolchains in existence such as auto-packager, etc. It's a play on words because in one sense, we are iterating over lists of systems and packaging them (yes it should be able to accept lists of systems as input, such as from vger and package-priority-queue). But in another sense, each time we package a system, we are developing a new iteration of the sequence of increasingly complete FRDCSA supersystems. It differs from vger in that it doesn't seek out software through focused crawling, but iterates over known software. It is similar to but more general than game-time.

System Recommender

Capability based CSO system search
Searches cso for software that matches desired capability. Uses a primitive collaborative filtering implementation to rate software for applicability to a specific purpose, and then finds related software. Rate, filter, repeat.

Task Manager

Gnome applet to interrupt user with important task reminders
Knowing when and how to bring time-sensitive informatino to the user's attention is extremely critical. This is one of the various aspects of executive skills management that makes up the cognitive prosthetics aspect of the FRDCSA.

Task Tagging System

Learns how to tag PSE-x tasks for various important categories
Tags include personal, work, finance, cell phone, and so forth.


Topic Detection and Tracking software
TDT is a very useful capability. This system is charged with collecting various implementations. So far it include Lemur. There is also some research code I am waiting to obtain. It will provide the engine for IRC-tdt.

Text Analyzer

Apply various NLP to text
This system I actually forget what it is supposed to do. I think though that it was intended to provide for a comprehensive analysis of text, such as fact extraction, NLP etc. It would operate on top of something like sayer.


Effort to develop the definitive text on the FRDCSA
It may help to attract developers, facilitate progress, solve problems affecting people, and perhaps to generate some revenue towards the continuance of the project, to publish a text on the workings of the FRDCSA.


Cognitive system for interpretting text
Thinker is closely related to sayer. Thinker makes assumptions about the meaning of texts and proceeds, backtracking when it finds contradictions.

Todo Systems

A collection of initial attempts at various aspects of todo systems
The FRDCSA has a long and glorious history of incomplete todo system implementations. To wit: score, do, Lightspeed, Normal-Form/Spark, Todo, pse, Agenda, system-planning, and task-manager, to name a few. It is a tough domain. (Fortunately, recent work on freekbs has enabled the creation of a set of tools for efficiently working with goals.) Additionally, each system catered towards a different aspect of the so-called executive skills. This system therefore is part of the FRDCSA research into cognitive prosthetics. This system aims to integrate all these aspects into a new system with superior capabilities - that will definitively secure the solution to this challenging domain, at least enough of a solution to keep us on track to achieve the final product. It has been rather successful lately in helping remind me to execute common tasks, although much further work is needed.


Classify your followers
This program classifies twitter followers according to various categories they exhibit. For instance, if they appear to send out only spam, or if they retweet, or talk about only a few topics, etc. This is useful in determining what block operations to perform on followers based on the contents of their posts and other account properties.

Message Classifier

Classify UniLang messages according to intent
This is a subsystem of corpus (that is related to critic) that attempts to apply various strategies to determine how a unilang message should be classified. UniLang sends corpus the log database entry id of a message, and corpus should respond with a set of prescribed actions. One strategy is to use classifications proposed by the user. The annotations are created through one of several interfaces (a critic script and the critic freekbs interface). Another strategy is to apply sayer to the message to obtain semantic information about it, and use that context to derive the desired results. Another strategy being looked at is to group entries together based on approximate lexical patterns.


Determine search rank for various pieces of information
Sometimes it is useful to obtain an idea of how far down the search rankings a particular piece of information is. This system measures that. SEO in general is somewhat shady IMHO, but it helps to give one an idea of why a particular idea is not being visited upon.

VM Release

Constitutes a Virtual Machine release of the FRDCSA
A fully running virtual machine with all the FRDCSA software installed and running.

Web Analytics

This is a work system that measures website efficacy.


Archive important web sites
There are often times that an important website is about to be shutdown. It may be so important that we cannot trust to the internet archive to keep a backup, such as in the case of While caching/annotating useful web content is a very important area, this is just a simple project for archiving major sites. There is really no code of which to speak.

What To Do

Recommender system that integrates with your tasks, goals, etc
What to do suggests different tasks that the user can do when they have trouble thinking of something to work on. The system uses a few heuristics to improve the recommendation. But mainly it can be used to recommend studying and software development activities, as well as entertainment and other pleasurable activities (suggested as rewards for actual accomplishments in order to help facilitate a gamified and rewarding experience that keeps the user engaged in the attempt to resolve their problems and mitigates fatigue and frustration).


System to read and understand books and other texts
Workhorse is a system to set up dedicated servers for the creation of tagged, analyzed and understood texts, and other linguistic research. For datasets, we have Wikipedia, Gutenberg, and hopefully fulltext books from Google Books, all appropriately licensed. We aim to develop a highly annotated freely-available corpus of marked-up texts that have been processed with a wide variety of state of the art systems. We also aim to apply natural language understanding, knowledge base population, and other techniques, onto the texts to derive useful knowledge.


Responsible for tracking and syncing real-world state in order to plan
WSM is similar to the Sentient World Simulation. It is responsible for establishing models of the real world based on evidence it comes across. For instance, a temporal semantics has been implemented based on recording observations of the real world, and knowing the last known state for a particular relation or predicate. Eventually, would like to track confidence, and learn how quickly uncertainty usually grows regarding specific facts, and try to infer when circumstances dictate that a particular fact is likely to have changed. This will integrate with sensors such as basic ones all the way to video object recognition and resolution.


Responsible for tracking and syncing real-world state in order to plan
WSM is similar to the Sentient World Simulation. It is responsible for establishing models of the real world based on evidence it comes across. For instance, a temporal semantics has been implemented based on recording observations of the real world, and knowing the last known state for a particular relation or predicate. Eventually, would like to track confidence, and learn how quickly uncertainty usually grows regarding specific facts, and try to infer when circumstances dictate that a particular fact is likely to have changed. This will integrate with sensors such as basic ones all the way to video object recognition and resolution.

XWordNet Utils

Tools for working with the XWordNet data
XWordNet is a useful source, where all wordnet glosses have been converted into logic forms. This is useful for expanding the meaning of words to aid in lexical inferences in systems such as a Recognizing Textual Entailment system. XWordNet-Utils has perl functions for interacting with the dataset in meaningful ways.