Tech/PIM3/Archive/PIM3

PIM3 is a codename for an AIMS research fork at developing a individual information assistant to lock down your cricital data where you will never lose it, run useful analysis on that data in a safe, local, encrypted environment, and provide you with the day to day information you want and need without ever having to search. It is technology that, if successful, users will think of a literally friendly - in that it is actively looking out for them - rather than merely a tool.

It is currently only in conceptual design stages and is being used as a platform to research and experiment with information systems technologies and practical, small-scale artificial intelligence.


 * Secure (fully encrypted)
 * Reliable (full backup & universal access)
 * Supports revision history & timelining
 * Supports transactions (undo, sandboxing)
 * Supports data sharing (e.g. photos accessible to flickr, facebook)
 * ACLs (group sharing, etc., policies)
 * Supports local & remote storage (distributed storage)
 * Support notion of source & derived files (photos vs thumbnails)

Topics, Notes, & Books
A user can create a Note object: Title + Text (HTML).

The user can then also assign a series of Topics to which this Note applies. Each Note also has permissions, revision history.

A Book can then be created which is an hierarchical organization of Note objects. In real use, the user will create a Book object and populate it with newly created Notes. (A Book likewise has a Title and Topics).

Note objects
The user creates a collection of Note objects. These represent revision-history aware, licensed, ACL'ed, contents of HTML content. They can be cloned, forked, etc. Conceptually, think of them as smart index cards with a chunk of content.

At the database level, the Notes are effectively a huge, unsorted pool of data. These unsorted notes alone are not very useful.

User Topic Trees
The user, when creating notes, generally is creating them in a outline, MediaWiki sort of manner. Each chunk of text becomes a Note.

A Topic is a per-user object. It can have sub-topics, which are ordered. This outline view is how the user navigates the notes. Each topic can have associated notes.

Ease of Use
The notes should be easy to organize: drag and drop, keyboard controls, etc. for quickly promoting, demoting, creating children and sibling Notes.

tags, topic assocatiations, special pages, projects, views

Category
Each user Topic can optionally be associated with a Category. A Category is a shared entity that represents a common Topic. For example, "NASCAR Racing" might be such a Category.

Each public Topic implicitly creates a Category of the same name. The Topic title is *not* necessarily the same as the Category name. This allows the outline to match the user preferences but still link a "semantically objective" Category object.

The Category object is the semantic object: it maintains links to external data sources. Google keywords, news feeds, translations of the topic title, wikipedia's page on the topic, etc. Each can be attached to a Category. Since, these are shared objects, each Category property is treated as a Property. (Can Property objects and Note objects be the same?). The Property has:


 * Quality Rating
 * Relevance Rating
 * Parent Link

The Category is effectively the bridge to other user's information and general information on the Internet on a topic.