Zekr Quranic Project

Mohsen Saboorian <mohsen@zekr.org>

Outline
Some facts and general info about Zekr  Zekr components and resources  Zekr installation guide on Ubuntu  Open Source: a critical reader (if we had enough time)

06/12/08

Zekr Quranic Project

2

06/12/08

Zekr Quranic Project

3

What is Zekr
Definition: Zekr (‫ذکر‬is an Open Source ( desktop Quran study application  Mission: Zekr is planned to be a universal, open source, and cross-platform application to perform most of the usual refers to the Quran

06/12/08

Zekr Quranic Project

4

Some Facts about Zekr

Zekr was registered on SourceForge.net on Jan. 15 2005 Zekr 0.7.x has been downloaded (from sf.net) over 23,150 times up to 6 Nov. 2008 We had an average download of 323.65 packages per day from sf.net for last 60 days (there are more if you count those who use repositories) Zekr mailing list has over 280+ users and 1800+ posts

06/12/08

Zekr Quranic Project

5

Some Facts about Zekr (cont.)

Zekr 0.7.1 has:
    

(based on Ohloh.net)

Project costs (based on Ohloh.net)
 

30,634 lines of Java 8,944 lines of XML 4,529 lines of JavaScript 2,074 lines of HTML and some CSS and Velocity (.vm) code Zekr costs $477,485 9 person years effort

 

Zekr requires a Java Runtime 1.4.2 It’s tested and works on Windows (2k, XP, 2003, Vista), Linux (All flavors), Mac OS X.
Zekr Quranic Project 6

06/12/08

Why Java?
No concerns of memory management  Totally live and active community  Write once, run anywhere  Wide range of technology options  I was already a Java developer  Then why not Python, Perl, C, C++?

06/12/08

Zekr Quranic Project

7

Who is Behind Zekr?

A community of developers, resource providers, platform maintainers, graphics designers, and others:
  

Development: Mohsen Saboorian, Hamid ZarrabiZadeh, Johan Laenen Web and graphics: Sartaj Chowdhury, Mohsen Saboorian, Bandar Raffa Platform maintainers:
  

Windows: Mohsen Saboorian Linux: Mohammad Derakhshani Mac: Ali Rastegar, Sartaj Chowdhury

 
06/12/08

Resource providers: a long list of Zekr users, Quran translators and versebyversequran.com Those who report bug and report for new features
Zekr Quranic Project 8

How to Contribute
 

Help with Java development Provide resources
    

Translation Language pack Quran recitation Theme Artwork

 

Software evangelism: introduce Zekr to your friends Register to the mailing list, report bugs and discuss about features (http://groups.google.com/group/zekr)
Zekr Quranic Project 9

06/12/08

Zekr Engines
Logging
Embedded HTTP Server

Text engine

Search and Index Zekr Core Command processor

Security engine

JavaScript engine

UI
Event management

Template engine

06/12/08

Zekr Quranic Project

10

Zekr Add-ons and Resources
Bookmark Sura names Translation pack

Paging data

Zekr Core

Language pack

Recitation Revelation pack

Theme

06/12/08

Zekr Quranic Project

11

Language Pack
Introduced in Zekr 0.1.0  A simple XML key-value pairs of text fields  Forms are classified  Not a mature approach, but simply works!  19 language packs for 0.7.1: English, Persian, Arabic, Dutch, French, Spanish, German, Russian, Turkish, Indonesian, …  Sura names can also be localized

06/12/08 Zekr Quranic Project 12

Search
Initially introduced in 0.2.0  Made better in each version  Added advanced search (with indexing support in 0.6.0)  Completely rewritten base search code for 0.7.0. Tanzil.info JavaScript code was converted to Java for Zekr basic search  Added support to advance search in translations in 0.7.0

06/12/08 Zekr Quranic Project 13

Common Search Features

Search scopes (introduced in 0.4.0)
introduce inclusive and exclusive parts of Quran to search in  manage several search scope in each session

Sorting results on:
Similarity  Revelation order  Aya length  Natural order

06/12/08

Zekr Quranic Project

14

Basic Search
Regular expression matching approach  Based on http://tanzil.info JavaScript codebase  Basic boolean expressions  Partial matching  Wildcards: *, ., ?  Automatic diacritic-matching

06/12/08

Zekr Quranic Project

15

Advanced Search
Wildcards: * and ?  Grouping: using parentheses to make groups of queries  Boolean operators: &&, ||, !, +, -, AND, OR, NOT  Ranged search  Boosting term  Fuzzy search (approximate matching)

06/12/08 Zekr Quranic Project 16

06/12/08

Zekr Quranic Project

17

06/12/08

Zekr Quranic Project

18

More Search Features
Pagination  Works on Quran and translations  Language-specific features; sample:

# remove diacritics search.pattern.replace.fa = [\u064b-\u0653]= # remove punctuation search.pattern.replace.fa = [\u2010\u2014،‫[=؛«»؟‬u200c\u200b\! # ALEF shapes search.pattern.replace.fa = [\u0623\u0625]=\u0627

Lucene snowball
Zekr Quranic Project 19

06/12/08

Search in Roots
 

Introduced from 0.7.0 Root database is exclusively provided for Zekr by Computer Research Center of Islamic Sciences (CRCIS)

Makes Zekr search engine unique!
06/12/08 Zekr Quranic Project 20

06/12/08

Zekr Quranic Project

21

Translation Pack
Introduced in 0.3.0  Supports BIDI and text encoding  Translations are digitally signed  A simple text file with 6236 separate parts  Almost all translation packs are provided considering their copyright status  Currently 31 translation packs in 16 languages

06/12/08 Zekr Quranic Project 22

Theme
Introduced in 0.3.0  Quran form can be customized through a set of CSS, JS, HTML and image files  Customize fonts, text size, view settings: a secret of Zekr

06/12/08

Zekr Quranic Project

23

Layout

Different types of layouts is supported
Quran-only  Translation-only  Quran-translation separate  Quran-translation mixed  Quran-multi-translation (mixed)

06/12/08

Zekr Quranic Project

24

Paging Data Pack
Introduced in 0.7.0  Supports custom paging data: Uthman Taha paging is provided built-in  Important feature before supporting commentary (Tafsir)

06/12/08

Zekr Quranic Project

25

Bookmark
   

Introduced in 0.5.0 Ability to have multiple bookmark sets Quick bookmark (introduced in 0.7.1) Export to or import bookmarks from XML Export for web (HTML)

06/12/08

Zekr Quranic Project

26

Recitation
Introduced in 0.6.5 (Zekr Ramadan Edition)  Online and Offline  Uses Adobe (Macromedia) Flash to play MP3  Plays aya-by-aya  Currently 4 offline and 11 online recitations  All recitations are provided by versebyversequran.com project

06/12/08 Zekr Quranic Project 27

Revelation Order Pack
Introduced in 0.7.0  Is used to sort search results  Is digitally signed  Can be added or removed as an add-on  Ibn-Abbas revelation order is provided by default

06/12/08

Zekr Quranic Project

28

Command Line Options

06/12/08

Zekr Quranic Project

29

Ports on Different Platforms
Initially introduced as a Windows package in 0.1.0  Linux package supported from 0.2.0  Mac package introduced from 0.2.0  Zekr 0.5.0 Ported to XO-1 (AKA OLPC)  Zekr works on Nokia N800

06/12/08 Zekr Quranic Project 30

Installation
Windows: NSIS installer  Linux: basic package + .deb package  Mac: basic application bundle + .dmg package

06/12/08

Zekr Quranic Project

31

Ubuntu: Automatic Installation

Install from launchpad repository
$ sudo gedit /etc/apt/sources.list

Add: deb http://ppa.launchpad.net/zekr/ubuntu intrepid main update install zekr ttf-me-quran ttf-silinstall ttf-farsiweb install flashplugin-nonfree

$ sudo apt-get $ sudo apt-get scheherazade $ sudo apt-get $ sudo apt-get

Add a sample translation pack: $ sudo apt-get install zekr-quran-translation-enyusufali
06/12/08 Zekr Quranic Project 32

Ubuntu: Manual Installation
Manually download and install .deb packages from the download page sudo dpkg -i ttf-me-quran_[xyz].deb ttf-sil-scheherazade_[xyz].deb sudo dpkg -i zekr_[xyz].deb sudo dpkg -i zekr-quran-translation[ab]-[author]_[version]_all.deb
06/12/08 Zekr Quranic Project 33

Common Problems

 

First check: http://zekr.org/wiki/Trouble_shooting Basic Linux package needs something like this: export MOZILLA_FIVE_HOME=/usr/lib/firefox XULRunner: http://zekr.org/wiki/XULRunner Player is not shown: check for flash player Online recitation doesn’t work: check for network proxy
Zekr Quranic Project 34

06/12/08

Questions?

?
06/12/08 Zekr Quranic Project 35

Sign up to vote on this title
UsefulNot useful