Back to Sider sectionPlease keep in mind that these are our goals for the project. Eventually we want to achieve or implement them all, but at the current moment we haven't done that yet. Please consult Sider road map to get a rough idea when we plan to completely implement each goal.
Edit Project
Our main goal with Sider, as a project, is to help people work with information. We want to provide simple and intuitive tools to capture, organize, analyze and reference any type of information.
There are several sub-goals describing what such tools need to be like:
- Large number of tools - Provide different tools to address different information scenarios. An array of tools (each being simple and focused at helping with a specific task) should allow users work more effectively than a single tool designed to help with everything at the same time.
- Capture relationships between documents - Each document is just a piece of information. Often there can be other pieces related to the current one. Understanding this relationship often allows us to better use the information. To help us in this task Sider needs to capture all types of the possible document relationships: inclusion, referencing.
- Advanced collaboration support - Information management task is often shared by several people. We want Sider to allow information sharing with different people having different access levels to different parts of the document. In addition it needs to keep track of all changes and who made them.
- Store different document versions - When document modified previous document version is often lost. Yet, it can be very beneficial to go back and look at it before. Good data management tool should support history of changes and wouldn't allow users to erase possibly useful data by overwriting it with new one.
Edit Platform
The main part of the project is a platform which can be extended to support different types of data. Its goals are related to supporting tools with features described above and ensuring creation of new extensions is simple and fun.
- Flexible and simple to extend - Sider depends on new extensions to provide useful tools for the user and it has to be simple to extend in every possible aspect. We want Sider to improve and grow over time. Our main goal is to eliminate all mundane tasks and promote good design practices to allow people working on the extensions to focus on solving new problems instead of reinventing the wheel.
- Any data type - Information we work with often needs to be organized in a specific way. Sider needs to simplify working with the data and creating new data types by capturing any possible information structure in a simple, natural manner.
- Different data types relationships - Different information structures are often related. In many cases one structure is a specific case of a different one (a tree is a special case of a graph) or it can be described by a combination of other structures. We want to promote code reuse and simplify development of new data types by allowing developers use different relationships between existing and a new data types.
- Extension versions - As extensions are updated other extensions depending on it might become incompatible with the new version. Views created for older version of a type might not work with newer type versions. To improve compatibility and user experience Sider needs to support different version of extensions side-by-side and allow extension references use a specific version or a range of versions.
- Extensive support for horizontal features - Since Sider is designed for flexibility we also want to support a system of horizontal features that can extend the platform (to work with new storage formats, not just XML), types (plug-ins with logic to better handle data) and views (data format and validation, such as spell-checking available in every view).
- Different languages to extend Sider - JavaScript can be slow and limiting sometimes. As an alternative we want to support other languages (C#, C++, Java, etc) to extend Sider. They will be more suited to create data handling logic, where operations can be processor intensive and where many libraries exist to work with data. It should still be possible to extend visual features as (for example through ActiveX or JavaApplets).
- Support communication protocols and data streams - To help people work wider array of information we want Sider to be able to get data from different sources (such as Internet web-services, RSS, Search applications, etc.) and integrate it with the current document.
Edit Documentation
Sider is a complex project with many possible usages. We want people to use it effectively and complete, simple documentation is very important for that. In addition we want to allow people to contribute new ideas on how Sider can be used or extended.
Edit Extensions repository
Sider is designed specifically to be extended. Extensions you have installed determine how useful it is. To help our users fully benefit from the platform we want to have a repository from which extensions can be downloaded.
- Easy to use and access to get Sider extensions - Sider repository needs to be simple to use:
- Interface designed to allow users find extensions for performing specific tasks users have in mind.
- Allow visitors to browse through the repository to see new additions.
- Notify current users of the specific extensions when new versions of the extensions become available.
- Automate the process of downloading and installing (or updating) extensions.
- Allow people to publish custom extensions - Anybody can create new extensions for Sider. We want to help people do that by providing tools to create and share extensions and to retain all rights to their work. At the same time developer will be able to control how his extension is used:
- Choose license for the extension.
- Whether provide it for free or ask money for it.
- Whether allow other people to create derivative work from the extension or not.
Edit Web platform
Internet usage is rapidly growing in popularity and people are going to need more and more advanced tools to work with their information anywhere and share it with people they choose to. At some point we want to provide a service for people to store their document in an online version of Sider.
- Access Sider from anywhere - The main goal of the web platform is to allow users to work with their information anywhere, anytime, without having to install any tools locally.
- Collaborative work - It is often important to allow several people to read or contribute to a specific document. We want to fully support all document sharing scenarios with advanced access control.