/free-life-planner

Free Life Planner: Free Software Social Friendly AI for general use, but esp for those w/ poverty, homelessness, disabilty or illness. Note this is only the directory, most of logic is spread throughout FRDCSA. See https://github.com/aindilis/frdcsa-panoply-git-20200329 for VM distribution of FRDCSA and FLP.

Primary LanguageAssemblyOtherNOASSERTION

  1. The FREE LIFE PLANNER (FLP)
  2. Types of Problems
  3. Expected User Base
  4. Links
  5. A Few Screenshots
  6. 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.

Links

Here is the release of FRDCSA Panoply Git VM (containing older and stripped down versions of FRDCSA and Free Life Planner):

https://github.com/aindilis/frdcsa-panoply-git-20200329

Here is a story describing the Free Life Planner:

https://frdcsa.org/~andrewdo/writings/homeless-story.html

Here is a recent talk from EmacsConf2019 about FRDCSA/FLP/Panoply:

https://frdcsa.org/~andrewdo/frdcsa-emacsconf2019-final.webm

Here is an independent codebase (no dependencies on FRDCSA) for interactive plan monitoring:

https://github.com/aindilis/plan-monitor

Here is a video of an older, much smaller and simpler version of the FLP booting up (be careful, noisy):

https://www.youtube.com/watch?v=t_dCAlf26LE

Here is the beginning of a paper on FLP:

https://frdcsa.org/~andrewdo/pioneer/wk1/flp.pdf

and one on FRDCSA:

https://frdcsa.org/~andrewdo/pioneer/wk1/frdcsa.pdf

Here is a paper on the SPSE2 subsystem, an early planning system for FRDCSA which inspired parts of FLP:

https://frdcsa.org/visual-aid/pdf/Temporal-Planning-and-Inferencing-for-Personal-Task-Management-with-SPSE2.pdf

Here is a link to the financial planning submodule:

https://github.com/aindilis/financial-planning#projected-transactions-for-florence-tucker

Here is a video which shows some progress on the planner systems and also later the meal planner:

https://www.youtube.com/watch?v=XZh_tHNboCI&t=15s

Here are some earlier documents about the FLP:

https://frdcsa.org/~andrewdo/writings/News-Challenge-2.html

https://frdcsa.org/~andrewdo/WebWiki/FreeLifePlanningCoachSoftware.html

https://frdcsa.org/~andrewdo/WebWiki/FreeLifePlanningCoachSoftwareUpdate.html

https://frdcsa.org/~andrewdo/WebWiki/FreeLifePlanner.html

Here is the README for Panoply/FRDCSA:

https://frdcsa.org/~andrewdo/writings/README.html

Here is the project blog:

https://facebook.com/frdcsa

Here is the LogicMOO system mentioned in the EmacsConf video, which FLP draws heavily upon and intends to integrate with eventually:

https://github.com/TeamSPoon/prologmud/wiki

And here the design docs for LogicMOO:

https://drive.google.com/drive/#folders/0B0QA19UX0ehlV1ZEaXEzc3hjTWM

A Few Screenshots

flp-01 flp-02 flp-03 flp-04 flp-05 flp-06 flp-09 flp-10 flp-11 flp-12 flp-14 flp-16 flp-17 flp-18 flp-19 flp-20 flp-21 flp-22 flp-23 flp-25 flp-28

FLP Subsystems

