- The FREE LIFE PLANNER (FLP)
- Types of Problems
- Expected User Base
- A Few Screenshots
- FLP Subsystems
The FREE LIFE PLANNER (FLP)
What if one could collect thousands of A.I. tools and apply them towards planning their life? That’s exactly what FRDCSA has been working on for the last twenty years. Only now, you can download a VM containing the core systems. In today’s increasingly complex world, sometimes we can be blindsided by rules we didn’t know existed. If you’re living on the edge, this can be a disaster. What if all the rules that applied to us, from legal, to financial, to just basic common sense, were collected into a system that was capable of reasoning with them and planning with them. You could put your objectives into the system and it would factor in all these things and spit out a plan. Well that’s just one of the many things that FRDCSA’s Free Life Planner A.I. seeks to do.
A.I. is problem-solving, and software that can do this has to grow larger as problems and their complexity multiply. Over the last 20 years the FRDCSA project has collected thousands of codebases, and written hundreds of codebases, gluing everything together and making it available from within Emacs, Perl and Prolog. The Free Life Planner, FLP, takes this and applies it directly towards assisting users in their minute-to-minute, day-to-day, year-to-year lives. Think of a massive collection like V’ger had in Star Trek: The Motion Picture, of things like strong game-playing systems like AlphaZero, but tailored to the specific problems people most often encounter with finances, meal-planning, transportation, health care, etc.
If you’re interested in a personal A.I. assistant, please continue reading about FLP. But it is after all only one of over 600 custom codebases developed for FRDCSA. Now, Panoply, the virtual machine distribution of FRDCSA, has been released for you to explore. So, let’s have a look at some of what the Free Life Planner can do for you.
Free Life Planner is a software program that helps people plan and manage their day to day lives. It lies somewhere between a personal planner and home automation system, but is so much more... It is the flagship application of the FRDCSA Project. It provides Free Software Social Friendly AI for general use, but especially for those experiencing poverty, homelessness, disabilty and/or illness. Note this is only the directory, most of logic is spread throughout FRDCSA. Won't run without rest of FRDCSA. It aims to help people get on top of every security (food, financial, health, emotional etc). It achieves this by employing various planning techniques at multiple scales and granularities. It closely tracks the user's condition and applies knowledge that has been gathered semi-automatically from online texts to their situation.
Types of Problems
So, what kind of planning and management problems are we talking about?
Here are a few:
Remembering to take the trash out before the trash truck arrives.
Getting an automatic notification to stock up on groceries before a predicted storm hits, including the list of the groceries you need.
Remembering that when you finish filling out some particular paperwork, to send a copy to your doctor.
Remember what the doctors instructions were, in a paperless office with Machine Comprehension software, and helping you to conform to them.
Reminding you to work on your taxes, and to change your air filter.
Telling you that a particular plan of yours violates various moral and ethical constraints.
Generating a complex monthly financial plan with contingencies for unexpected expenses and if certain income doesn't come through.
Expected User Base
The use cases go on and on, it is, afterall, a LIFE planner, and life is quite varied at times.
There are few user bases that are expected to benefit more strongly from this system than others.
People with disabilities such as pervasive developmental disorders.
People in poverty who are one misstep from disaster.
People with unwieldy illnesses.
People who are homeless.
In fact, for each of these categories, there are special systems that engage when the system knows they are applicable.
Here is the release of FRDCSA Panoply Git VM (containing older and stripped down versions of FRDCSA and Free Life Planner):
Here is a story describing the Free Life Planner:
Here is a recent talk from EmacsConf2019 about FRDCSA/FLP/Panoply:
Here is an independent codebase (no dependencies on FRDCSA) for interactive plan monitoring:
Here is some more recent work on the Interactive Execution Monitor:
Here is a video of an older, much smaller and simpler version of the FLP booting up (be careful, noisy):
Here is the beginning of a paper on FLP:
and one on FRDCSA:
Here is a paper on the SPSE2 subsystem, an early planning system for FRDCSA which inspired parts of FLP:
Here is a link to the financial planning submodule:
Here is a link to the meal planning submodule:
Here is a video which shows some progress on the planner systems and also later the meal planner:
Here are some earlier documents about the FLP:
Here is the README for Panoply/FRDCSA:
Here is the project blog:
Here is the LogicMOO system mentioned in the EmacsConf video, which FLP draws heavily upon and intends to integrate with eventually:
And here the design docs for LogicMOO:
A Few Screenshots
There is a lot more work that has been finished than we are able to display here. This is because we are "dogfooding" FLP, i.e. using our tools as we develop them, hence it's full of personal info unfit to be demoed or otherwise displayed. So these select few (outdated) screencaps have to suffice.
|alexaPushNotifications||Allows FLP to push notifications to the user using Alexas voice synthesis.|
|allTermAssertions||Lists all ist-Asserted instances of the term in the KB.|
|amazonTodoListIntegration||Integration with Alexa todo list.|
|argIsaDeduction||Infer types of objects from argIsa constraints, or vice versa.|
|atTimeUsingEventCalculus||Infer timelines for atTime predicates using Event Calculus.|
|automatedLegacyTesting||Automatically generate tests from dynamic traces of FLP systems, note changes in behavior that may indicate regressions.|
|autoprogramming||Allows FLP to edit software it is using.|
|billPaymentSubsystem||Tracks bills, when they are due, which have been paid, which are late, etc, etc.|
|bluetoothManagement||Manages integration with Bluetooth devices such as speakers.|
|calendricalRecurrences||Allows complex calendarical scheduling for plans, preconditions, recurrences, appointments, events etc.|
|choreCharting||Schedules who is working on what chores, which chores have still to be done.|
|continuousIntegrationTesting||CI integration for FLP.|
|cycLIntegration||Converts between Prolog and CycL, allowing access to Cyc from within FLP'|
|cycloneBrowser||A browser for Cyclone, the version of PrologCYC/Pscyclone that is ported to FLP.|
|differentialAsserter||Allows FreeKBS2 to edit and quickly reload just the changed portions of large Contexts/Microtheories.|
|doConvertIntegration||Integrates an enormous repository of to.do lists from private FRDCSA systems into the FLP todo system.|
|domainEditor||Allows one to collect and edit all the relevant FLP facts that are referenced by a given PDDL planning domain.|
|eventCalculusPlanner||Abductive planner to infer context from measurements and rules.|
|fdssBankBalanceChecker||Financial Decision Support System module for pulling bank balance information.|
|financialPlanning||Does temporal metric contingency planning for finances, anticipates cash flow for recurring bills and payments in tight financial situations.|
|find||Tracks the location of a cell phone within the house by classifying WiFi signal strength.|
|fluxIntegrationWithSerproFFFOPCJulianAndPlanner||Allows FLUX Agent programming system to work with time and arbitrary Prolog terms.|
|googleHomeIntegration||Integrate with Google Home speech interface.|
|habituals||Helps keep track of habits.|
|homeAssistantIntegration||Integration with the Home-Assistant Smart Home system.|
|iem||Interactively walks user through completion of plans generated by FLP.|
|importExportOfPDDL||Allows conversion of PDDL to and from Prolog, including bidirectional translation of nested to nonnested terms.|
|importProblem||Allows the import of a PDDL problem file into the FLP logicbase.|
|inform7Parser||Able to parse and include Inform7 source files for world, behavior, rule etc modeling in FLP.|
|inform7Planner||Able to represent the world using an exact or similar model as the Inform7 system does, and plan over that world.|
|intakeSystem||Strategically and contingently interview new users to rapidly gain situational awareness in order to help strategize to meet their needs.|
|inventoryManagement||Carefully tracks personal inventory.|
|kbGarbageCollection||Remove temporary nonessential information from the KB after a while.|
|kbfsFormalogGitBindings||Allows FLP to manage files within Git Repositories.|
|kbfsFormalogInotifyIntegration||Tracks and triggers on file system operations using iNotify and KBFS-Formalog.|
|kbs2DataIntegration||Persistnce through ODBC/SWIPL for FLP using MySQL.|
|kbs2MySQLPersistence||Persistence through UniLang/FreeKBS2 for FLP using MySQL.|
|kbs2ReasonerProlog||A backend for FreeKBS2 to use Prolog instead of Vampire-KIF, etc, as the reasoning engine.|
|lifeWorkflowSystem||Create "Business Processes" for real life autopoietic processes.|
|locationLogic||Reason with and trigger upon all locational aspects of the user from GPS and Wifi location tracking.|
|logicVerification||Uses model checkers to prove safety and liveliness properties of different logics.|
|mealPlanner||Comprehensive Meal Planning, able to track barcodes, suppliers, price, inventory, nutrition, recipes, preferences, etc.|
|medicationTrackingSystem||Track user medication, side effects, refills, renewals, appointments, inventory, etc.|
|mepkIntegration||Allows epistemic planning in FLP, useful for managing the situational awareness of users.|
|microtheories||Implements Cyc-like Microtheories for clean separation and inheritance of KB knowledge.|
|multiuserSupport||Allows FLP to support multiple users without cross-contamination of data.|
|musicPlayback||Manages music playback, controllable from Alexa.|
|mycroftIntegration||Integrate with MyCroft speech interface.|
|nagiosIntegration||Network monitoring integration (with Setanta) for defending the security of FLP and its private information store.|
|negation||Allows classical negation in Prolog, or negation with atTime.|
|nestedTermToNonnestedTermMapper||Maps terms which have nonatomic subterms to and from terms that do not.|
|nlGeneration||Translates Prolog representations into English and other languages.|
|notificationsSystem||A notification system like Android notifications, for recurrences, plan steps, appointments and such.|
|objectDetectionIntegration||Detection and reasoning with objects and time in video surveillance feeds.|
|openAuth2||Ensure FCMS (FRDCSA CMS) can authenticate using OpenAuth2.|
|organizationalRules||A source code critic system to ensure FLP source files are structured correct and follow FLP best practices.|
|owntracks||Tracks the GPS location of the cell phone, does reverse GEO lookups'.|
|pantryManagementInterface||An inventory subinterface for handling food pantries and all the special functions they require.|
|pddlSWIPLPackage||A pack for SWIPL with PDDL functionality originally written for FLP.|
|planningDomains||Planning to maintain or regain contact with the user regardless of where the user is.|
|productivityInterview||Elicits information regarding which conditions of productivity are presently met, including planning for future meeting of needs.|
|productivityRequirements||Tracks the conditions for being productive, whether they are satisfied, and plans to satisfy and maintain them.|
|programSynthesis||Allows FLP to compose algorithms to solve problems it is facing.|
|prologToGdlConversion||Bidirectional converion from Prolog to GDL (Game Description Language) to allow GGP (General Game Playing) agents to solve life-games.|
|qlfPersistence||Move monotonic FLP FreeKBS2 Predicates/Contexts/Microtheories into QLF for faster loading, compression, and cold storage.|
|receiptManager||Tracks online downloaded or email and brick and mortar scanned receipts, pulls supplier and pricing information.|
|resourceManager||Tracks household resources, finances and productivity requirements.|
|securityPlanner||Generates adversarial plans to keep information/resources secure.|
|sensorIntegration||A generic interface for all manner of sensors to update the world-model of FLP.|
|shoppingList||Tracks complete lifecycle of resource acquisition.|
|speechInterface||A dialog system for interacting with FLP over Alexa, via text chat, or other modes.|
|temperatureMonitor||Integrates with USB or 433MHz temperature sensors and online weather APIs to track internal/external temperature, and take actions based on temperature changes/patterns.|
|temporalSemantics||Ability to reason with time information in Prolog using atTime, such as with the Event Calculus, PDDL temporal planning, or the Julian date time library.|
|universalParserBNFParser||Part of Prolog-Agent, needed to parse arbitrary program output, such as the output of top or ls, into semantic representations understable by FLP.|
|worldKnowledgePlusAutovivification||Tracks world knowledge such as names, ontological categories and so forth, making educated guesses as needed.|
|zoneMinderIntegration||Surveillance integration and special AI modules for video understanding.|