As far as we are concerned in this paper, we propose to classify Islamic Knowledge into three categories:
1. Holy Quran,
2. Hadith,
3. Saying of renowned Muslims.
In this paper, we will focus, only on the prophet Muhammad (pbuh) sayings (hadiths), as they provide us with important source of information, regarding our methodology.
In the following section, we present a new methodology for modeling hadiths, using what is called UML activity diagram.
A. Activity Modelling for an activity hadith
In our methodology, we present several basic rules:
1. We decompose an activity (such as Salat), to many different sub-activities (such as rakâa). For example :
2. We decompose a sub-activity (such as rakâa), to many different actions (such as takbir, reading, rokôo, soujoud, joulouss, etc...). For example :
3. We decompose an action, or activity, or sub-activity into three components :
a. Condition (IF)
b. Result of the condition (Then),
c. Alternative Result (Else).
First, we consider that a hadith that explains actions and activities of the prophet Muhammad (pbuh). The following hadith is the perfect illustration of the principle:
أنَّ فَهْدًا حَدَّثَنَا ، قَالَ : حَدَّثَنَا أَبُو غَسَّانَ ، قَالَ : حَدَّثَنَا زُهَيْرٌ ، قَالَ : حَدَّثَنَا أَبُو إِسْحَاقَ ، قَالَ : أَتَيْتُ الأَسْوَدَ بْنَ يَزِيدَ ، وَكَانَ لِي أَخًا وَصَدِيقًا ، فَقُلْتُ يَا أَبَا عَمْرٍو ، حَدِّثْنِي مَا حَدَّثَتْكَ عَائِشَةُ رَضِيَ اللَّهُ عَنْهَا أُمُّ الْمُؤْمِنِينَ ، عَنْ صَلاةِ رَسُولِ اللَّهِ صَلَّى اللَّهُ عَلَيْهِ وَسَلَّمَ ، فَقَالَ : قَالَتْ : " كَانَ رَسُولُ اللَّهِ صَلَّى اللَّهُ عَلَيْهِ وَسَلَّمَ يَنَامُ أَوَّلَ اللَّيْلِ وَيُحْيِي آخِرَهُ ، ثُمَّ إِنْ كَانَتْ لَهُ حَاجَةٌ قَضَى حَاجَتَهُ ، ثُمَّ يَنَامُ قَبْلَ أَنْ يَمَسَّ مَاءً ، فَإِذَا كَانَ عِنْدَ النِّدَاءِ الأَوَّلِ ، وَثَبَ وَمَا قَالَتْ قَامَ فَأَفَاضَ عَلَيْهِ الْمَاءَ ، وَمَا قَالَتْ : اغْتَسَلَ وَأَنَا أَعْلَمُ مَا تُرِيدُ وَإِنْ كَانَ جُنُبًا تَوَضَّأَ وُضُوءَ الرَّجُلِ لِلصَّلاةِ "
From:
First, we have to separate the activity statements from the rest of the Islamic text:
كَانَ رَسُولُ اللَّهِ صَلَّى اللَّهُ عَلَيْهِ وَسَلَّمَ يَنَامُ أَوَّلَ اللَّيْلِ وَيُحْيِي آخِرَهُ ، ثُمَّ إِنْ كَانَتْ لَهُ حَاجَةٌ قَضَى حَاجَتَهُ ، ثُمَّ يَنَامُ قَبْلَ أَنْ يَمَسَّ مَاءً ، فَإِذَا كَانَ عِنْدَ النِّدَاءِ الأَوَّلِ ، وَثَبَ وَمَا قَالَتْ قَامَ فَأَفَاضَ عَلَيْهِ الْمَاءَ ، وَمَا قَالَتْ : اغْتَسَلَ وَأَنَا أَعْلَمُ مَا تُرِيدُ وَإِنْ كَانَ جُنُبًا تَوَضَّأَ وُضُوءَ الرَّجُلِ لِلصَّلاةِ "
The highlighted text represents a judgment of the narrator, and could help understand the structure of the activities.
وَمَا قَالَتْ قَامَ فَأَفَاضَ عَلَيْهِ الْمَاءَ، وَمَا قَالَتْ: اغْتَسَلَ وَأَنَا أَعْلَمُ مَا تُرِيدُ
In this step, we try to differentiate between activity, sub-activities, and actions. For ease of comprehension, we give the letter (A) for activities, the acronym (Sub) for sub-activities, and the letter (a) for actions.
يَنَامُ أَوَّلَ اللَّيْلِ | Action |
وَيُحْيِي آخِرَهُ | Activity |
ثُمَّ إِنْ كَانَتْ لَهُ حَاجَةٌ | If condition |
قَضَى حَاجَتَهُ | Then action |
ثُمَّ يَنَام | Action |
قَبْلَ أَنْ يَمَسَّ مَاءً | Condition (and action) |
فَإِذَا كَانَ عِنْدَ النِّدَاءِ الأَوَّلِ | If condition |
وَثَبَ | Then action |
وَإِنْ كَانَ جُنُبًا | If condition |
تَوَضَّأَ وُضُوءَ الرَّجُلِ لِلصَّلاةِ | Then Activity |
For computer scientist, this structure is very likely an algorithm, which could be encoded in computer understandable language, please refer to discussions at the end of the paper.
B. UML Activity Modelling for an activity hadith
Since the previous hadith focused on actions and activities, we choose to call it “activity hadith”. In consequence it should be modelled by a tool providing such possibilities; we present hereafter an example of hadith’s modelling using UML activity diagram.
In the same logic, i tried to code java class for islamic prayer, please read the complete code :)
package islamPillars.salat;
import islamAlgorithm.MuslimAlgorithm;
import Diplay.Generic;
import islamPillars.salat.Sounna.*;
import islamPillars.salat.Fard.*;
import tahara.Tahara;
public class Salat {
static Generic G;
static MuslimAlgorithm I;
public static void FajrPrayer() {
Generic.MessageToLoop("Adhan of al fajr ");
//sleep management to wake UP
Tahara.Ightissal();
Tahara.Woudou2();
AlFajr.AlFajr();
}
public static void SobhPrayer() {
Generic.MessageToLoop("Jama3a ");
AlSobh.AlSobh();
Generic.MessageToLoop("Adhkar assabah ");
Generic.MessageToLoop("Hidb Quran Reading ");
}
public static void DohaPrayer() {
Generic.MessageToLoop("Time for Doha prayer ");
Tahara.Ightissal();
Tahara.Woudou2();
Generic.MessageToLoop("Salat al Doha ");
}
public static void DohrPrayer() {
Generic.MessageToLoop("Adhan al Dohr ");
Tahara.Ightissal();
Tahara.Woudou2();
Generic.MessageToLoop("Salat of Dohr ");
}
public static void AsrPrayer() {
Generic.MessageToLoop("Adhan al Asr ");
Tahara.Ightissal();
Tahara.Woudou2();
Generic.MessageToLoop("Salat al Asr ");
Generic.MessageToLoop("Adhkar al massa2 ");
}
public static void MaghrebPrayer() {
Generic.MessageToLoop("Adhan al Maghreb ");
Tahara.Ightissal();
Tahara.Woudou2();
Generic.MessageToLoop("Salat al Maghreb ");
Generic.MessageToLoop("Quran Hisb Reading ");
}
public static void IchaPrayer() {
Generic.MessageToLoop("Adhan al Icha2 ");
Tahara.Ightissal();
Tahara.Woudou2();
Generic.MessageToLoop("Salat al Icha2 ");
}
}
没有评论:
发表评论