blob: a868850334c42d53e05ff8bbed426d255514115e [file] [log] [blame]
<!--
This document is provided as a template along with some guidance for creating
your project proposal. This is just a template. Feel free to change it as
you see fit (add sections, remove section). We feel, however, that the
suggestions represented in this document represent the reasonable minimum
amount of information to move forward.
Please keep the formatting in this document simple. Please do not edit
this document in Microsoft Word as it adds huge piles of markup that make
it difficult to restyle.
More information is available here:
http://wiki.eclipse.org/Development_Resources/HOWTO/Pre-Proposal_Phase
Direct any questions about this template to emo@eclipse.org
-->
<html>
<head>
<!--
Include the title here. We will parse it out of here and include it on the
rendered webpage. Do not duplicate the title within the text of your page.
-->
<title>Remus Information Management</title>
</head>
<body>
<p>The Remus project is a proposed open source project under the <a
href="http://www.eclipse.org/projects/project_summary.php?projectid=technology">Technology</a>
parent project.</p>
<p>This proposal is in the Project Proposal Phase (as defined in the
Eclipse Development Process) and is written to declare its intent and
scope. We solicit additional participation and input from the Eclipse
community. Please send all feedback to the <a
href="http://www.eclipse.org/forums/eclipse.remus">Remus Eclipse
forum</a> or <a
href="http://www.eclipse.org/newsportal/thread.php?group=eclipse.remus">Remus</a>
newsgroup.</p>
<h2>Background</h2>
<p>With today's information technologies, the amount of information
we consume daily is enormous. Efficient management and fast access to
frequently used information has become more important than ever. The
fact that we use a wide range of applications and digital mediums makes
the aggregation of information, search and retrieval even more
difficult. Managing a huge amount of information successfully requires
an intelligent tool that enables users to file, categorize and visualize
such diverse types of data as information units in a single application.
</p>
<!--
Optionally provide the background that has lead you to creating this project.
-->
<h2>Scope</h2>
The objectives of the Remus project are:
<h3>Management and visualization of typed information</h3>
<p>The application provides a rich interface to create, edit and
view single information units with a type-specific information
representation. The local data is browsable through a hierarchical or
semantical structure.</p>
<p>
<div style="text-align: center"><img src="figure_1.png" border="0"></div>
</p>
<p>Every information can be opened in a separate editor that
generally will have at least one tab for a viewing-optimized
representation of the information unit and other tabs for editing. All
information units can be linked with each other and can have events
attached. Events are visualized in a separate view, which is similar to
the calendar view known from other applications like Microsoft Outlook
or Thunderbird Lightning.</p>
<p>
<div style="text-align: center"><img src="figure_2.png" border="0"></div>
</p>
<h3>Searchability of all data based on different criteria.</h3>
<p>The application uses Apache's Lucene Technology to create a
searchable index of all information units. Thus, the application
provides a search view to initiate a search, a view for the search
results and an extra information type for saving search queries. Users
can save search queries, called 'Favorite Searches', and subsequently
use these Favorites to execute regular search requests against a growing
and dynamically changing information pool.</p>
<p>
<div style="text-align: center"><img src="figure_3.png" border="0"></div>
</p>
<p>Search ranking mechanisms are injected by a declarative
OSGi-Service and can be changed easily.</p>
<h3>Desktop Integration</h3>
<p>Remus provides a customizable desktop-panel which enables rapic
access to often-used operations without having the entire application on
the screen. For a screencast on how to use the panel, see <a
href="http://www.remus-software.org/user-documentation/7-dektop-integration/14-the-desktop-panel">http://www.remus-software.org/user-documentation/7-dektop-integration/14-the-desktop-panel</a>.
</p>
<p>
<div style="text-align: center"><img src="figure_4.png" border="0"></div>
</p>
<p>The most critical point in information management is the easy and
fast creation and transfer of data into another application. Remus uses
a rule engine that makes it very easy to drag'n' drop (or copy/paste)
relevant information into the system. Specific rules allow you to create
complex information structures from, for example, unstructured text with
a single drag'n'drop operation.</p>
<h3>Synchronization with external information pools</h3>
<p>Today's information management landscape already offers a great
number of excellent platforms for handling specific information types.
Typical examples of such platforms, especially for user-generated
content, are Youtube, Delicious or Flickr. They all share the same goal:
providing an application structure for the management of one specific
type of information (Youtube -> videos, Flickr -> images, ...). The goal
of Remus is not to compete against these applications, but to facilitate
and enhance your local information management by providing
functionalities to browse through these remote information repositories
and to synchronize your data in Remus with the information in other
repositories. The advantages in a nutshell:
<ol>
<li>Synchronized data is available offline.</li>
<li>No need for using the platforms website, all synchronization,
adding, removing and viewing items can be done with your local Remus
client. One application and one user interface for all platforms.</li>
<li>Moving data between repositories: Just one drag'n'drop to move
data from one remote repository to another (e.g. moving a photo from a
flickr account to a picasa account</li>
<li>High-performing, fast offline search through synchronized data</li>
<li>Editing of synchronized data without a connection to the
repository</li>
<li>Creation of links between information units in different
remote repositories. For example, Remus allows users to create an
ontological connection between a YouTube video and a Flickr photo.</li>
<li>Automatic notifications for new or updated data.</li>
</ol>
</p>
<p>
<div style="text-align: center"><img src="figure_5.png" border="0"></div>
</p>
<!--
All projects must have a well-defined scope. Describe, concisely, what
is in-scope and (optionally) what is out-of-scope. An Eclipse project
cannot have an open-ended scope.
-->
<h2>Description</h2>
Remus Information Management is an Eclipse RCP based application for the
daily management of information the user needs for his or her daily
work. Development started in summer 2008 and the application has reached
Alpha status: The current project state including available
documentation and source code can be found on the current project
website http://remus-software.org. The decisive factor for developing
Remus was the growing demand for a tool which makes often needed
information rapidly accessible online and also available offline.
Another key requirement was the easy transfer of information and data
from other applications or remote information pools. This will be
resolved with a rule engine for dropping or cutting/pasting data into
the application and a framework for synchronizing with remote
information pools. The application should be as open as possible:
Third-party vendors can develop their own information structures and
plug them into the application. Remus is available as a stand-alone RCP
application or as a set of bundles which can be installed into another
Eclipse instance.
<!--
Describe the project here. Be concise, but provide enough information that
somebody who doesn't already know very much about your project idea or domain
has at least a fighting chance of understanding its purpose.
-->
<h2>Framework</h2>
<p>These are the most important capabilities of the Remus Framework:
<ol>
<li>Information structure injection: With a structure definition
in place, any third parties can contribute their own UI for creating
and editing information structures. After defining an EMF based
structure description and an UI for editing the structure, you are able
to build an application for viewing and editing this specific
information structure (including navigation, copy/paste, undo/redo,
...)</li>
<li>Remote repository: Remus provides a synchronization mechanism
for updating, uploading and downloading information units from a remote
repository. So third parties can add their own repository
implementation via extension points. This implementation has to
transform the repository-specific object structure into a
Remus-specific structure. Change dectection and automatic
synchronization is done by the framework. Updating an information unit
fragment is also possible (this is important if the local information
unit has more properties that can be changed than are provided by the
remote object.)</li>
<li>Contributing to existing information structures: Remus is an
flexible open platform that will offer many possibilities to extend
functionalities, such as adding your own desktop panel sections,
contributing your own rule set execution routines, defining new actions
for existing information units, adding your own search providers, ...</li>
</ol>
</p>
<h2>Integration of other Eclipse projects</h2>
<p>The current development stage already integrates other Eclipse
projects. There is full integration of BIRT Runtime and BIRT Designer,
see
<a href="http://www.richclient2.eu/2009_11_23/building-reports-of-your-local-information-pool-with-birt-and-remus/">http://www.richclient2.eu/2009_11_23/building-reports-of-your-local-information-pool-with-birt-and-remus/</a>.
The framework provides various possibilities for a seamless integration
of other UI Elements like editors, viewers or even perspectives. Another
example of third-party integration is Xtext
(<a href="http://www.richclient2.eu/2009_09_01/extending-rim-with-xtext/">http://www.richclient2.eu/2009_09_01/extending-rim-with-xtext/</a>) or
XMind (for a screenshot see
<a href="http://remus-software.org/images/stories/screenshots/general/6/mindmap.png">http://remus-software.org/images/stories/screenshots/general/6/mindmap.png</a>).
</p>
<!--
Describe any existing code that will be contributed to the project.
-->
<h2>Legal Issues</h2>
<p>Remus and all its contributions are currently licensed under the
terms of the Eclipse Public License. Third-Party Libraries must be
compatible to the EPL. There are currently just a few drawbacks:</p>
<ol>
<li>The icons (except the application logo and splash screen) are
part of Incors' Iconexperience icon set, a commercial set of icons,
which will have to be replaced.</li>
<li>The connector to Microsoft Outlook uses a commercial
third-party library and is not included in the initial download but can
be installed via the Eclipse update mechanism.</li>
</ol>
<h2>Developer Community</h2>
<p>The developer community is expected to grow as the need arises to
integrate further specific information types or remote repositories.</p>
<h2>User Community</h2>
<p>The user community will primarily consist of people working in an
IT based or academic environment. In view of the connectors to social
platforms, it cannot be ruled out that the application will also be used
for private purposes. Remus already has a small user community who is
using the current nightly build.</p>
<!--
Please describe any potential legal issues in this section. Does somebody else
own the trademark to the project name? Is there some issue that prevents you
from licensing the project under the Eclipse Public License? Are parts of the
code available under some other license? Are there any LGPL/GPL bits that you
absolutely require?
-->
<h2>Committers</h2>
<p>The initial committer will focus primarily on the core
functionalities of the underlying framework. An important requirement
for the committers is to provide the necessary documentation and tools
which will make easy it for interested parties to use the application as
a framework for information management and to extend the application by
integrating their own business-specific information structures or by
connecting to their own proprietary remote information pools.</p>
<!--
List any initial committers that should be provisioned along with the
new project. Include affiliation, but do not include email addresses at
this point.
-->
<p>The following individuals are proposed as initial committers to
the project:</p>
<ul>
<li>Tom Seidel (proposed project lead)</li>
<li>Andreas Deinlein</li>
</ul>
<h2>Mentors</h2>
<!--
New Eclipse projects require a minimum of two mentors from the Architecture
Council. You need to identify two mentors before the project is created. The
proposal can be posted before this section is filled in (it's a little easier
to find a mentor when the proposal itself is public).
-->
<p>The following Architecture Council members will mentor this
project:</p>
<ul>
<li>Ed Merks</li>
<li>Tom Schindl</li>
</ul>
<h2>Interested Parties</h2>
<!--
Provide a list of individuals, organisations, companies, and other Eclipse
projects that are interested in this project. This list will provide some
insight into who your project's community will ultimately include. Where
possible, include affiliations. Do not include email addresses.
-->
<p>The following individuals, organisations, companies and projects
have expressed interest in this project:</p>
<ul>
<li>Benjamin Muskalla, EclipseSource</li>
<li>Wayne Beaton, Eclipse Foundation</li>
</ul>
<h2>Project Scheduling</h2>
<p>The first official release is scheduled for Q1 2010. The goal of
this release is to meet the key requirements and to provide a basic set
of information types and remote repository connectors.</p>
<!--
Describe, in rough terms, what the basic scheduling of the project will
be. You might, for example, include an indication of when an initial contribution
should be expected, when your first build will be ready, etc. Exact
dates are not required.
-->
<h2>Changes to this Document</h2>
<!--
List any changes that have occurred in the document here.
You only need to document changes that have occurred after the document
has been posted live for the community to view and comment.
-->
<table>
<tr>
<th>Date</th>
<th>Change</th>
</tr>
<tr>
<td>22-Jan-2010</td>
<td>Document created</td>
</tr>
</table>
</body>
</html>