PIRRO
Sws
Projet International pour la Reconstruction des Rouleaux d'Oumroum
System Specification Task Force
This page serves to facilitate the collaborative construction of the spec.
Use it for:
- Depositing draft versions of specs of subsystems (possibly using subpages);
- Signaling and discussing issues (points to be decided, inconsistencies, ...).
Introduction
Background (from the news)
Archeologists have discovered that the recently recovered fragments from the Scrolls of Oumroum in Egypt may contain the answer to Life, the Universe and Everything. This is indicated by some of the words on the fragments that have been translated out of Koine Greek. The reconstruction of the scrolls is of great importance.
The fragments have already been digitally processed with an automatic analysis system in order to match them. Unfortunately, it turned out that there are many ways in which you can combine the fragments, and the scientists have also observed that most matches are just physical and not logical. The reconstruction has failed until now. As a last effort to unveil the secrets of Oumroum, the scientists requested a collaborative system in which other scientists and passionate people can join forces to solve this puzzle.
A bit more technical
As the newspaper fragment above indicates, this project is the final effort to decipher the scrolls of Oumroum. Therefore our system has to provide a pleasant working environment for the scientists who are working on the process of putting the pieces together. It has to provide ample communication mechanisms and an intuitive way of putting pieces together. Then it also needs a way of having multiple scientists working together, so we need a consistent way of storing and handling differences in opinions on the composition of the pieces.
Stakeholders
Here we list the stakeholders which we think are involved in the project. They are as follows:
- Users
- Scientist - those who are using the system to solve the puzzle
- Data providers – the persons who add new pieces to the system
- Community – passionate people that are not scientists but whom are interested in solving the puzzle
- Moderators – persons who monitor the communication channels of the system
- System administrators – have to maintain the system and install updates
- Sponsors – those whom are funding the project
Terminology
- Pieces - the original scanned images
- Compositions - collections of pieces together with their positions and rotations
Components
- Piece management
- Stores individual pieces and their bitmaps etc.
- Versioning system
- Commenting system
- Keeps track of compositions and their revision history
- Automatic Suggestion System (ASS)
- User/rights managements system
- Includes authentication and group management
- User interface
- Communication system
- Forum, mail, IM, ... (not strongly coupled to the rest of the system)
Note:
- Data storage is treated as an implementation issue internal to the other components and is left unspecified.
Component diagram:
Piece Management Interface
Piece management component manages pieces and operation that can be done on them.
It provides the following operations on pieces:
-
get
- Retrieves all stored pieces.
-
add
- Add a new piece to the system.
-
remove
- Removes a piece from the system.
The component is used by the Compositor which displays the pieces to the user, by Versioning component which needs the pieces in order to version compositions, and by ASS when searching for matches.
The
add and
remove operations are intended to be used when new scroll pieces are found (
add) or when duplicate pieces are discovered (
remove) and only by system administrators.
Versioning System Interface
The Version management system provides a number of operations on Composition:
-
get
- Retrieves the requested composition from the version management system.
-
update
- Update a composition to a new composition using some additional metadata.
-
rollback
- UPDATE using a copy of an earlier version of a composision.
-
branch
- Creates a copy of a collection of compositions it to a user group.
-
merge
- Takes two collections of compositions and combines them into one new collection.
This component is used from the Compositor. The Compositor retrieves a number of compositions from the version management system (using
get). User can perform the some actions as exposed by the version management system (
update,
rollback,
merge) on the imported Compositions. A list of actions is built. When the user submits his actions the list of actions is submitted to the Version management system which performs them on the actual system.
Automatic Suggestion System (ASS) Interface
ASS analyses pieces and compositions to find matching between them. Each matches is rated with a value between
maxQuality (perfect match) and
minQuality (no match). This value is called quality index.
The operations exposed by ASS are:
-
matchPiece
- For a given piece returns a list of matching pieces together with quality indices.
-
matchComposition
- It searches the specified version of the workspace for matches with the specified piece. It returns all matches together with their quality index.
-
qualityInterval
- Returns the matching quality interval.
This component is used from the Compositor. User can perform searches for matches between pieces or compositions. As result it receives a list with the corresponding matches and their quality indices. In order to search for a composition match the user has to provide the version of the workspace in which ASS should search.
Note:
- This component could be a wrapper for the automatic analysis system.
User Management Interface
User Management component handles user registration, rights management, user authentication and group management.
It provides the following operation on users and groups:
-
authenticateUser
- Given user credentials it can tell if the user is able to log into the system.
-
registerUser
- It register an user with the provided user data.
-
createGroup
- Creates a group using the provided group data.
-
modifyGroup
- Add or remove users from a certain group.
-
modifyUser
- It updates the information about the user (possible the user group).
Communication Component
The Communication Component is implemented by using an existing system that meets our requirements.
- The system provides an own user interface which can be accessed from/embedded into our own user interface.
- It is adaptable to our User Management Component, i.e. it can use the authentication and rights management functions.
- It provides different communication services:
- Realtime public communication between multiple users. The users need to be online and logged in to be able to use the realtime communication service. The messages need not be accessible at later dates.
- Non-realtime private communication between 2 users. A user(sender) sends a message to another user (recipient) in a mail like manner. This message is private to the two users. No other user should be able to access it. The recipient need not be online to receive the messages, he can access his messages after logging in.
- Non-realtime public communication between multiple users in a forum. A user can post a message on a specific topic and other users can comment on this. The messages are stored within the system and are accessible at later dates. A moderator is able to delete topics or comments and close topics for further discussion.
The Communication component accesses the User Management interface for user authentication and to be able to identify moderators.