2010Q3 Grant Proposal: FRDCSA Initial Release


FRDCSA Initial Release


Andrew John Dougherty


[hidden email] [hidden email]

Amount Requested:

$2250 +- $750 is how much is needed to release it, but a full computation of its value is not known to me - although the OFCS system designed by Teddy Goldenberg and soon-to-be implemented by the system-implementor codebase would be able to make a more informed estimate.


The FRDCSA consists of, among other things, over 1700 Perl5 modules in various stages of completion that operate in a tightly interwoven fashion. There are many entire systems for novel and important applications, especially from various subjects in Artificial Intelligence, as well as wrappers and APIs for other useful systems. Unfortunately, owing to their interdependence, lack of tests and documentation, need for a systematic renaming and deidentification - distributing them through CPAN has not yet been accomplished, although most of the software required to compute their distribution has been written. I seek a grant to facilitate their release either in majority or totality.

Benefits to the Perl Community

This grant IMHO would greatly improve the situation for Artificial Intelligence through Perl. But the benefits are not limited to pure theory, they are very practical - as these techniques, and the systems for which wrapping is provided, would then be instantly accessible to the entire Perl community. I do not expect the project to be understood from the getgo, however, as Perl programmers come across it, by searching CPAN for various tools, it should draw a small amount of attention - enough to bring the true benefits of the cohesive and interwoven system to the attention of Perl power users. As I am not a Perl expert, I am not familiar with all of the greatest aspects of Perl - however, I do know that there are many systems lacking for which I have labored over 10 years to provide the matching capabilities. Getting some attention for my project would be important to secure the goals of the system. The system, such as it is, is an attempt to implement a transfinite solution to Hilbert's problem. In this sense, it contains as its goal to solve all mathematical problems, which are thought to impose themselves on the real world. Goedelian incompleteness is not an obstacle, it is the cornerstone, based on associating logics with increasingly complete systems of logic ala Turing 1939.

How will this advance the release of Perl 6?

Interesting question that was not in the first template I filled out. I have often wondered whether this system is necessary to complete Perl6. I cannot comment precisely on exactly what it will do wrt the existing Perl 6 spec. However, if that spec is mutable, I think there are essential components. That is to say, if we can think of Perl 6 as being a more capable or "intelligent" version of Perl, then the availability of these tools will greatly enhance and furnish that goal. For instance, there is limited existing CPAN support for Semantic Web, Theorem Proving, or certain individual techniques from Natural Language Processing. One component of the FRDCSA is FRDCSAL which is a Perl based programming language where you write the code in English, and the code is translated to logic and executed. True, these are Perl5 modules, but when the automated refactoring system is complete, and the formal specification is complete - it will be possible to translate semi-automatically to Perl6. There is also a subproject called Perform: which is a knowledge base about algorithms and data structures - which includes their complexity and all kinds of other features, intended as a devastatingly complete standard library for Perl6.


First, please make sure my webservers are still online. My static IPs are scheduled to be cancelled and the server will go down whilst I covert it to Dynamic DNS. (Alternatively funding would allow me to keep the IPs.) If there is an issue - I can create a large tarball of all the items and send it upon request.

Many to all modules released.

Here is a very recent module list:


For more information, please see the ancient description. Upon request I can regenerate the pages to reflect the current situation.


I have just this year started writing GUIs as frontends for various systems: Here is a page on that:


There is also: http://frdcsa.org http://posithon.org and http://intranet.posithon.org

I am not familiar with milestone documents. The critical path is in the process of being computed, but won't be finished prior to the actual release. Here is an outdated document that sort of documents that:


I have since added nested formulae and First Order w/Equality inferencing to FreeKBS2 - which makes the planning system much more capable - however, it has not been fully updated to use the new backend and so is not usable at the moment.

Also see number 13 at:


Project Details

The project is based primarily on Algorithmic Information Theory, and "Information Theoretic Limitations of Formal Systems". The basic idea is that, given a particular Turing machine, in order to accomplish tasks of increasing complexity, the software must ultimately grow in program length. Therefore, a necessary but insufficient condition for an "Artificial Intelligence" that has many capabilities is that it is large. This means that one heuristic for finding existing such systems is that the system is large. This immediately makes one think of Perl, Debian and Emacs - which all check out as extremely capable systems. The system is based upon these, but will not be exclusive to them. However, as comprehensive as CPAN is, there are still elements missing.

Hence, we contemplate how to grow the system - there are two approaches - write software by ourselves - or find existing software. Both are taken. To find existing software, both existing large metasites (Sourceforge/Freshmeat/Google Code/etc) and active focused crawling for the location of new software. The Flossmole project releases data. To classify the data, the Debian tags and Sourceforge categories have been trained via an SVM text classifier to classify new entries according to these folksonomies. All this information goes into the CSO (Comprehensive Software Ontology). Focused crawling is achieved with the radar-web-search system, a multithreaded spider that searches several ply deep on websites for files that would seem to be useful. These are downloaded and go through an entire system which I cannot help but to compare to a digestive system. They are (semi-)automatically packaged for Debian using the Packager system.

