Beagle roadmap.
- From: Nat Friedman <nat novell com>
- To: dobey ximian com, jpr novell com, tigert ximian com, glesage novell com, vvaradhan novell com, clahey ximian com
- Cc: dashboard-hackers gnome org
- Subject: Beagle roadmap.
- Date: Mon, 04 Oct 2004 20:02:59 -0400
Hi guys,
Our little search project is growing, so I'm going to hand out some
tasks and goals to those Novell people working on Beagle. I decided to
send this to the public list so that everyone knows what we're up to.
Some of this is just informational, so there's a global view as to what
we're doing.
Novell people, please focus on these things, so that we can avoid
dissipation.
The work is broken into two phases. I'd like everyone to work on phase
I, and then when that's done, everyone starts to work on phase II.
People should not jump ahead from phase I to phase II. As long as your
comrades in arms have phase I work left, so do you :-). This obviously
does not apply to non-Novell employees ;-).
Phase I
=======
Beagle Core Infrastructure
--------------------------
Team: Jon Trowbridge, Dave Camp and Joe Shaw
Our mission is to make Beagle usable on a day-to-day basis. The
main things that we currently lack for a usable Beagle are:
a) Not crashing or failing, most of the time.
We need to be more fault tolerant and to present
meaningful errors and debug logs to users in the event
of failures, so that they can file reasonable bug
reports. Things like Raja's error messages in Best are
helpful to users here too.
Dave's recent log work is a good first step; we should
make sure we deploy errors everywhere.
b) Run all day.
The daemon needs to be able to run for a long time
without horking your system. We need to figure out how
to 'nice' the daemon's activities so that it doesn't
take down the rest of the system. We also need a
mechanism for periodically restarting the daemon,
because the Mono GC is not precise enough to allow us to
run forever without eating all your RAM.
c) Index mail.
A large portion of people's information is in their
mail, so we can't claim to be a usable search solution
until we can search mail. The primary goal will be
Evolution mail integration; patches for other mail
clients will, of course, be accepted.
We need to be able to do a serviceable job of searching
mail without requiring major changes in Evolution or
building out of a separate patchset. So, any patches
required should be (i) built by the Beagle team, and
(ii) included into Evolution 2.2 (feature freeze
January).
For disconnected IMAP users, this is relatively
straightforward, since Evolution caches IMAP MIME parts
in separate files on the disk; we can use inotify to
notice new email getting cached here. The downside, of
course, is that we require users to cache their IMAP
mail locally in order to search it. This doesn't seem
so bad to me, though, since I'd rather cache my mail
locally than fire off network queries to my IMAP server
every time I do a search in Beagle.
For local mail users this is more difficult. Ideally we
would use Camel's index directly and write a Camel query
driver, but it seems that Camel does not provide the
locking we need. So we're going to need to actually
index local mail ourselves.
Indexing local mail is made hard by the fact that mbox
files and ev-summaries can get very large. So, this
will be a challenge.
I put this in Phase I because I think that searching
mail is so important, it cannot be put off till later.
This will mean we need to get patches into the Evo dev
branch and Beagle users will have to run Evo snaps.
These three items will be our focus in Beagle proper, until we
can declare ourselves "reasonably usable."
Filters
-------
Team: Veerapuram Varadhan
The mission is to make sure Beagle can read the most important
files off your disk.
Jon and Varadhan wrote up a task list for this. Essentially,
the following filters are important and need work, in
approximate priority order: MS Office, PDF, PostScript,
Monodoc, RTF, Texi, Man, ID3 tags, RPM.
Varadhan will be making his way through this list as best he
can. Anyone else who wants to work on these is obviously
welcome; filters are one of the most parallelizable pieces of
work in Beagle, so everyone is encouraged to join.
Snapshot Packages
-----------------
Team: Chris Lahey, Duncan Mak
To keep up with the fast pace of change in the various parts of
the architecture, we're going to need regular snapshot packages
of the various bits of the Mono Desktop Extensions set.
The following packages will be snapshotted many times a day by a
cron job:
dbus, evolution-sharp, libgalago, libgalago-gtk, galago-daemon,
galago-sharp, galago-gtk-sharp, tomboy, f-spot, timeline,
beagle, dashboard.
[ Someone shout out if I forgot something important. ]
Chris will build these for SUSE 9.0/9.1/9.2 and NLD. If it's
easy, maybe also for FC3.
Let's put these somewhere easy to get at, maybe an open carpet
server that replaces nat.org. Chris and Jon to determine where
these go (mdesnaps.org? iheartmde.org?)
Evo snaps will come from the usual place (Rodney to chime in
here).
inotify / kernel assistance
---------------------------
Team: Robert Love
Robert is going to finish his inotify work, so that beagle can
find out when things change on the file system. Robert's on top
of this.
UI/Interaction Design
---------------------
Team: Tuomas Kuosmanen
Tuomas will be our go-to guy for search UI. This encompasses:
Best, the tray search tool, dashboard and the information
browser.
Tasks:
a) Collect all mockups/designs.
Garrett did a bunch of designs a few months ago. We
should put all of these on a web page so that they're
accessible/viewable by everyone. New mockups should go
to the web page also.
This should be done on beaglewiki.org, for easy
editability.
b) Tile design.
We need updated tile designs, implemented in HTML, that
include easy access to operations like sharing,
printing, presence, etc.
c) Tray UI design.
We have the beginnings of a tray applet in CVS.
However, the UI is awful. We need a mockup of what this
should look like.
d) Best / information browser / Dashboard.
File Selector Integration
-------------------------
Team: Federico Mena
We need to be able to search from the file selector. Federico
is generalizing the filesel API to make this cleaner; he is also
in charge of implementing filesel integration with Beagle.
Presence in People Tiles
------------------------
Team: Robert Love
People tiles should show presence, using Galago. Christian
Hammond has created nice Galago# bindings for us, including some
widgets that we could embed into People tiles.
Tray UI
-------
Team: Chris Lahey
Implement the UI design that Tuomas creates. Start with what we
have now, and make it usable.
Web Page
--------
Team: Garrett Lesage
Alex set a new benchmark for open source project web site design
with the tomboy website:
http://www.beatniksoftware.com/tomboy
We should try to reach this level of cleanliness and information
content for Beagle.
Garrett should create a new web site for Beagle to replace the
one we have. Garrett, the address for the Beagle web site is
www.gnome.org/projects/beagle; go ahead and just check in a new
web site to GNOME CVS.
Also, we need a T-shirt design.
Phase II
========
This stuff is a bit less concrete than Phase I, but we will be able to
flesh it out better when we declare Phase I done.
Metadata System
---------------
Team: Jon Trowbridge, Robert Love, Joe Shaw
We need a system for storing explicit relationships between
things in your life.
For example:
"You downloaded /home/blah/foo.c from
http://nat.org/stuff"
"funny.jpg came from the mail 'Dude, check this out'
from rml novell com"
"Some parts of the file MyStrategy.doc were cut and
pasted from RobertsStrategy.doc"
"Objects a, b, c and d are part of the Beagle Team's
team space."
Which can be represented as subject/verb/object triplets:
<file:///home/blah/foo.c,
downloaded-from,
http://nat.org/stuff>
<file:///full/path/funny.jpg,
attachment-from,
mail:///local/folder/uid?9238u4982374>
<file:///home/nat/MyStrategy.doc,
cut-and-paste,
ifolder:///NatAndRobertsSharedArea/RobertsStrategy.doc>
<a,explicit-relationship,team:///BeagleTeam>
Note that all of these are explicit relationships; the implicit
relationships, like "this web page is similar to this document"
are discoverable, and don't need to be stored.
Also note that we need our metadata system to cache some handy
relationships for us that might be discoverable. For example:
<http://nat.org/,
created-by,
person://NatFriedman>
<mail:///local/folder/uid?9238u4982374,
sender,
mailto:rml novell com>
This will make these relationships easy to search.
We need a simple metadata store for explicit relationships and
cached implicit relationships in Beagle. This should have a
nice API on it for storing stuff.
Once we have this, we can start instrumenting applications and
making them store metadata in Beagle. We can also do things
like create 'watchers' which store metadata as you use your
system; imagine if timeline were pimped out to store
relationsihps between files, mails or web pages you view at the
same time.
Various thoughts:
* The implementation should focus on getting something
to work soon, not solving all the world's problems.
* The backing store will be Lucene; perhaps EAs will be
involved in Linux on the filesystem.
* We need a simple API that can be used from C to store
metadata.
* We should have a simple RDF-like interface for
metadata query results.
* We need a documented universal URI scheme.
* Team definitions should live in the addressbook.
* The implementation should focus on getting something
to work soon, not solving all the world's problems. :-)
Once we have this thing, and the team notion, we can build the
information browser, which will really be fun.
Nautilus Search Integration
---------------------------
Team: Dave Camp
We need a simple file search interface in Nautilus. This should
include emblem searching.
Dashboard
---------
Team: Joe Shaw
Dashboard needs to use Beagle tiles, needs cluechaining for
addressbook contacts, needs to track focus properly, needs an
a11y-based observer, and needs specific frontend instrumentation
for Evolution, OpenOffice, Firefox.
Information Browser
-------------------
Team: Jon Trowbridge
This is Jon's baby, to be explained through mockups, etc, as we
go.
Tiles
-----
Team: Federico Mena
We need drag-and-droppable tiles, a better tile widget system,
etc.
Monodoc Integration
-------------------
Team: Veerapuram Varadhan
Monodoc should use Beagle to do a full keyword search of its
contents.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]