FRDCSA | internal codebases | KMax

[Project image]

Architecture Diagram: GIF
Code: GitHub

Jump to: Project Description | Parent Description | Capabilities

Project Description

kmax is derived via analogy to Emacs, and incorporates many techniques from AI. It aims to borrow the innumerable, well tested features of Emacs, but also integrates a large repository of knowledge based tools into it, so that kmax functions as an intelligent agent, making decisions and even reasoning about the psychology of the user. Binding of keystrokes to functions. Large, well organized library of functions. Automatic optimization of the key layout, based on methods from coding theory.


  • Make kmax-search-buffers not return all buffers in event of no matches.
  • Free Life Planner and kmax should look at pceemacs.
  • Add a search function to elog, then check whether kmax/to.do ever existed, or if it was deleted from git somehow.
  • Maybe study more about type systems and the like before writing the kmax-object-manipulation-system
  • Individual objects should have timelines that are explorable in their kmax Object Manipulation System interface.
  • Create a concept for kmax of buffers that are important in certain contexts, and so it will prefer to keep those open rather than opening things over them. Maybe have an importance rating for buffers.
  • Develop a system for, in addition to the kmax-object-manipulation-system, classical planning for it's use for people who do not yet know the functions.
  • Create a kmax function for obtaining a shell in the directory of the file currently visited
  • Set up a system with kbfs using Prolog which understands whether a directory has been updated or not. And reminds us, when doing the kmax-update-frdcsa-repositories to do all the different ones that need updating.
  • Think about EIEIO in relation to kmax Object System
  • kmax should use ELog and kbfs to record the files which it is editing, and mark those files up with annotations and tags against a git version control version.
  • Apply the function learning aspects of IAEC to Emacs functions, among others, as part of kmax.
  • kmax can have the sayer id of a buffer.
  • Perhaps kbfs can integrate with kmax
  • There is a notion of what are all the commands I can run at point, so for instance if certain commands would fail at point, then they would not count. This concept is part of the kmax-object-manipulation-system.
  • Write the kmax-object-manipulation-system system - although try to read about EIEIO etc first, type systems, and so on. Read about Category Theory.
  • For kmax-object-manipulation-system, the thing at point, and like for instance, in w3m, a URL under point, should automatically hint at certain actions. For instance, the URL will have different actions possible to undertake on it. Perhaps what we need to do is use EIEIO and duck typing or something.
  • For the kmax-object-manipulation-system, have it so that you can bring up a gloss page which allows navigation across common actions, facts, etc about the object. So for instance if the type of object you selected was a paper as in research paper, you would have affordances for obtaining the citations, etc.
  • Develop an extension of w3m mode for integration with kmax.
  • Research the problem with kmax.el where it had multiple like 10 different copies of similar definitions. Find if there was ever changed content in there.
  • kmax: Emacs macros would be substantially more powerful if they could include tests and conditional logic, if they don't already.
  • Have kmax-search extend to searching all emacs stuff in memory, such as documentation etc
  • Write code to detect what other users are trying to do, and guide them to the solutions. This should be part of kmax
  • Be sure to write a better system for text navigation in kmax.
  • That should be part of kmax.
  • kmax can use trace editing histories to predict based on text content what the desired action might be.
  • APE needs features for doing checking, like "spin". APE is really very close to kmax

This page is part of the FWeb package.
Last updated Sat Oct 26 16:53:40 EDT 2019 .