Milestones
From OpenSiddurProject
The Open Siddur is not ready yet. We're trying to make it ready, and this page lists some of the steps we need to do it. If you're a coder, please consider volunteering your skills to help us reach these goals. If you are not a coder, please consider transcribing texts so we can have more texts ready for processing by this software.
In order to understand how the milestones fit into the whole project, please read about the project architecture.
This page is an ordered list of milestones (deliverables), organized by subproject. Continuous work should be listed separately. Development status updates are broadcast monthly on our discussion list and development blog. Click here to view them.
If you're interested in helping us reach any of these milestones, let us know!
Progress indicators:
- Unformatted text indicates TODO items
- bold indicates items that are considered complete
- italic indicates in-progress items
- bold italic indicates items that are partially complete.
Contents |
Infrastructure
- Implement backup system
- wiki - (MySQL database is being dumped on a daily basis (Realazthat))
- VPS - (VPS is backing up offsite daily. Backup destination is temporary! Efraim.feinstein)
Backend
JLPTEI Specifications
- Encoding guidelines
- Examples for all use cases
- Completed TEI ODD specification of format
- Completed Schematron assertion sets for specific cases of JLPTEI use
XML Database
- Implement Revision control
- Security -- make sure correct permissions are used throughout.
- Integration of security into the API
- Developer tools: command line utilities to synchronize the database with local copies of data (use webdav + rsync - doesn't quite work because MIME types are not set correctly within eXist)
- XML catalogs: currently implemented (by eXist devs) only for validation. Needs to be implemented for all URI resolution.
Transforms
- Basic XPointer Framework support (see XSLT Grammar Parser)
- TEI range pointers (currently only work when the range doesn't cross hierarchical boundaries)
- multi-hierarchy -> single combined hierarchy transform
- selection mechanism
- keep track of selections
- allow conditionals to be applied to conditional links (select conditionally)
- 3-way conditionals
- conditionals with instructions
- non-3-way complex conditionals (string/numeric/collection comparisons)
- parallel texts
- block parallel texts with j:parallelGrp
- segment-by-segment parallel texts with tei:link,@type=parallel
- integrated transliterator
- out-of-line textual insertions
- instructions
- comments/essays
- citations
- canonical reference resolution
- inline references
- bibliographic references
- bibliography generation
- contributor list generation
- license text generation
- non-textual media
- images
- links to videos
- generic removal of text
- generic injection of text
- to mini-XHTML (intermediate format)
- Framework
- Define output for specific elements
The following can be developed in parallel:
- CSS for mini-XHTML
- mini-XHTML to TeX/PS/PDF (PDF output need not be via TeX, see Target Survey)
- mini-XHTML to ODF?
Toolkit APIs
(To a large degree, this needs to be informed by what the development web app needs)
- Bibliography management
- Contributor management
- XML validation
- Selection management
- View management
- Text repository management
Client applications
Transcription interface
- Widgets (written in Javascript+jQuery):
- Login widget: Client side database login and new user registrar.
- Server-side login code: Small server-side script that does admin-requiring tasks on the database, such as setting up new users. (probably a PHP script, though any server-side scripting language will do)
- Bibliography editor: Collect, edit and display bibliographic information for sources in our database.
- Virtual keyboard: A virtual keyboard that supports the whole Unicode 4.1+ Hebrew block (note: we have some code for this, but it needs work)
- Page chooser: Choose a page to transcribe based on its current transcription status (open, assigned, open for proofreading, etc.).
- Page viewer with zoom: Shows a scanned image of a page, allows zooming in and out of the image.
- License chooser: Choose a license for transcribed text, based on what's already used in the file and what's allowed by project policy.
- Bibliographic chooser: Choose a source for transcribed text, based on what's already in the file and the bibliographic database.
- Database interface: Not so much a widget as an API for a client side Javascript program to read from and save to the database
- Load/save widget: Load a file from the database or save it back to the database.
- Editor: Can be as simple as a text box, but there might be better ways to do it.
- Status chooser: Keep track of each transcription within a file, allow the user to update the status.
Proofreading interface
- Page viewer with zoom (same as for transcription interface)
- Text differencing
- Editor widget for proofreading
Encoding interface
Translation interface
Commentary interface
Editing interface
(for editing already encoded texts)
Property tagging interface?
Recipe compiler application
- Applet to run XSLT client side
- User-definition of recipes, given existing documents
- User-selection of options, given existing options
- Server side processing optimizations
End-user web application
- Interface outline
- Input/Output Diagram
- Use Case scenarios
- Wireframe model of interface
- user profiles, user permissions, profile interface, default settings for sharing
- selection of nuschaot
- upload interface for user-contrib "ingredients"
- view of nusach arrangement ->sections->subsections->ingredients
- choice of translations, commentaries
- transliteration tool, with choice of transliteration
- user/group editing interface with layout options
- copyright permission options (CC0, CC-BY, CC-BY-SA)
- collaboration interface/user-group ownership
- end user collection of siddur "recipes" and "ingredient" feeds
- Help user documentation
Helper applications
- conversion of ISTA Tanach to JLPTEI
- change Tanach source from ISTA to WLC -- requires partial rewrite of tanach2jlptei.xsl2
- conversion of 1917 JPS (ISTA? Internet Archive?) to JLPTEI
Content
Scanned documents
- Identification of (historical/archetypical) sources for primary nuschaot
- Scanning of sources for primary nuschaot (see below)
Summary of which base texts we have and want:
| Nusaḥ (rite) | Siddur | Maḥzor | Haggadah | Seliḥot |
|---|---|---|---|---|
| Ashkenaz | Yes | NO | NO | German rite: YES, Lithuanian Rite: NO |
| Ari/Lubavitch | Yes | Yes? | Yes | NO |
| Edot Hamizraḥ | NO | NO | NO | NO |
| Italian (Benè Romì) | NO | NO | NO | NO |
| Romaniote (Greek) | NO | NO | NO | NO |
| Sepharadi/Spanish-Portuguese | NO | NO | NO | NO |
| Yemenite | NO | NO | NO | NO |
| Historical/Rav Saadyah | NO | NO | NO | NO |
| Appam (Northern Italy) | NO | NO | NO | NO |
| Persian | NO | NO | NO | NO |
| Provençal | NO | NO | NO | NO |
Others that are different enough to warrant an additional base text?
- Texts from the Cairo Genizah
- Prayers composed by and for Jewish women, e.g. Sefer T'khines
- Songs of the Beta Israel (Ethiopian Jewry)
- the Karaite Siddur
- relevant prayers and poetry of other monotheists (out of scope for Open Siddur Project, in scope for Platform? -- Efraim.feinstein 22:49, 13 December 2009 (UTC))
Contributed texts
Each contributed text needs to be converted to JLPTEI.
Original text transcriptions
Milestones by page can be tracked at Transcription.
- Tanach
- Correct qamats qatan and sheva na marking.
- For each nusach, define milestones by part of davening. Some milestones can be worked on in parallel.
- Mincha for weekdays
- Kabbalat Shabbat
- Maariv for weekdays
- Maariv for Shabbat
- Maariv for Yom Tov
- Mincha for Shabbat
- Pesukei D'zimrah (easy)
- Shacharit for weekdays (not Mon/Thurs)
- Torah reading for weekdays
- Shabbat z'mirot
Encoded texts
Translations
Instructional material
Comments/essays
Non technical
Membership in the community
Documentation
Developer documentation
- Encoding tutorial for application developers
- Introduction to hacking
End-user documentation
- Software recommendations
Project management
- unified Mission Statement
- indicate development milestones
- Group tasks for reaching milestones in phases
- Develop team charter
- Recruit Advisory Board
- Develop project constitution
- Define QC Guidelines
- Recruit initial Core Content Group (CCG)
- Define how new members are inducted into CCG
- Assign volunteer manager(s) (currently shared among CCG)
- attain fiscal sponsorships
- plan use of resources
- Recruit board of directors (necessary for non-profit status)
- create Open Siddur Foundation non-profit
Other testing
- Automatic Transcription for Hebrew text (OCR) -- needs to be revisited every year or so
Communications
(These are more-or-less all constantly in-progress)
- documentation wiki
- discussion list
- development blog
- survey users--extend project community beyond core developer team
- interviews with media
- cultivate partnerships with collaborators
- regularly update
