Name Andrew John Dougherty Email & Phone andrewdo@frdcsa.org, adougher9@gmail.com 331 684 7712 Project Title FRDCSA Initial CPAN Release Synopsis 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 Perl 6 Development 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. Deliverables Many to all modules released. Here is a very recent module list: http://frdcsa.org/~andrewdo/projects/module-list.txt For more information, please see the ancient description. Upon request I can regenerate the pages to reflect the current situation. http://frdcsa.onshore.net/frdcsa. I have just this year started writing GUIs as frontends for various systems: Here is a page on that: http://frdcsa.org/~andrewdo/projects/frdcsa-guis 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: http://files.meetup.com/970635/semweb.pdf 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: http://frdcsa.org/~andrewdo/projects/frdcsa-guis/ 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. Project Schedule How long will the project take (calendar duration, not effort in hours)? 3 months. When can you begin work? Immediately. 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. 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. Report Schedule How do you plan to provide updates on your work? However is desired. I can provide a completion calculus and website which shows what components are complete and how complete they are. How frequently will these updates be made? Real-time. Note that payments on the grant will be contingent on the successful acceptance of milestones and the submission of reports. In that case, we can define a set of critical modules. The first milestone will be to upload anything. The second to upload a full project, and/or complete the auto-upload. The third will be to release two full projects. If I release RADAR, there is a person who may help with that. Fourth will be to compute the core distributions. Fifth will be to release them. 6th with be to compute the remaining project area maps (e.g.: http://frdcsa.org/collab/doc/x23.htm). the last nth steps will be to complete each of those, but this last step is optional (it would follow automatically from releasing the core set, I am just trying to jump that hurdle). Public Repository Where will the code be stored upon completion? CPAN. after the project, will also be packaged for Debian, and then other systems. Where will the change logs be held? Wherever they are on CPAN. Grant Deliverables ownership/copyright and License Information Which OSI license do you plan to release your code (or other deliverables) under? TPF has a preference for Artistic 2.0 but we are willing to discuss other options, including dual-licensing options. I feel that it should be GPLv3 - but I would strongly advise against the use of the project in any capacity that promotes or facilitates violence. Who and/or which organization will have ownership (copyright) of the grant deliverables? TPF has a preference for itself to be the owner of the deliverables but we are willing to discuss other options, specifically in the situation where the deliverables extend an existing well-established project. Hrm, as the deliverables are modules that have already been written I would prefer them to remain GPLv3. Please let me know if I don't understand the question. Bio Who are you? What makes you the best person to work on this project? 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 Don Quiotesc 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. Country of Residence United States. Nationality Residents and nationals of countries who we are prohibited by U.S. law from engaging in commerce, are ineligible to participate. Amount Requested In USD$ $2250 +- $750 The nominal maximum monthly payment is USD$5000 for full-time work on the grant. This amount is not changed based on changes to the schedule of the grant once the grant is in process. Payments for varying levels of part-time work will be pro-rated against this nominal amount. Okay to publish proposal? : Yes, I am extremely grateful for additional publicity in the Perl community. This question is whether you are comfortable with us posting your grant request information on http://news.perlfoundation.org/ for public evaluation and comments during its review. All accepted grants will be published on http://news.perlfoundation.org/ and http://www.perlfoundation.org/ Personal contact information will be omitted from postings. Suggestions for Grant Manager From YAPC I know that Adam Kennedy would understand the FRDCSA system, but I don't know anything about his availability, interest, and/or management abilities. The advisor should be able to help me stay focused as I tend to have a flight of ideas, but they must not stifle me by not understanding the complex position and requirements of the project or by micromanagement. Their participation should be loose, understanding, supportive, and disciplined, but not controlling, stifling, or insensitive to my fickle flights of motivation. I have written a document explaining my modus operandi. Anyone knowledgeable with CPAN standards who won't stifle me and then blame me would be most welcome. Again, the system and situation are complex and I am boundedly rational. All TPF grants have a Grant Manager assigned to them. This person is a volunteer who can, on TPF's behalf, maintain communication with the grant recipient throughout the duration of the grant to track progress and accept (or deny) grant milestones and deliverables. The grant manager should be someone who is intelligent, earnest, conscientious, knowledgeable/expert in the technical material of the grant and someone with a good and trusted reputation in the Perl community. Thanks guys!