zekr quranic projectzekr.org/download/doc/zekr-overview-ubuntu.pdf · 20/11/2008 zekr quranic...
TRANSCRIPT
Zekr Quranic ProjectZekr Quranic Project
Mohsen Saboorian <Mohsen Saboorian <[email protected]>[email protected]>
20/11/2008 Zekr Quranic Project 2
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)
20/11/2008 Zekr Quranic Project 3
20/11/2008 Zekr Quranic Project 4
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
20/11/2008 Zekr Quranic Project 5
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
20/11/2008 Zekr Quranic Project 6
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.
20/11/2008 Zekr Quranic Project 7
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++?
20/11/2008 Zekr Quranic Project 8
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
20/11/2008 Zekr Quranic Project 9
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)
20/11/2008 Zekr Quranic Project 10
Zekr Engines
EmbeddedHTTP Server
Search andIndex
Commandprocessor
UI
Eventmanagement
Templateengine
JavaScriptengine
Securityengine
Textengine
Logging
Zekr Core
20/11/2008 Zekr Quranic Project 11
Zekr Add-ons and Resources
Sura names
Pagingdata
Recitation
Revelationpack
Theme
Languagepack
Translationpack
Bookmark
Zekr Core
20/11/2008 Zekr Quranic Project 12
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
20/11/2008 Zekr Quranic Project 13
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
20/11/2008 Zekr Quranic Project 14
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
20/11/2008 Zekr Quranic Project 15
Basic Search
� Regular expression matching approach
� Based on http://tanzil.info JavaScript codebase
� Basic boolean expressions
� Partial matching
� Wildcards: *, ., ?
� Automatic diacritic-matching
20/11/2008 Zekr Quranic Project 16
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)
20/11/2008 Zekr Quranic Project 17
20/11/2008 Zekr Quranic Project 18
20/11/2008 Zekr Quranic Project 19
More Search Features
� Pagination
� Works on Quran and translations
� Language-specific features; sample:# remove diacriticssearch.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
20/11/2008 Zekr Quranic Project 20
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!
20/11/2008 Zekr Quranic Project 21
20/11/2008 Zekr Quranic Project 22
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
20/11/2008 Zekr Quranic Project 23
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
20/11/2008 Zekr Quranic Project 24
Layout
� Different types of layouts is supported
� Quran-only
� Translation-only
� Quran-translation separate
� Quran-translation mixed
� Quran-multi-translation (mixed)
20/11/2008 Zekr Quranic Project 25
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)
20/11/2008 Zekr Quranic Project 26
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)
20/11/2008 Zekr Quranic Project 27
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
20/11/2008 Zekr Quranic Project 28
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
20/11/2008 Zekr Quranic Project 29
Command Line Options
20/11/2008 Zekr Quranic Project 30
Ports on Different Platforms
� Initially introduced as a Windows package in 0.1.0
� Linux package supported from 0.2.0
� Mac package introducedfrom 0.2.0
� Zekr 0.5.0 Portedto XO-1 (AKA OLPC)
� Zekr works on Nokia N800
20/11/2008 Zekr Quranic Project 31
Installation
� Windows: NSIS installer
� Linux: basic package + .deb package
� Mac: basic application bundle + .dmg package
20/11/2008 Zekr Quranic Project 32
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
20/11/2008 Zekr Quranic Project 33
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
20/11/2008 Zekr Quranic Project 34
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
20/11/2008 Zekr Quranic Project 35
Questions?