Milestones

From the Open Siddur Project Development Wiki

Revision as of 14:43, 8 February 2010 by Efraim.feinstein (Talk | contribs)
Jump to: navigation, search

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

  1. Implement backup system
    1. wiki - (MySQL database is being dumped on a daily basis (Realazthat))
    2. VPS - (VPS is backing up offsite daily. Backup destination is temporary! Efraim.feinstein)

Backend

JLPTEI Specifications

  1. Encoding guidelines
    1. Examples for all use cases
  2. Completed TEI ODD specification of format
  3. Completed Schematron assertion sets for specific cases of JLPTEI use

XML Database

  1. Implement Revision control
  2. Security -- make sure correct permissions are used throughout.
    1. Integration of security into the API
  3. 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)
  4. XML catalogs: currently implemented (by eXist devs) only for validation. Needs to be implemented for all URI resolution.

Transforms

  1. Basic XPointer Framework support (see XSLT Grammar Parser)
  2. TEI range pointers (currently only work when the range doesn't cross hierarchical boundaries)
  3. multi-hierarchy -> single combined hierarchy transform
  4. selection mechanism
    1. keep track of selections
    2. allow conditionals to be applied to conditional links (select conditionally)
  5. 3-way conditionals
  6. conditionals with instructions
  7. non-3-way complex conditionals (string/numeric/collection comparisons)
  8. parallel texts
    1. block parallel texts with j:parallelGrp
    2. segment-by-segment parallel texts with tei:link,@type=parallel
  9. integrated transliterator
  10. out-of-line textual insertions
    1. instructions
    2. comments/essays
  11. citations
    1. canonical reference resolution
    2. inline references
    3. bibliographic references
  12. bibliography generation
  13. contributor list generation
  14. license text generation
  15. non-textual media
    1. images
    2. links to videos
  16. generic removal of text
  17. generic injection of text
  18. to mini-XHTML (intermediate format)
    1. Framework
    2. Define output for specific elements

The following can be developed in parallel:

  1. CSS for mini-XHTML
  2. mini-XHTML to TeX/PS/PDF (PDF output need not be via TeX, see Target Survey)
  3. mini-XHTML to ODF?

Toolkit APIs

(To a large degree, this needs to be informed by what the development web app needs)

  1. Bibliography management
  2. Contributor management
  3. XML validation
  4. Selection management
  5. View management
  6. Text repository management

Client applications

Transcription interface

  1. Widgets (written in Javascript+jQuery):
    1. Login widget: Client side database login and new user registrar.
    2. 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)
    3. Bibliography editor: Collect, edit and display bibliographic information for sources in our database.
    4. 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)
    5. Page chooser: Choose a page to transcribe based on its current transcription status (open, assigned, open for proofreading, etc.).
    6. Page viewer with zoom: Shows a scanned image of a page, allows zooming in and out of the image.
    7. License chooser: Choose a license for transcribed text, based on what's already used in the file and what's allowed by project policy.
    8. Bibliographic chooser: Choose a source for transcribed text, based on what's already in the file and the bibliographic database.
    9. Database interface: Not so much a widget as an API for a client side Javascript program to read from and save to the database
    10. Load/save widget: Load a file from the database or save it back to the database.
    11. Editor: Can be as simple as a text box, but there might be better ways to do it.
    12. Status chooser: Keep track of each transcription within a file, allow the user to update the status.

Proofreading interface

  1. Page viewer with zoom (same as for transcription interface)
  2. Text differencing
  3. Editor widget for proofreading

Encoding interface

Translation interface

Commentary interface

Editing interface

(for editing already encoded texts)

Property tagging interface?

Recipe compiler application

  1. Applet to run XSLT client side
  2. User-definition of recipes, given existing documents
  3. User-selection of options, given existing options
  4. Server side processing optimizations

End-user web application

  1. Interface outline
  2. Input/Output Diagram
  3. Use Case scenarios
  4. Wireframe model of interface
  5. user profiles, user permissions, profile interface, default settings for sharing
  6. selection of nuschaot
  7. upload interface for user-contrib "ingredients"
  8. view of nusach arrangement ->sections->subsections->ingredients
  9. choice of translations, commentaries
  10. transliteration tool, with choice of transliteration
  11. user/group editing interface with layout options
  12. copyright permission options (CC0, CC-BY, CC-BY-SA)
  13. collaboration interface/user-group ownership
  14. end user collection of siddur "recipes" and "ingredient" feeds
  15. Help user documentation

Helper applications

  1. conversion of ISTA Tanach to JLPTEI
    1. change Tanach source from ISTA to WLC -- requires partial rewrite of tanach2jlptei.xsl2
  2. conversion of 1917 JPS (ISTA? Internet Archive?) to JLPTEI

Content

Scanned documents

  1. Identification of (historical/archetypical) sources for primary nuschaot
  2. 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.

  1. Reb Zalman Schachter Shalomi's Siddur

Original text transcriptions

Milestones by page can be tracked at Transcription.

  1. Tanach
    1. Correct qamats qatan and sheva na marking.
  2. For each nusach, define milestones by part of davening. Some milestones can be worked on in parallel.
    1. Mincha for weekdays
    2. Kabbalat Shabbat
    3. Maariv for weekdays
    4. Maariv for Shabbat
    5. Maariv for Yom Tov
    6. Mincha for Shabbat
    7. Pesukei D'zimrah (easy)
    8. Shacharit for weekdays (not Mon/Thurs)
    9. Torah reading for weekdays
    10. Shabbat z'mirot

Encoded texts

Translations

Instructional material

Comments/essays

Non technical

Membership in the community

Documentation

Developer documentation

  1. Encoding tutorial for application developers
  2. Introduction to hacking

End-user documentation

  1. Software recommendations
    1. System Requirements
    2. keyboard layouts

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
  • Facebook
  • Twitter
  • interviews with media
  • cultivate partnerships with collaborators
  • regularly update
Personal tools
NAVIGATION