alexaPushNotificationsAllows FLP to push notifications to the user using Alexas voice synthesis.
allTermAssertionsLists all ist-Asserted instances of the term in the KB.
amazonTodoListIntegrationIntegration with Alexa todo list.
argIsaDeductionInfer types of objects from argIsa constraints, or vice versa.
atTimeUsingEventCalculusInfer timelines for atTime predicates using Event Calculus.
automatedLegacyTestingAutomatically generate tests from dynamic traces of FLP systems, note changes in behavior that may indicate regressions.
autoprogrammingAllows FLP to edit software it is using.
billPaymentSubsystemTracks bills, when they are due, which have been paid, which are late, etc, etc.
bluetoothManagementManages integration with Bluetooth devices such as speakers.
calendricalRecurrencesAllows complex calendarical scheduling for plans, preconditions, recurrences, appointments, events etc.
choreChartingSchedules who is working on what chores, which chores have still to be done.
constantNamesCapitalization
continuousIntegrationTestingCI integration for FLP.
cycLIntegrationConverts between Prolog and CycL, allowing access to Cyc from within FLP'
cycloneBrowserA browser for Cyclone, the version of PrologCYC/Pscyclone that is ported to FLP.
differentialAsserterAllows FreeKBS2 to edit and quickly reload just the changed portions of large Contexts/Microtheories.
doConvertIntegrationIntegrates an enormous repository of to.do lists from private FRDCSA systems into the FLP todo system.
domainEditorAllows one to collect and edit all the relevant FLP facts that are referenced by a given PDDL planning domain.
eventCalculusPlannerAbductive planner to infer context from measurements and rules.
fdssBankBalanceCheckerFinancial Decision Support System module for pulling bank balance information.
financialPlanningDoes temporal metric contingency planning for finances, anticipates cash flow for recurring bills and payments in tight financial situations.
findTracks the location of a cell phone within the house by classifying WiFi signal strength.
fluxIntegrationWithSerproFFFOPCJulianAndPlannerAllows FLUX Agent programming system to work with time and arbitrary Prolog terms.
googleHomeIntegrationIntegrate with Google Home speech interface.
habitualsHelps keep track of habits.
homeAssistantIntegrationIntegration with the Home-Assistant Smart Home system.
iemInteractively walks user through completion of plans generated by FLP.
importExportOfPDDLAllows conversion of PDDL to and from Prolog, including bidirectional translation of nested to nonnested terms.
importProblemAllows the import of a PDDL problem file into the FLP logicbase.
inform7ParserAble to parse and include Inform7 source files for world, behavior, rule etc modeling in FLP.
inform7PlannerAble to represent the world using an exact or similar model as the Inform7 system does, and plan over that world.
intakeSystemStrategically and contingently interview new users to rapidly gain situational awareness in order to help strategize to meet their needs.
inventoryManagementCarefully tracks personal inventory.
inventoryManagementInterface
kbGarbageCollectionRemove temporary nonessential information from the KB after a while.
kbMaintenance
kbfsFormalogGitBindingsAllows FLP to manage files within Git Repositories.
kbfsFormalogInotifyIntegrationTracks and triggers on file system operations using iNotify and KBFS-Formalog.
kbs2DataIntegrationPersistnce through ODBC/SWIPL for FLP using MySQL.
kbs2MySQLPersistencePersistence through UniLang/FreeKBS2 for FLP using MySQL.
kbs2ReasonerPrologA backend for FreeKBS2 to use Prolog instead of Vampire-KIF, etc, as the reasoning engine.
lifeWorkflowSystemCreate "Business Processes" for real life autopoietic processes.
locationLogicReason with and trigger upon all locational aspects of the user from GPS and Wifi location tracking.
logicVerificationUses model checkers to prove safety and liveliness properties of different logics.
mealPlannerComprehensive Meal Planning, able to track barcodes, suppliers, price, inventory, nutrition, recipes, preferences, etc.
medicationTrackingSystemTrack user medication, side effects, refills, renewals, appointments, inventory, etc.
mepkIntegrationAllows epistemic planning in FLP, useful for managing the situational awareness of users.
microtheoriesImplements Cyc-like Microtheories for clean separation and inheritance of KB knowledge.
multiuserSupportAllows FLP to support multiple users without cross-contamination of data.
musicPlaybackManages music playback, controllable from Alexa.
mycroftIntegrationIntegrate with MyCroft speech interface.
nagiosIntegrationNetwork monitoring integration (with Setanta) for defending the security of FLP and its private information store.
negationAllows classical negation in Prolog, or negation with atTime.
nestedFormulaeForVerb
nestedTermToNonnestedTermMapperMaps terms which have nonatomic subterms to and from terms that do not.
nlGenerationTranslates Prolog representations into English and other languages.
notificationsSystemA notification system like Android notifications, for recurrences, plan steps, appointments and such.
objectDetectionIntegrationDetection and reasoning with objects and time in video surveillance feeds.
openAuth2Ensure FCMS (FRDCSA CMS) can authenticate using OpenAuth2.
organizationalRulesA source code critic system to ensure FLP source files are structured correct and follow FLP best practices.
owntracksTracks the GPS location of the cell phone, does reverse GEO lookups'.
pantryManagementInterfaceAn inventory subinterface for handling food pantries and all the special functions they require.
pddlSWIPLPackageA pack for SWIPL with PDDL functionality originally written for FLP.
planningDomainsPlanning to maintain or regain contact with the user regardless of where the user is.
productivityInterviewElicits information regarding which conditions of productivity are presently met, including planning for future meeting of needs.
productivityRequirementsTracks the conditions for being productive, whether they are satisfied, and plans to satisfy and maintain them.
programSynthesisAllows FLP to compose algorithms to solve problems it is facing.
prologToGdlConversionBidirectional converion from Prolog to GDL (Game Description Language) to allow GGP (General Game Playing) agents to solve life-games.
qlfPersistenceMove monotonic FLP FreeKBS2 Predicates/Contexts/Microtheories into QLF for faster loading, compression, and cold storage.
receiptManagerTracks online downloaded or email and brick and mortar scanned receipts, pulls supplier and pricing information.
resourceManagerTracks household resources, finances and productivity requirements.
securityPlannerGenerates adversarial plans to keep information/resources secure.
sensorIntegrationA generic interface for all manner of sensors to update the world-model of FLP.
shoppingListTracks complete lifecycle of resource acquisition.
speechInterfaceA dialog system for interacting with FLP over Alexa, via text chat, or other modes.
temperatureMonitorIntegrates with USB or 433MHz temperature sensors and online weather APIs to track internal/external temperature, and take actions based on temperature changes/patterns.
temporalSemanticsAbility to reason with time information in Prolog using atTime, such as with the Event Calculus, PDDL temporal planning, or the Julian date time library.
universalParserBNFParserPart of Prolog-Agent, needed to parse arbitrary program output, such as the output of top or ls, into semantic representations understable by FLP.
worldKnowledgePlusAutovivificationTracks world knowledge such as names, ontological categories and so forth, making educated guesses as needed.
zoneMinderIntegrationSurveillance integration and special AI modules for video understanding.