Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
intertwingle [2008-11-15 17:56] – 81.188.78.24 | intertwingle [2009-12-14 10:20] (current) – nik | ||
---|---|---|---|
Line 5: | Line 5: | ||
====vast volumes of email==== | ====vast volumes of email==== | ||
- | May 18th | + | May 18th (1998) |
Submitted by Jamie Zawinski to Miscellaneous. | Submitted by Jamie Zawinski to Miscellaneous. | ||
- | " | + | " |
In the following, I outline a potential project to make it easier to deal with a massive volume of personal messages: excavating, traversing, relating, reporting, annotating. | In the following, I outline a potential project to make it easier to deal with a massive volume of personal messages: excavating, traversing, relating, reporting, annotating. | ||
Line 114: | Line 114: | ||
The basic components of this system are: | The basic components of this system are: | ||
- | ====1. parser.==== | + | ===1. parser.=== |
The module which reads the existing message store (directories of BSD mbox files, or news spool directories, | The module which reads the existing message store (directories of BSD mbox files, or news spool directories, | ||
Line 199: | Line 199: | ||
- | ==== 2. database.==== | + | === 2. database.=== |
The module which stores the output of the parser on disk in some quickly-retrievable format. It needs to have both relational and full-text-indexing properties; many of the searches we want to do could be accomplished with a database that was nothing but a glorified set of hash tables; but body searches need to be done in some more clever way. (Perhaps simply putting every word in a hash table would be sufficient, but I doubt it.) And more to the point, the text searches have to take advantage of the tagging of the data, so that, for example, constraining a search to be in the subject and not the body actually makes the search go faster instead of slower. | The module which stores the output of the parser on disk in some quickly-retrievable format. It needs to have both relational and full-text-indexing properties; many of the searches we want to do could be accomplished with a database that was nothing but a glorified set of hash tables; but body searches need to be done in some more clever way. (Perhaps simply putting every word in a hash table would be sufficient, but I doubt it.) And more to the point, the text searches have to take advantage of the tagging of the data, so that, for example, constraining a search to be in the subject and not the body actually makes the search go faster instead of slower. | ||
Line 207: | Line 207: | ||
It seems clear that RDF would be the way go go here. | It seems clear that RDF would be the way go go here. | ||
- | ====3. query tool.==== | + | ===3. query tool.=== |
All of the web search engines force the user to type in boolean expressions. Sometimes that's ok, but we should do something better, that lets the user construct expressions with a GUI. | All of the web search engines force the user to type in boolean expressions. Sometimes that's ok, but we should do something better, that lets the user construct expressions with a GUI. | ||
Line 213: | Line 213: | ||
Drawing on the notion that searches are really set operations, perhaps one aspect of the search tool could be drag-and-drop: | Drawing on the notion that searches are really set operations, perhaps one aspect of the search tool could be drag-and-drop: | ||
- | ==== 4. presentation tools.==== | + | === 4. presentation tools.=== |
There are objects, sets of objects, and presentation tools. There is a presentation tool for each kind of object; and one for each kind of object set. | There are objects, sets of objects, and presentation tools. There is a presentation tool for each kind of object; and one for each kind of object set. | ||
- | =====names, addresses, or people.===== | + | ====names, addresses, or people.==== |
The presentation tools for these kinds of objects needn' | The presentation tools for these kinds of objects needn' | ||
Line 231: | Line 231: | ||
The problem with the annotation notion is that it's the first time that we consider a piece of data which is not merely a projection of data already present in the message store: it is out-of-band data that needs to be stored somewhere. In the address book? In LDAP? I have no idea. | The problem with the annotation notion is that it's the first time that we consider a piece of data which is not merely a projection of data already present in the message store: it is out-of-band data that needs to be stored somewhere. In the address book? In LDAP? I have no idea. | ||
- | =====sets of people.===== | + | ====sets of people.==== |
Perhaps a simple list is sufficient, with options to sort in various ways (by last name, first name, email, host-name, or host-domain.) | Perhaps a simple list is sufficient, with options to sort in various ways (by last name, first name, email, host-name, or host-domain.) | ||
- | =====messages.===== | + | ====messages.==== |
Presenting a single message is straightforward: | Presenting a single message is straightforward: | ||
Line 241: | Line 241: | ||
Annotations of messages would be interesting as well. For example, one might want to make a note to one's self that two messages from different people refer to the same issue and should be dealt with at the same time. | Annotations of messages would be interesting as well. For example, one might want to make a note to one's self that two messages from different people refer to the same issue and should be dealt with at the same time. | ||
- | =====sets of messages.===== | + | ====sets of messages.==== |
This presentation has to be fairly powerful; it needs to present a decent summary of the messages (with resizable columns for sender, recipient, date, and so on) and be able to do all the usual sorting and threading tricks. Basically, this has to be a very good thread display. | This presentation has to be fairly powerful; it needs to present a decent summary of the messages (with resizable columns for sender, recipient, date, and so on) and be able to do all the usual sorting and threading tricks. Basically, this has to be a very good thread display. |