For writing software, there are an equal number of sundry systems that expedite that process. For instance, all kinds of project templates and functions exist in the BOSS system. A particularly useful trick is ppi-convert-script-to-module.pl, which takes a script and converts it bit by bit to the standard Object Oriented Perl Module format. It is an example of a hand-coded automated refactoring that is going to be rearchitected into a deliberative automated refactoring system.

What is the goal of the project? The project aims to characterize all arguments for and against various beliefs, audit them for relative considerations, and present people with, if possible, a uniquely action guiding moral support intelligent agent. The basic goal of the project is to resolve problems that affect sentient beings in an equinaminous and peaceful manner. Many resource conflicts can be avoided through more rational behavior.


There are several primary tasks for the project wrt CPAN. They are: Release, Refactor, Test and Document. The first three have corresponding automatic implementations: Release -> Task1, Refactor -> CodeMonkey, Test -> icodebase-testing. Documentation will be largely by hand and/or copied from my existing documents. Task1 is mostly complete. Refactor is 10-15% complete. Test is not really started. To fit within the time frame of the 3 month release schedule, I will focus only on Release (unless it happens faster than expected).

Release is divided into: Dependencies, Renaming, Deidentification, Testing. Dependencies are already computed but will be tidied up (have to reacquaint myself with the Task1 codebase), and possibly will now use FreeKBS2 logic programming to simplify the tasks. Testing will be only as necessary. Only about 2% of tests have been written. Renaming requires testing (to prevent large scale breakages), but is otherwise straightforward. Deidentification is tedious, however the Classify deidentification system is about 50-60% complete.

This should be enough to get the project into use and should generate future interactions which will ensure its completion.

Project Schedule

Project will take <= 3 months.

Can begin immediately upon receipt of initial funding segment.

Completeness Criteria

The project will be complete if most of the important systems of the FRDCSA are in CPAN and are not in a catastrophic condition. Given that there are 1700 modules, it is not reasonable (unless the automated refactoring system is finished, populated with adequate rules, and extremely accurate) to expect me to bring the code up to the quality standards that I myself do not know. Therefore, having them available in CPAN should be enough to attract attention to them, at which point in time what I need to do will be told to me rather than queried blindly and annoyingly of Perl experts. Many of them already function perfectly adequately or even superbly.


Who are you? What makes you the best person to work on this project?

Tounge-in-cheek: I am nobody. Nobody is working on this.

Alternatively, and please delete if you don't like it:

My life has been hinted to as being unexamined and a quixotic quest to implement a restricted form of weak artificial intelligence.

I studied mathematics at the University of Illinois at Urbana Champaign for 4 years, mainly auditing the graduate mathematics classes to the detriment of my undergraduate studies. It was there that I developed the theory of artificial intelligence called FRDCSA based on Information Theoretic Limitations of Formal Systems and Algorithmic Information Theory. This mathematical theory, combined with practical considerations, implies that certain modules be present in CPAN. However, I could not find them. So I set out to write these modules. (I have presented twice at YAPC about this system, but was embarassed by the presentations which were both completed with limited time resources. I had not finished the most important slide, and there were over 4 errors on it, so I just skipped over it. And in the second one, it sounded as if I were preaching to the community. Also, despite testing ahead of time, the audio but not video played.) I also moved to Pittsburgh where I worked at CMU as a research programmer and teacher for students on the autistic spectrum, while completing the modules. However, I have tried to release the modules but have never been able to finish that effort. Funding would set up the proper circumstances for this to happen. The effort to release my life's work is reckoned important enough that the system which computes the release is called Task1.

I am writing this to prevent bad things from happening to people, in memory of my loving sister, Ann. If I can prevent one person from going through what we went through it will have been a success. But being free software, it could help many more at no marginal cost.


What does FRDCSA stand for? (It's not defined in the first screen's worth of paragraphs in this proposal.)

Formalized Research Database: Cluster, Study and Apply

I find this whole proposal way too vague. A good AI toolkit for Perl would be interesting to have, but I'm not having enough data to judge how good or useful this toolkit is or how much work it will be to to get this work done.

About TPF

The Perl Foundation - supporting the Perl community since 2000. Find out more at www.perlfoundation.org.

About this Entry

This page contains a single entry by Alberto Simões published on August 1, 2010 2:58 PM.

2010Q3 Grant Proposal: Perl 6 Tablets was the previous entry in this blog.

2010Q3 Grant Proposal: SF.pm Funding is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.


OpenID accepted here Learn more about OpenID
Powered by Movable Type 6.2.2