Architecture

From the Open Siddur Project Development Wiki

Jump to: navigation, search

Contents

This page describes the components of the Open Siddur technical architecture. For details on how we're doing at developing these parts and putting them together, see milestones.

Summary Diagram

The project architecture is summarized in the following diagram:

Data flow diagram for the Open Siddur Project.

Infrastructure

Wiki 
Serves documentation and acts as a temporary transcription interface
Virtual Private Server (VPS) 
Serves the database, web applications, and demos

Backend

These parts provide format specifications and provide the backbone of the Open Siddur Project.

JLPTEI Specifications 
A TEI-based XML schema for representing liturgical texts. Also includes validation software, written in TEI ODD and Schematron.
XML Database 
An installation of eXist at jewishliturgy.org, which you may mirror locally. Stores all primary data and acts as an interface to client applications world by execution of XQueries through its REST interface.
Transforms 
Conversion programs to translate JLPTEI into output formats, such as XHTML or PDF. The transform code is stored in subversion and served off the database.
APIs 
XQuery and XSLT APIs that run off the database and can be accessed via the database's REST interface. Provide functions that are used frequently by applications.

Client applications

These applications provide user interfaces for the Open Siddur Project.

Transcription application 
Help contributors convert scanned public domain siddurim to Unicode text. Currently implemented on the wiki. A new version will be implemented in Javascript, using the jQuery framework.
Proofreading application 
Helps developers proofread and correct transcribed text. Will also be implemented in Javascript.
Encoding application 
Help developers encode plain text into JLPTEI.
Translation application 
Help contributors write or import translations of encoded texts.
Commenting application 
Help contributors add comments, essays and instructions to texts.
Recipe compiler application 
Help developers and advanced users select texts to generate siddurim according to their own specifications.
End-user client application 
Perform the functions of the above applications with an eye toward ease of use.

Helper applications

One-time converters 
If we are given data in a format that is not JLPTEI, but is consistently applied, then it can be converted to JLPTEI directly via one-time-use conversion applications. As we receive more contributed material, the importance of one-time converters will increase.

Content

Texts form the basis of the Open Siddur Project's content. They are the reason we are writing all the software. Content falls into the following categories:

Scanned documents 
Books or manuscripts as images. These are stored in a web-viewable compressed JPEG format on our website, and will eventually be served for transcription by the transcription application. They are currently manually added to the wiki for transcription. A list of current and wanted sources is on the Brainstorm session page.
Contributed texts 
These are texts that are original works submitted to us (for now, through the mechanism described in Submissions HOWTO)
Original text transcriptions 
Transcriptions are currently being collected on the wiki.
Encoded texts 
These are the forms of text that can be processed by our transforms. As of now, only one-time converter software produces encoded text.
Translations 
We are not ready yet to accept translations directly into the archive. If you are interested in translating, talk to us. If you already have translated material that you would like us to include, see Submissions HOWTO.
Instructional material 
We are not ready yet to accept instructional material directly into the archive. If you are interested in writing it, talk to us. If you already have instructional material that you would like us to include, see Submissions HOWTO.
Comments/essays 
We are not ready yet to accept commentary directly into the archive. If you are interested in writing it, talk to us. If you already have commentary that you would like us to include, see Submissions HOWTO.

Non-technical

In addition to the technical aspects of the project, there are also some non-technical things we do:

Membership in the community 
While we cannot give legal advice, we are willing to help Jewish content providers assure bidirectional content compatibility with our project. We also maintain a list of projects with similar goals.
Documentation 
We need end-user and mid-level documentation to ease people into contributing to the project and using the materials we already have.
Project management 
We are looking to improve resource management in the project, including volunteer management to make sure anyone who wants to contribute can find a place in the project.
Personal tools
NAVIGATION