Commands - These are some commands that I would like to be able to support. (ideally)
Create/Design a system/interface which can translate strings of text into queries and operations for execution. Features:
- clustering of operations for context based on personal history
- clustering to determine what kind of transformations do not change meaning. (also use for guessing undefined commands)
- clustering to determine what words go in similar places.
- clustering to show information you will probably ask. (and provide buttons (with icons?) for others)
- use existing/learn new common spelling errors and automatically correct them
- translations that leave context clues behind. (need to start dealing with database of some kind, unique identifiers and what format the data should reside in)
- leveraging other peoples' history and contexts
- consider/avoid problems this could generate from users with a malicious intent
- fail proof undo operation
- allowing complex manipulation of multiple commands (do x when y)
- somehow give names to clusters to avoid ambiguity before it happens. (is this really necessary?)
Other considerations with shared contexts/translations
- sharing just context could be much more secure than translations (although less useful)
- what commands could you trust to a system like this?
- how useful could a system like this be for sensitive/proprietary applications?
- address issues of privacy
Issues raised with mixing translations
- allowing enough power such that commands can be given to change the way future commands are translated (ex. don't stop playing music unless I explicitly say "stop playing music")
- where does this system run into problems such as the above.
- how do you reduce these types of problems?
- by allowing complex mixing of various commands
- again make sure that when the commands are mixed, malicious combinations can not be created.
- make sure undo still works
Context Clues
- how could meta-information about what information has most recently been referred to be stored and accessed?
Possible fields of research:
- clustering to determine the context of the command and execute the correct one.
- Collaborative filtering - Anyway to avoid robots sending this data?
- Hierarchical Temporal Memory - ??? useful ???
- built in levels of trust where translations provided by untrusted sources can not get access to parts of the system. Not really a whole lot different than the trust systems already in place for open source software. How can the trust which allows apt-get be leveraged to allow new translations?