Sunteți pe pagina 1din 35

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)

 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
 Project costs (based on Ohloh.net)
 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.

06/12/08 Zekr Quranic Project 6


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 Zarrabi-
Zadeh, Johan Laenen
 Web and graphics: Sartaj Chowdhury, Mohsen
Saboorian, Bandar Raffa
 Platform maintainers:
 Windows: Mohsen Saboorian
 Linux: Mohammad Derakhshani
 Mac: Ali Rastegar, Sartaj Chowdhury
 Resource providers: a long list of Zekr users, Quran
translators and versebyversequran.com
 Those who report bug and report for new features

06/12/08 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)

06/12/08 Zekr Quranic Project 9


Zekr Engines

Logging
Embedded Text
HTTP Server engine

Search and Security


Index engine

Zekr Core

Command JavaScript
processor engine

Template
UI
engine
Event
management

06/12/08 Zekr Quranic Project 10


Zekr Add-ons and Resources

Bookmark

Translation
Sura names
pack

Paging Language
Zekr Core
data pack

Recitation Theme

Revelation
pack

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

06/12/08 Zekr Quranic Project 19


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

$ sudo apt-get update


$ sudo apt-get install zekr ttf-me-quran ttf-sil-
scheherazade
$ sudo apt-get install ttf-farsiweb
$ sudo apt-get install flashplugin-nonfree

 Add a sample translation pack:


$ sudo apt-get install zekr-quran-translation-en-
yusufali

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

06/12/08 Zekr Quranic Project 34


Questions?

06/12/08
?
Zekr Quranic Project 35

S-ar putea să vă placă și