Date post: | 15-Apr-2017 |
Category: |
Documents |
Upload: | tareq-mulla |
View: | 186 times |
Download: | 13 times |
رقوط الخبيرة النظم مكتبات حول وتطبيقية بحثية دراسة
المعرفة تمثيل
في هندسة الحاسبات والتحكم اآللي.بحث أعد لنيل اإلجازة
طارق محمد مال إعداد:
د.حسن األحمد إشراف:
2013 - 2014
جامعة تشرين كلية الهندسة الميكانيكية والكهربائية قسم هندسة الحاسبات والتحكم اآللي
1الصفحة
ب سم هللا الرحمن الرحي م
ال عل م إال قليلا من وما أوتيتم
اللهم ال علم لنا إال ما علمتنا إنك أنت العليم احلكيم، اللهم علمنا
وانفعنا مبا علمتنا، وزدان علماما ينفعنا،
2الصفحة
تصادق لجنة الحكم بعد قراءتها ومناقشتها لمشروع التخرج على أنه مالئم من حيث النوعية
واألهمية ليكون بحثا لمشروع التخرج .
أسماء لجنة الحكم :
ذه الصفحة مخصصة لوضع مالحظات لجنة الحكم:ه
3الصفحة
I
كلمة شكر
يقول هللا سبحانه وتعالى: "قال هذا من فضل ربي ليبلوني ءأشكر أم أكفر ومن شكر فإنما
يشكر لنفسه ومن كفر فإن ربي غني كريم"
لذلك فإن كلمة الشكر يجب أن تكون هلل سبحانه وتعالى، خالصة له، فهو الذي أعانني لكي أنهي
بلغني منزل علم، كنت جاهال، و ، علمني بعد إذإلكمالههذا البحث، وهيأ لي األسباب واألشخاص
ورفعني درجة في هذه الدنيا.
ه وسلم "من لم يشكر الناس، لم أيضا هو يأمرنا لنشكر الناس، يقول سيدنا محمد صلى هللا علي
يشكر هللا".
لذلك أتقدم بالشكر لكل من ساعدني وأعاني في هذا البحث لكي يصل لما هو عليه، ولكل شخص
كان له سهم ولو صغير في إنهائه.
أتقدم بالشكر بشكل خاص للدكتور حسن األحمد، الذي كان مشرفا على البحث، وكان يقدم لي
طلوبة التي أحتاجها، باإلضافة إلى النصائح التي كان يمدني بها.الخبرة والمعلومات الم
انوا كأتقدم بالشكر أيضا لألصدقاء واألخوة الذين كانوا معي وساعدوني في إنهاء هذا المشروع، و
.لهدوما عونا لي في جميع مراح
ويبقى الشكر األكبر لشخص أعجز عن شكره ولو بقيت بخدمته طوال عمري، شخص أعانني
ال درب الجامعة، وله الفضل أوال وأخيرا في كامل حياتي الجامعية.طو
لكل من علمني حرفا طوال السنين، وأمدني بمعلومة ولو بسيطة في مسيرتي من القلب أخيرا شكر
الجامعية، لكل الدكاترة في جامعة تشرين، والمهندسين، واألصدقاء الذين كان لهم فضل علي.
4الصفحة
I II
وطرق Net. بيئة في الخبيرة النظم مكتبات حول وتطبيقية بحثية دراسة
المعرفة تمثيل
البحث:ملخص
لمكتبات النظم الخبيرة التي تعمل على بيئة وتطبيقية دراسة نظريةعن يتحدث البحث
.Net ألي مشروع يتضمن نواة والمقارنة بينها ووضع معايير محددة الختيار المكتبة األمثل
ودراسة الطرق المتبعة في تمثيل المعارف.، لنظام خبير
مكتبات من مكتبات النظم الخبيرة، ودراسة أشهر الطرق 10إجراء الدراسة على قرابة الـ تم
وضع مزايا ومساوئ كل طريقة، أيضا تمثم المقارنة بينها، و، ضمنها تمثيل المعارف المتبعة في
ص به لتمثيل المعارف واستخدامه ضمن لمبرمج من وضع معيار خاا وضع الكيفية التي يمكن
تطبيقات الذكاء الصنعي.
يتضمن البحث أيضا بناء نواة لنظام خبير حيث تم االستفادة من الدراسة السابقة في اختيار مكتبة
تطبيق عملي لنظام خبير موجود على موقع ويب، يقدم مناسبة لبناء النواة، وتم آخرا برمجة
رفة الكورسات المناسبة لهم من مجموعة من الكورسات الموجودة االستشارة للمستخدمين في مع
اعتمادا على خبرة الناس اآلخرين الذين تابعوا هذه الكورسات، التطبيق تم ذلك على الموقع، و
ثم تم تطبيقه على موقع ومن Windows Application شكل تطبيق مكتبيأوال على تصميمه
لكي يمكن لعدد أكبر من المستخدمين االستفادة منه، والحصول على خبرات الناس من جميع ويب
أنحاء العالم.
تبة خاصة كتم استخدام آخر التقنيات في مجال الويب لتنفيذ المشروع العملي، وتم االستفادة من م
م استخدام معيار، والتي تتميز بعراقتها في هذا المجال، وتNxBREفي النظم الخبيرة وهي مكتبة
.RuleMLعالمي في تمثيل المعارف هو معيار
تمت دراسة توافقية الموقع قدر اإلمكان مع مستعرضات الويب الحديثة، واالهتمام بالنواة األساسية
للمشروع من حيث البناء البرمجي، وقابلية الصيانة والتطوير، كونه سيكون نواة لموقع ويب سيتم
.يترفعه على شبكة اإلنترن
5الصفحة
6الصفحة
جدول األشكال:
الشكل رقم الصفحة21 .YAHOOو Google( محركات البحث 1-1الشكل )
31 Data Mining( عملية تنقيب البيانات 2-1الشكل )
31 Quora( موقع 3-1الشكل )
31 FaceBook( موقع 4-1الشكل )
81 النظام الخبير( مخطط توضيحي لفكرة 1-2الشكل )
( مكونات النظم الخبيرة2-2الشكل ) 19
12 ( مخطط عام للمكونات التي يمكن أن توجد في النظام الخبير3-2الشكل )
22 ( طريقة التواصل بين مكونات النظام الخبير4-2الشكل )
52 ( شجرة أهم لغات الترميز1-3الشكل )
62 XML( مجاالت استخدام لغة 2-3الشكل )
82 ( طريقة تمثيل المعايير3-3الشكل )
13 XMLأهم المعايير المتفرعة عن )4-3(الشكل
63 RuleMLمكونات المعيار (5-3الشكل )
PROLOGبيئة عمل لغة (6-3الشكل ) 39
34 NxBRE( البنية الهيكلية لمكتبة 1-4الشكل )
Microsoftمن Visio( برنامج 2-4الشكل ) 46
74 Visio( دمج التصميم مع القواعد في برنامج 3-4الشكل )
NetBpm( مثال عن قواعد مكتبة 4-4الشكل ) 50
15 NetBpm( عمليات المكتبة 5-4الشكل )
35 FlexRule( محركات مكتبة 6-4الشكل )
FlexRule( طرق تمثيل المعارف في 7-4الشكل ) 53
ASP.NET( أنواع التطبيقات التي يمكن برمجتها باستخدام 1-5الشكل ) 61
AJAX( طريقة عمل الـ 2-5الشكل ) 62
( طريقة عمل تطبيقات الويب التقليدية3-5الشكل ) 63
AJAXالمعتمدة على ( طريقة عمل تطبيقات الويب 4-5الشكل ) 63
Bootstrap( ملفات المكتبة 5-5الشكل ) 66
ومعيار قاعدة المعارف NxBRE( شعار مكتبة 1-6الشكل ) 72
37 Flow engine( طريقة عمل المحرك 2-6الشكل )
47 Inference engine( طريقة عمل المحرك 3-6الشكل )
57 ( مخطط انتقال الحقائق ضمن الذاكرة4-6الشكل )
( طبقات نواة النظام الخبير5-6الشكل ) 76
نواة النظام الخبير بشكل تفصيلي( طبقات 6-6الشكل ) 76
Windows application( تطبيق النظام الخبير على واجهة 7-6الشكل ) 83
( تطبيق النظام الخبير على الويب8-6الشكل ) 84
( هيكلية موقع الويب9-6الشكل ) 85
( صفحة الكورسات10-6الشكل ) 86
7الصفحة
IV
جدول األكواد:
الشكل رقم الصفحة XML( مثال عن كود 1-3الكود ) 27
DTD( توصيف عالقة باستخدام 2-3الكود ) 29
DTDباستخدام 2( توصيف عالقة 3-3الكود ) 29
DTD( في توصيف الـ |( استخدام المعامل )4-3الكود ) 29
DTD( والمعامل ) * ( في توصيف الـ +( استخدام المعامل ) 5-3الكود ) 30
DTD( استخدام المعامل ) ؟ ( في توصيف الـ 6-3الكود ) 30
RuleML0.8لمعيار DTD( ملف الـ 7-3الكود ) 33
RuleMLمثال عن توصيف حقيقة باستخدام ( 8-3الكود ) 34
RuleMLمثال عن توصيف قاعدة باستخدام ( 9-3الكود ) 34
RuleMLمثال عن توصيف قاعدة باستخدام ( 10-3الكود ) 35
.HornMLلعيار DTDملف الـ ( 11-3الكود ) 36
HornMLمثال عن توصيف حقيقة باستخدام ( 12-3الكود ) 37
HornMLمثال عن توصيف قاعدة باستخدام ( 13-3الكود ) 37
HornMLمثال عن توصيف قاعدة باستخدام ( 14-3الكود ) 37
HornML( استخدام خصائص الوسوم في 15-3الكود ) 38
HornMLفي IDREFو ID( استخدام 16-3) الكود 38
.SHOE( مثال عن قاعدة معرفة باستخدام معيار 17-3الكود ) 39
PROLOG( مثال عن حقيقة في لغة 18-3الكود ) 39
PROLOG( مثال عن قاعدة معرفة باستخدام 19-3الكود ) 40
44 Flow engine( مثال عن محرك من 1-4الكود )
44 xbre( مثال عن ملف قواعد 2-4الكود )
Inference engine( مثال عن ملف محرك من نوع 3-4الكود ) 45
64 RuleML( مثال عن ملف قواعد 4-4الكود )
HRF( مثال عن ملف قواعد 5-4الكود ) 47
Drools.Net( مثال عن محرك باستخدام 6-4الكود ) 48
Drools.Net( مثال عن قواعد المكتبة 7-4الكود ) 49
NetBpm( مثال عن قاعدة للمكتبة 8-4الكود ) 52
FlexRuleللمكتبة XML( مثال عن قاعدة 9-4الكود ) 55
HTML( مثال عن كود 1-5الكود ) 59
CSS( مثال عن كود 2-5الكود ) 60
JavaScript( مثال عن كود 3-5الكود ) 60
AJAX( ملف تنفيذ تقنية 4-5الكود ) 65
JQuery( طريقة استخدام مكتبة 5-5الكود ) 66
86 Bootstrap( طريقة استخدام مكتبة 6-5الكود )
87 – 79 Inference Engineالطبقة (1-6)الكود
08 – 18 – 28 - 38 ( جزء من قاعدة المعارف الخاصة بالموقع2-6الكود )
8الصفحة
المحتويات:
4....................................................................................................................................... ملخص البحث:
12.............................................................................................................. مدخل إلى البحث: -الفصل األول
12....................................................................................................... الذكاء الصنعي في عالم الويب: 1-1
14................................................................................................ توصيف متطلبات المشروع وأهدافه: 1-2
14............................................................................................................... توصيف المشروع: 1-2-1
14................................................................................................................ توصيف األهداف: 1-2-2
15................................................................................................................ :مراحل الدراسة والعمل 1-3
15..................................................................................................... التحديات التي واجهت المشروع: 1-4
15...................................................................................................................... ما تم إنجازه سابقا: 1-5
16.............................................................................................................. لمحة عن فصول التوثيق: 1-6
18................................................................................................................... النظم الخبيرة: -الفصل الثاني
18................................................................................................................... تعريف النظام الخبير: 2-1
19.................................................................................................................. مكونات النظام الخبير: 2-2
Knowledge base: .............................................................................................19قاعدة المعرفة 2-2-1
Inference Engine: .............................................................................................20آلية االستدالل 2-2-2
Interface User: .............................................................................................20واجهة االستخدام 2-2-3
21.................................................................................................................. خواص النظام الخبير: 2-3
22.............................................................................................................. استخدامات النظام الخبير: 2-4
23................................................................................................................... ميزات النظام الخبير: 2-5
23.................................................................................................................... عيوب النظام الخبير: 2-6
25........................................................................................... وطرق تمثيل المعارف: XMLالفصل الثالث: لغة
XML: ...........................................................................................................25لغة الترميز الموسعة 3-1
XML: ..............................................................................................................25مميزات لغة 3-1-1
25....................................................................................................... في الويب: XMLوظائف 3-1-2
XML: .....................................................................................................26البنية الهيكلية لملف 3-1-3
XML: ..............................................................................................27طرق تمثيل المعارف باستخدام 3-2
XML: .................................................................................................27وصف المعايير لملفات 3-2-1
DTDs: .............................................................................................29توصيف المعيار باستخدام 3-2-2
31........................................................................................ أشهر معايير تمثيل المعارف للنظم الخبيرة: 3-3
RuleML: ..................................................................................................................31معيار 3-3-1
RuleML: ...................................................................................................32تاريخ معيار 3-3-1-1
RuleML 0.8: .....................................................................................33لمعيار DTDsملف 3-3-1-2
RuleML: ...............................................................................................34أمثلة عن معيار 3-3-1-3
9الصفحة
RuleML: ...............................................................................................36مكونات المعيار 3-3-1-4
HornML: .................................................................................................................36معيار 3-3-2
RuleML: ..........................................................................................36لمعيار DTDsملف 3-3-2-1
HornML: ..............................................................................................37أمثلة عن معيار 3-3-2-2
SHOE: .....................................................................................................................38معيار 3-3-3
PROLOG: .........................................................................................39تمثيل المعارف باستخدام 3-3-4
41......................................................................................................... مكتبات النظم الخبيرة: -الفصل الرابع
NxBRE: ..........................................................................................................................42مكتبة 4-1
42.................................................................................................................. مكونات المكتبة: 4-1-1
Flow Engine : ............................................................................................43المحركات من نوع 4-1-2
Inference Engine: .........................................................................................44محرك االستدالل 4-1-3
RuleML: ....................................................................................46ملفات القواعد على هيئة 4-1-3-1
Visio: ......................................................................46باستخدام VDXالقواعد على هيئة ملف 4-1-3-2
HRF: ...........................................................................................47القواعد على هيئة ملف 4-1-3-3
Drools.NET: ....................................................................................................................47مكتبة 4-2
NetBPM: .........................................................................................................................49مكتبة 4-3
FlexRule: ........................................................................................................................52مكتبة 4-4
cDevWorkflow: ...............................................................................................................55 مكتبة 4-5
NGinn.BPM: ....................................................................................................................55مكتبة 4-6
Workflow Engine.Net: .......................................................................................................56مكتبة 4-7
SRE (Simple Rule Engine): .................................................................................................56مكتبة 4-8
Stateless: .........................................................................................................................57مكتبة 4-9
Softix.Orchestration:........................................................................................................57مكتبة 4-10
59....................................................................................................... تقنيات الويب الحديثة: -الفصل الخامس
Web application: .............................................................................................59بناء تطبيقات الويب 5-1
ASP.NET: .........................................................................................................................61بيئة 5-2
AJAX: .............................................................................................................................62تقنية 5-3
AJAX: ..........................................................................................................63طريقة عمل الـ 5-3-1
JQuery: ...........................................................................................................................65مكتبة 5-4
BootStrap: ....................................................................................................................66مكتبة الـ 5-5
71............................................................................................ الفصل السادس: نتائج الدراسة والتطبيق العملي:
71........................................................................................................................ الدراسة النظرية: 6-1
71................................................................................................ معايير اختيار مكتبة النظام الخبير: 6-1-1
10الصفحة
NxBRE: ............................................................................................................73اختيار المكتبة 6-1-2
73..................................................................................................... اختيار طريقة تمثيل المعارف: 6-1-3
74........................................................................................................... اختيار محرك االستدالل: 6-1-4
Expert System Core: ..............................................................................................77نواة النظام الخبير 6-2
Inefernce Engine: ........................................................................................................78طبقة الـ 6-2-1
81................................................................................................. قاعدة المعارف الخاصة بالتطبيق: 6-2-2
84.............................................................................................................................. التطبيق العملي: 6-3
Web Application: .................................................................................................85تطبيق الويب 6-3-1
86........................................................................................................................ هيكلية الموقع: 6-3-2
87............................................................................................................... صفحات موقع الويب: 6-3-3
88.............................................................................................................. تجريب توافقية الموقع: 6-3-4
91.............................................................................................. الفصل السابع: الخاتمة، المقترحات التطويرية:
91................................................................................................................................... الخاتمة: 7-1
91......................................................................................... المستقبلية والمقترحات التطويرية:األعمال 7-2
92............................................................................................................................................. المراجع
11الصفحة
الفصل األول:
مدخل إلى البحث
في هذا الفصل:
.الذكاء الصنعي في عالم الويب ‹
.توصيف متطلبات المشروع وأهدافه ‹
.مراحل الدراسة والعمل ‹
.التحديات التي واجهت المشروع ‹
.عن فصول التوثيقلمحة ‹
12الصفحة
مدخل إلى البحث: -األول الفصل
الذكاء الصنعي في عالم الويب: 1-1
إن الذكاء الصنعي من أكثر العلوم التي تلقى اهتمام من قبل العلماء في كافة المجاالت، ومن هذه المجاالت عالم الويب،
إن الذكاء الموجود في هواتفنا وفي األلعاب التي نلعبها وما نالحظه من ذكاء تبديه مواقع الويب لم يعد يخفى علينا، وبالرغم
اآلن وضع تعريف محدد للذكاء الصنعي، ولكن بشكل عام فإننا يمكن تعريف الذكاء الصنعي من ذلك فإنه لم يستطع أحد حتى
Artificial intelligence بأنه فرع من فروع علم الحاسبComputer science يعنى بمحاكاة السلوك الذكي عند ،
.Complex problem [7]اإلنسان، وفي حل المشكالت المعقدة
تعتبر مجاالت الذكاء الصنعي متعددة، فمنها ما هو استداللي، ومنها ما يبحث في عمليات البحث، ومنها ما يعتمد على
ل واحد، وهو الحصو باتجاه منحىالعمليات اإلحصائية في الحصول على معلومات مهمة، ولكن بشكل عام فإن أغلبها تنحى
عقل هي أن يكون عونا لإلنسان في مجاالت الحياة كافة، ال سيما في المجاالت على عقل يفكر كما اإلنسان، والغاية من هذا ال
التي يعتبر فيها اإلنسان قاصرا مثل البحث السريع، وعمليات االستنتاج الكبيرة، أو التي تتطلب عمليات حفظ ذاكرة كبيرة
[4]. بسرعة
ات من حولنا وال سيما في عالم الويب، فمن أكثر التطبيق وكما أسلفنا الذكر فإن الذكاء الصنعي أصبحنا نشعر به في كل مكان
Bingو Googleالذكية التي نتعامل معها بشكل دائم على شبكة اإلنترنيت، هي محركات البحث التي نستخدمها، مثل
ءومحركات البحث األخرى، هذه المحركات تتمتع بقدرة رهيبة على جلب المعلومات من مستودع هائل في أجزا Yahooو
بسيطة من الثانية، عملية البحث هذه حتما ال تتم بشكل اعتباطي، بل تتم بشكل ذكي ومدروس للحصول على أفضل المعلومات
وبزمن بسيط، ويتم لتنفيذ ذلك خوارزميات ذكية.
YAHOO[25] و Googleمحركات البحث (1-1)الشكل
" وهي خوارزميات تحليل للبيانات يتم ربطها مع Data Miningتسمى هذه الخوارزميات في عالم الويب "تنقيب البيانات
تقنيات الذكاء االصطناعي والعمليات اإلحصائية لتحليل هذه البيانات، وببساطه هي عملية تفتيش وبحث عن معلومات معينه
.[7] ومفيدة في حجم كبير من البيانات
13الصفحة
Data Mining[25] عملية تنقيب البيانات (2-1)الشكل
أيضا نجد في عالم الويب الكثير من المواقع المشهورة والتي تقدم مساعدات ومشورات في مواضيع متعددة بشكل ذكي،
مهمة وهو موقع متميز جدا بالذكاء الصنعي، يقدم ميزات ( 3-1)الذي يظهر في الشكل Coraنذكر من هذه المواقع موقع
وجميلة، حيث يمكن أن يقوم المستخدم بسؤاله عن شيء معين فيجيبه بإجابات دقيقة نوعا ما، وذلك اعتمادا على طرق
استدالل ذكية وخبرات سابقة لمستخدمين آخرين أضافوا خبرتهم ضمن الموقع.
Quora[26] موقع (3-1)الشكل
التعرف على أوجه األشخاص تموقعا مميزا مليء بخوارزميات الذكاء الصنعي، فخوارزميا FaceBookأيضا يعتبر موقع
أيضا الميزة المهمة الموجودة فيه وهي ميزة ( 4-1)الشكل FaceBookتعتبر مثاال على الذكاء الصنعي الذي يحويه موقع
ى هؤالء األشخاص الذين قد نعرفهم."أشخاص قد تعرفهم" مبنية على نظام خبير يقوم بعملية استداللية للحصول عل
FaceBook[27] موقع (4-1)الشكل
14الصفحة
توصيف متطلبات المشروع وأهدافه: 1-2
باإلضافة إلى دراسة NET. بيئةتدور فكرة المشروع حول دراسة نظرية للمكتبات المتخصصة بالنظم الخبيرة وذلك ضمن
العمل أيضا على تطبيق عملي لموقع ويب يحتوي على نظام خبير تكمن وتم ، XMLطريقة تمثيل المعارف باستخدام معايير
أهميته في مساعدة الزائر في تحديد الكورس الذي يناسبه من مجموعة من الكورسات الموجودة على الموقع، وذلك اعتمادا على
خبرات المستخدمين اآلخرين المنضمين للموقع.
توصيف المشروع: 1-2-1
المشروع بالنقاط التالية:يمكن توصيف محاور
إجراء دراسة نظرية على غالب المكتبات المتخصصة بالنظم الخبيرة، وتحديد أهم فوائدها ومساوئها. -
دراسة المعايير المستخدمة في تمثيل المعارف، مع تحديد الطريقة التي يتم بها وضع معيار شخصي. -
لى مجموعة من المعايير التي يمكن االعتماد تم وضع الدراسة قيد التجريب والتطبيق بحيث تم الحصول ع -
عليها لتحديد المكتبة المناسبة للمستخدم.
، واالعتماد عليها في NxBREدراسة المكتبة المستخدمة في بناء النظام الخبير بشكل كامل وهي مكتبة -
التطبيق العملي.
بة للمستخدم من قائمة منتم تصميم تطبيق ويب يعتمد على النظم الخبيرة في تحديد الكورسات المناس -
الكورسات وذلك حسب االختصاص وحسب خبرة األشخاص األىخرين المنضمين للموقع.
الخاصة بالموقع قوية بحيث يصبح من السهولة تطويره، وصيانته، والعمل على Coreالعمل على جعل النواة -
وضه قيد العمل على شبكة الويب.
ة لجعل التطبيق محققا لكامل المواصفات.االعتماد على آخر تقنيات الويب الحديث -
توصيف األهداف: 1-2-2
استخدام الخبرات التي يملكها الناس على مستوى العالم، وتوظيفها بما يحقق فائدة ألناس آخرين. -
الحصول على موقع على شبكة األنترينت يمكن المستخدمين من استشارته فيما يتعلق بظروف حياتهم -
يمر بها معظم الناس.االعتيادية، والتي
الحصول على موقع ويب تفاعلي، متكامل، يتميز بالذكاء، وذو فائدة عملية للمستخدمين، ويمكن االعتماد عليه -
لحل مشكلة معينة.
تحقيق الفائدة في مجال معين لشريحة واسعة من المستخدمين عبر جعل التطبيق موجودا على شبكة الويب. -
ى شبكة الويب، كما يفعل العديد من الطالب الجامعيين في العالم، كصاحب وضع بصمة مهمة لطالب سوري عل -
. FaceBookموقع
15الصفحة
:مراحل الدراسة والعمل 1-3
تم العمل على المشروع طوال السنة األخيرة، وقد تم تقسيم العمل على مجموعة من الخطوات المتتالية بحيث تم البدأ
هذه الخطوات بالترتيب هي:بكل مرحلة حين االنتهاء من سابقتها،
دراسة موضوع الذكاء الصنعي، والنظم الخبيرة بشكل أساسي للحصول على معلومات واسعة وقوية عن مجال -1
البحث.
تم إجراء عملية بحث واسعة في مكتبات النظم الخبيرة على شبكة األنترنيت والحصول على آخر إصداراتها، -2
عنها، أو تطبيقات تعتمد عليها.باإلضافة إلى البحث عن أي مراجع تتحدث
المرحلة الثالثة كانت في عملية البحث عن أشهر المعايير المستخدمة في تمثيل المعارف، ومدى انتشارها، -3
واعتمادها عالميا.
.NxBREإجراء عملية دراسة واسعة حول المكتبة المختارة من مكتبات النظم الخبيرة، وهي مكتبة -4
اعتمادا على مبادئ برمجية عالمية، بحيث يمكن تطويرها وصيانتها مستقبال.بناء نواة النظام الخبير -5
عملي يستخدم نواة النظام الخبير، وهو موقع ويب متخصص بتقديم النصائح للمستخدمين في مجال البدأ بتطبيق -6
تمد يع، ويانةصوي، قابل للتطوير، وقابل للبحيث يكون ذو بنيان ق الكورسات المناسبة لهم، وقد تم تطوير الموقع
في مجال الويب.على آخر التقنيات
تجريب الموقع والعمل على نشره بين األشخاص، لكي يتم تجريبه والتأكد من توافقه مع المتصفحات األخرى، -7
وإصالح األخطاء التي تحتويه.
التحديات التي واجهت المشروع: 1-4
واجهت المشروع تحديات كثير كان أهمها ما يلي:
الكبير في مراجع النظم الخبيرة على شبكة الويب، وخصوصا حين يتعلق األمر ببرمجة تطبيقات هذه الشح -
النظم.
الحاجة إلى قوة كبير في مصطلحات اللغة اإلنكليزية التخصصية نظرا إلى أن غالب الشروحات عن المكتبات -
تكون باللغة اإلنكليزية.
مما شكل عائقا وتحديا كبيرا لكي ينتهي بالزمن المحدد. كثرة التقنيات واللغات المستخدمة في المشروع -
ما تم إنجازه سابقا: 1-5
الدخول إليه، وتحاول تطبيق مفاهيمه ضمن يعتبر هذا البحث من المواضيع الحديثة التي تعمل غالب الشركات على
ل الموقع مفيدا للمستخدمين.تطبيقاته، وخاصة إذا كان األمر يتعلق بالويب، حيث يكون للخبرة أهمية كبيرة في جع
و FaceBook، ومواقع التواصل االجتماعي مثل Amazonمن المواقع التي تطبق النظم الخبيرة موقع الكتب المشهور
Twitter أيضا يوجد مواقع متخصصة بالمعرفة فقط وبشكل صريح مثل موقع ،Cuora.
خبيرة، التجارية التي تباع من قبل شركات وتطبق مبادئ النظم البينما على تطبيقات سطح المكتب فيوجد العديد من التطبيقات
بحيث يستفيد الزبون من هذه الخدمات ضمن شركته، أو للغاية التي يريد شراؤه من أجلها.
16الصفحة
لمحة عن فصول التوثيق: 1-6
تم تقسيم التوثيق إلى سبعة فصول رئيسية:
وجود الذكاء الصنعي في عالم الويب، وعن أهم المواقع والتقنيات الذكية في الفصل األول، تم الحديث عن الفائدة العملية من
التي تتواجد من حولنا من دون أن نشعر، وكذلك تم التطرق إلى توصيف متطلبات المشروع وأهدافه، والخطة التي تم اتباعها
في العمل.
ة لنظم الخبيرة, ويتألف هذا الفصل من عدتم في الفصل الثاني مناقشة المواضيع المرتبطة بصلب موضوع المشروع وهو ا
أقسام. تم في القسم األول منه استعراض سريع للمكونات التي يتألف منها النظام الخبير، أيضا تم الحديث في القسم الثاني
عن خصائص النظم الخبيرة، وتم اختتام الفصل بميزات ومساوئ النظم الخبيرة.
وطرق استخدامها، والفوائد التي نستفيدها منها، أيضا تم الحديث عن معايير XMLة يعتبر الفصل الثالث توصيفا عمليا للغ
المستخدم في التطبيق. RuleMLتمثل المعارف مع التركيز على شرح المعيار
ASP.NETفي الفصل الرابع تم توضيح آخر تقنيات الويب الحديثة التي تم استخدامها في المشروع، وتم الحديث عن لغة
جة مواقع الويب.في برم
وفيه تم الحديث عن NET.أما الفصل الخامس فهو يحوي وصفا وشرحا ألهم مكتبات النظم الخبير الموجودة على بيئة الـ
المستخدمة في التطبيق. NxBREأشهر مزايا ومساوئ كل مكتبة على حدى مع التركيز على شرح مكتبة
شرح الطرق التي تم االستناد عليها في اختيار مكتبة النظام الخبير وطريقة وطريقة بناء نواة النظام الخبير وتطبيق الويب،
تمثيل المعارف موجودة في الفصل السادس.
وفي النهاية تم اختتام التوثيق بفصل يتحدث عن األفكار المستقبلية ويتبعها مجموعة من المقترحات التطويرية التي كنت آمل
.الحييكن من صالقيام بها ولكن الوقت لم
17الصفحة
:الثانيالفصل
النظم الخبيرة
في هذا الفصل:
.م الخبيراالنظتعريف ‹
.مكونات النظام الخبير‹
.خواص النظام الخبير‹
.الخبير اماستخدامات النظ‹
م الخبير.اميزات النظ‹
.م الخبيراعيوب النظ‹
18الصفحة
النظم الخبيرة: -الثاني الفصل
متعلقة بالخبرة البشرية برنامجالنظام الخبير هو يحاول النظام الخبير القيام بعمليات تعتبر ، حيثمصمم لينفد مهاما
[7].عادة من اختصاص البشر ويتضمن الحكم واتخاد القرارات
لبشريون كمية هائلة من المعرفة المتخصصة في مجاالت عملهم لذا فإن النظم الخبيرة تستند عادة إلى قواعد ا يملك الخبراء
نشأت النظم الخبيرة كفرع من فروع ، وقدمعرفة تتضمن عدد هائال من قواعد المعطيات التي تحوي معلومات المعرفة
[7].الذكاء االصطناعي
:الخبيرم االنظتعريف 2-1
ذلك عن و ،لخبير البشري في مجال خبرة معينتحاكي آداء ا حاسوبية ف النظم الخبيرة بإنها عبارة عن برامجرنع يمكن أن
طورت لتبدو أنها تفكر كاإلنسان فتقوم باالستنتاج، ين، وقدر أو أكثر في مجال معطريق تجميع واستخدام معلومات وخبرة خبي
ى مهامها بسرعة ومهارة فائقة، وخاصة التي تطلب عادة متخصص مدربا تدريبا ولديها القدرة على التعلم من أخطائها، وتؤد
جيدا في ميدان معين من الخبرة، ويعنى هذا أن النظام الخبير يؤدى المهام التي يؤديها الخبير البشرى في مجاله، وهو يعمل
.[4] عمل فيها النظام الخبيركأداة مساعدة في اتخاذ القرارات وحل والمشكالت داخل إحدى الميادين التي ي
المستخدمة في االستفادة من الخبرة Artificial Intelligenceتعد النظم الخبيرة إحدى تطبيقات الذكاء االصطناعي
الموجودة عند أشخاص محددين، وقد اكتسب هذا العلم الحديث أهمية ملحوظة في السنوات األخيرة، نظرا لتطبيقاته المتعددة
بيرة كفي كافة ميادين الحياة كالطب، والهندسة، والكيمياء، والتعليم، وكذلك في المكتبات والمعلومات، ولما يحققه من فائدة
.[8] لجميع المستفيدين من هذه الخبرة
يوضح الشكل التالي مخططا توضيحيا لفكرة النظام الخبير:
[28] مخطط توضيحي لفكرة النظام الخبير (1-2)الشكل
العالم "براجعان" سبعة نقاط مستقلة تشكل تعريفا شامال للنظم الخبيرة ويجب أن تتصف بها النظم الخبيرة، هذه " أدرج
:[8] النقاط هي
19الصفحة
يجب أن يكون للنظام نفس الخبرة الموجودة لدى اإلنسان الخبير من أجل الوصول الى النتيجة الصحيحة، الخبرة: -1
. كما يجب أن تكون الحلول مختصرة واستخدام عمليات االستنتاج واالستنباط في ذلك
أي تمثيل مفاهيم المشكلة بمجموعة من الرموز، وهو ما يسمى تمثيل قاعدة المعارف. استخدام الرموز: -2
يجب أن يبدي النظام الخبير تصرفا ذكيا، أكثر أو أقل ذكاء من اإلنسان. الذكاء: -3
يجب أن تكون المشكلة بشكل كافي من التعقيد لتتطلب خبيرا بشريا، ال أن تكون مشكلة تافهة الصعوبة والتعقيد: -4
تحتاج لنظام خبير.ال
قدرة النظام على تحويل المشكلة المطروحة إلى صيغة مالئمة لكي يصبح باإلمكان معالجتها عن طريق الصياغة: -5
القواعد الخاصة باالمحرك االستداللي للنظام الخبير.
ره لهذه تياقدرة النظام الخبير على االستنتاج وعلى توضيح القرارات والسبب في اخ االستنتاج والتوضيح: -6
القرارات.
تحديد المشكلة التي يهيئ النظام من أجل حلها حيث يجب أن تكون محددة وخاصة، ال أن تكون نوع المشكلة: -7
عامة.
مكونات النظام الخبير: 2-2
مكن يكما تبين سابقا فإن النظام الخبير عبارة برامج حاسوبية، لذلك فإن مكونات النظام الخبير هي عبارة عن مكونات
:[8] تصميمها برمجيا وباستخدام طرق متعددة، وغالبا ما يكون النظام الخبير في الغالب مكونا من العناصر التالية
.Knowledge baseقاعدة المعرفة -
.Inference engineآلية االستدالل -
.User Interfaceواجهة االستخدام -
[25] مكونات النظم الخبيرة (2-2)الشكل
:Knowledge baseقاعدة المعرفة 2-2-1
قاعدة المعارف هي عبارة عن ملفات لبيانات تحتوي على مجموعة معطيات تدعى الحقائق والقواعد التي ستتم بها
.XMLمعالجة الحقائق، ويمكن أن يتم بناء قاعدة المعارف باستخدام قواعد البيانات أو باستخدام ملفات نصية أو ملفات
المكونات التالية: والتي تتكون منيقاس مستوى أداء النظام الخبير بداللة حجم ونوعية قاعدة المعرفة التي يحتويها،
20الصفحة
والممارسة للخبراء في مجال : وهي عبارة عن مجموعة من الحقائق المستندة إلى الخبرةFactsالحقائق -
.معين
طرق حل المشكالت وتقديم االستشارة. -
.Rules، وتدعى المستندة على صيغ رياضيةالقواعد -
يتم وضع قاعدة المعارف اعتمادا على طرق، أهم هذه الطرق:
مبني بصيغة قواعدية معيارية، XML: حيث يتم وضع الحقائق والقواعد بداخل ملف XMLباستخدام ملفات -1
تجعل إمكانية تبادله بين التطبيقات امرا ممكنا.
حيث يتم تمثيل الحقائق بداخل جداول، ويتم إجراء عمليات استعادة لهذه الحقائق لمعالجتها باستخدام قواعد البيانات: -2
وفقا لقواعد محددة، وهذه الطريقة غير فعالة.
يمكن أن تتم عملية إنشاء قاعدة المعارف باستخدام إحدى لغات البرمجة المتخصصة بالنظم الخبيرة، وكمثال عليها -3
لغة برولوغ تعتبر من أشهر لغات تمثيل لتي تتميز بقوتها في تمثيل المعارف، إن ، واCLIPS، ولغة Prologلغة
، وقاعدة معارف factsعبارة عن لغة تتمتع بقدرتها على بناء قاعدة بيانات ضخمة من الحقائق المعارف، وهي
والقدرة على الربط بينها بشكل قوي، وتستطيع البرامج المصممة بلغة برولوغ من استنتاج Rulesمن القوانين
اإلجابة عن األسئلة من قاعدة المعارف التي ندخلها إياها.
:Inference Engineآلية االستدالل 2-2-2
ة، لمختزنة في قاعدة المعرفهي عبارة عن وسيلة استدالل تقوم بفرز وترتيب واختيار القواعد والحقائق المناسبة وا
[4].ليصل إلى حل للمشكلة، مستخدما المعلومات والبيانات المتعلقة بالمشكلة المعروضة على النظام الخبير
يتم بناء محرك االستدالل باستخدام إحدى لغات البرمجة مرتفعة المستوى، أو من خالل لغات برمجة متخصصة بواضيع
، ويوجد أنواع مختلفة لمحركات االستدالل، وبشكل عام فإن المحرك Prologو Clipsالذكاء الصنعي والنظم الخبيرة مثل
:[17] يمكن أن يكون من إحدى المحركات التالية
- Procedural Execution Engine
- Inference Engine
- Flow Engine
- Work flow Engine
- Validation Engine
- Decision Table
يعتبر محارك االستدالل إحدى أهم مكونات النظام الخبير، وتكمن قوة النظام الخبير في طريقة استنتاجه، حيث ترتفع كفاءة
الطريقة التي يستخدمها لالستنتاج متطورة، ومدروسة.المعلومات التي يقدمها كلما كانت
:Interface User االستخدامواجهة 2-2-3
واجهة االستخدام هي صلة الوصل بين تطبيق النظام الخبير والمستخدم، والمستخدم ال يرى من التطبيق سوى هذه
االعتناء بها وذلك ألن المستخدم ال يتعامل مع النظام الخبير مباشرة، بل يتعامل معه عبر هذه الواجهة، لذا يجب االهتمام و
الواجهة، فإذا كانت هذه الواجهة ال تحقق السهولة والبساطة التي يريدها المستخدم فإن كل النظام الخبير ال يعد يهمه مهما
ي النظم الخبيرة.كان قويا ومتينا، لذلك فبناء الواجهة أمر مهم، وأساسي ف
21الصفحة
يمكن أن تكون واجهة االستخدام بأي شكل، ولكن يجب أن تحتوي بالضرورة على كل ما يلزم المستخدم، وتؤمنه له بشكل
سلس وبسيط من دون تعقيد، والسبب أن الشخص الذي سيستفيد من النظام الخبير هو شخص عادي، ال يهمه أبدا ما وراء
ي يتفاعل بها مع هذا النظام، ولذلك يمكن أن تكون واجهة المستخدم واحدة من عدة خيارات:التطبيق، ولكن يهمه الطريقة الت
قد تكون أسئلة تحتوي على أجوبة محددة، يقوم النظام بطرحها على المستخدم، وهو يجيب عليها. -1
قد تكون عبارة عن قوائم، أو شاشة رسومية. -2
بكتابة المشكلة بلغة طبيعية، ويقوم النظام بفهم النص أوال ثم يمكن أن تكون بشكل متطور، يقوم فيه المستخدم -3
تحليله لمعرفة مراد المستخدم.
[4] مخطط عام للمكونات التي يمكن أن توجد في النظام الخبير (3-2)الشكل
خواص النظام الخبير: 2-3
حيث ،يعتمد على قاعدة معارف فقط كونهوذلك ل النظام الخبير بأنه نظام ذكي،يصنفون يوجد بعض العلماء الذين ال
يجب أن ننتبه إلى أنه ليس كل نظام يستند إلى قاعدة المعرفة هو نظام خبير، بل يجب أن يمتلك هذا النظام القدرة على التفسير
ي رواالستنتاج للوصول إلى القرارات، وطلب معلومات إضافية كما يفعل اإلنسان الخبير في عملية التفسير والتحليل والتح
.[1] وخاصة في المجاالت التي تكون فيها الحقائق غير كاملة أو غير أكيدة
وبشكل عام فإن خواص النظام الخبير يمكن أن نجملها بما يلي:
. سهلة االستخدام ألي مستخدم سواء مستخدم عادي أو مطور -
. قادرة على التعلم من الخبراء بطريقة مباشرة وغير مباشرة -
. أي حلول تتوصل إليها مع توضيح طريقة الوصول إليهاقادرة على تفسير -
تعمل بمستوى علمي واستشاري ثابت ال تتذبذب. -
.ذوي الخبرة البسيطة قادرة على تعليم غير المتخصصين -
يتطلب بناؤها تمثيل كميات هائلة من المعارف الخاصة بمجال معين . -
. حدود التطبيق قادرة على االستجابة لألسئلة البسيطة وكذلك المعقدة في -
ظهر على الحالة الكاملة، هؤالء األشخاص هم:يإن النظام الخبير يحتاج إلى تضافر جهود بعض األشخاص لكي
22الصفحة
مهندس النظام والذي يقوم بتصميم النظام، وووضع آلية االستنتاج، والعمليات التي تقوم بالقراءة من قاعدة المعارف -1
والحفظ فيها.
يمتلك الخبرة المراد إدخالها ضمن النظام.الخبير: وهو الشخص الذي -2
مهندس المعرفة: وهو الشخص الذ يقوم بتحويل خبر الشخص الخبير، إلى رموز يفهمها النظام الخبير. -3
المستخدم: وهو الشخص الذي يستفيد من النظام الخبير. -4
[4] طريقة التواصل بين مكونات النظام الخبير (4-2)الشكل
الخبير: اماستخدامات النظ 2-4
استخدمت النظم الخبيرة في نطاق واسع من الميادين والمجاالت مثل:
الطب وتشخيص األمراض. -
السياحة )تخطيط وتنظيم الرحالت الجوية والبحرية والبرية(. -
الطقس ) تحديد األحوال الجوية(. -
مساعدة رجال األعمال في اتخاذ القرارات(. -التجارة )تحليل األسواق -
)مراقبة خطوات التصنيع(.الصناعة -
تحليل المواقف وإعداد الخطط(. - العلوم العسكرية )اتخاذ القرارات وقت نشوب المعارك -
باإلضافة إلى مجاالت أخرى طبقت فيها النظم الخبيرة مثل الزراعة، الكيمياء، الفضاء، اإللكترونيات، الجيولوجيا.
23الصفحة
:ام الخبيرميزات النظ 2-5
قوم العلماء حيث يتتميز النظم الخبيرة بالعديد من المميزات التي تدفع الناس إلى الحصول عليها، وباألخص الشركات،
:[7] بتصميم هذه النظم، ويدفعهم لذلك مجموعة من األمور، أهمها
تخدام إلسوخصوصا في التخصصات الهامة الكثيرة ا ، اإلحتفاظ بالخبرة والمعرفة من اإلندثار أو اإلنقراض -
.أو النادرة
.مما يحفظ الوقت و المال والجهد ،حل المشاكل -
.زيادة الخبراء في مجال تطبيق النظام الخبير -
. تقليص االعتماد على الخبراء البشر -
توظف النظم الخبيرة مستوى عالي من الخبرات التي تمكن المستخدم من اكتساب الخبرة في المعرفة الخاصة -
.بالنظام الخبير
في بعض األمور الروتينية. التخلص من الشعور بالتعب والملل -
:م الخبيراالنظ عيوب 2-6
:[𝟕] بالرغم من الفوائد العظيمة للنم الخبيرة إال أننا ال نالحظ وجودها، إن السبب في ذلك يعود لعدة أمور، أهمها
. ذات تكلفة عالية مقارنة بالتطبيقات التقليدية -
. في النظم اإلدارية واسترجاع المعلومات المتكاملة نظام تطبيقها محدود -
.افتقاد المرونة -
.عدم القدرة على إعطاء تفسيرات متعمقة -
.صعوبات التحقق والتثبت -
.التعلم الضئيل من الخبرة -
24الصفحة
:الثالثالفصل
وطرق تمثيل XMLة لغ
المعارف
في هذا الفصل:
.XMLلغة الترميز الموسعة ‹
.XMLطرق تمثيل المعارف باستخدام ‹
.للنظم الخبيرة معايير تمثيل المعارفأشهر ‹
.RULEMLمعيار ‹
25الصفحة
:وطرق تمثيل المعارف XMLالثالث: لغة الفصل
يقة لذلك من المهم أن يتم االهتمام بالطريقاس مستوى أداء النظام الخبير بداللة حجم ونوعية قاعدة المعرفة التي يحتويها،
المستخدمة XMLالتي يتم بها تمثيل المعرفة،، حيث سيبنى عليها كل أداء النظام الخبير، سنتحدث في هذا الفصل عن لغة
في تمثيل المعارف، باإلضافة إلى الحديث عن أهم الطرق المستخدمة في النظم الخبير لتمثيل المعارف.
:XMLلغة الترميز الموسعة 3-1
، هي ليست لغة برمجة XMLالتي يرمز لها باالختصار eXtensible Markup Languageالموسعة الترميز لغة
تستخدم لتحديد الكيفية التي يتم بها عرض التي HTMLلغة البيانات بخالف وإنما لغة تستخدم في وصف وتخزين وتنظيم
أي 1960والتي ظهرت ألول مرة في عام SGMLهما ينحدر عن اللغة األم المسماة بـ البيانات على المتصفح، ولكن كلي
.[10] قبل ظهور الويب بكثير، لتساعد على ترميز وتنسيق المستندات والرسائل اإللكترونية المتبادلة عبر اإلنترنت
:XMLمميزات لغة 3-1-1
وهي وسومها ذات األقواس المثلثة HTMLبالصفات نفسها التي تتميز بها عائلة لغات الترميز كـ XMLتتميز لغة
، باإلضافة إلى أنها ال TreeLike Structure> <، وبهيكليتها الشبيهة بالشجرة
تحتوي على أوامر أو عمليات، ووظيفتها تنحصر على ترميز النصوص برموز
البرامج المخصصة للتعامل معها. معينة تفهمها جميع المتصفحات أو
وهي XML tagsلوصف البيانات باستخدام ما يسمى XMLوقد صممت لغة
عبارة عن جمل ليست معرفة مسبقا أي يقع على عاتق المبرمج تعريف طريقة تمثيل
هذه الوسوم ومن هنا تظهر المرونة التي تتمتع بها.
Document Typeطريقة لوصف البيانات تدعى XMLتستخدم
Definition(DTD) وهي صممت لتصف نفسها بنفسها، وقد ظهر منها لغةXHTML البديلة عن الـHTML والتي
مخصص تم توصيفه ونشره عالميا. DTDتتكون من
تظهر في الصورة في األسفل شجرة العائلة ألهم لغات الترميز.
[25] شجرة أهم لغات الترميز (1-3)الشكل
في الويب: XMLوظائف 3-1-2
26الصفحة
في الويب بشكل واضح حيث تم االستفادة منها لنقل البيانات بسرعة، وبشكل مرن خاصة بين XMLظهرت أهمية
تصنيفات: 3في مجال الويب إلى XMLيمكن تصنيف وظائف لغة و ،Web Applicationsتطبيقات الويب
ضمن موقع واحد، وهذه االستفادة تكون على وجهين غالبا: XMLاالستفادة من لغة -1
لتخزين البيانات، أو تحويل XML إما عن طريق استخدام مستندات :كقاعدة بيانات XML استخدام ملفات الـ -
مجموعة من المستندات إلى قواعد بيانات عن طريق استخدام إحدى التطبيقات، وكلتاهما يمكن أن تكون قواعد
. الئقيةبيانات ع
وغيرها. Text Files أو CSS إلى ملفات أخرى مثل XML تحويل ملفات -
عند تبادل البيانات بين موقعين فأكثر: XMLاالستفادة من لغة -2
أخرى . XMLأو ملفات RSSإما عن طريق ملفات XMLوالذي يتم عبر لغة
عند تبادل البيانات بين األجهزة والتطبيقات المختلفة مثل الموبايل والكومبيوتر، أو بين XMLاالستفادة من لغة -3
.[7] تطبيق على الموبايل وآخر على الويب
XML[25] مجاالت استخدام لغة (2-3)الشكل
:XMLالبنية الهيكلية لملف 3-1-3
، وهي إحدى أشهر أشكال تنظيم البيانات Treelike Structureتدعى الهيكلية الشبيهة بالشجرة XMLإن هيكلية ملف
الذي يحمل جميع Rootمتفرعة عن بعضها البعض، تبدأ من الجذر Nodesفي الحاسوب، حيث تخزن البيانات في وحدات
، treelike structureالتي ال تتفرع عنها أي وحدات، ومن هنا جاء االسم Leavesالوحدات األخرى، وتنتهي باألوراق
ير أن الفرق بين الشجرة الحقيقية وشجرة البيانات هو أن جذر الشجرة الحقيقية يكون في األسفل بينما تكون أوراقها في غ
األعلى، لكن جذر شجرة البيانات يكون في األعلى وتكون األوراق في األسفل.
ة نفس االسم، فالوصول إلى الوحدات ولكل وحدة من هذه الوحدات اسما تعرف به، وال يوجد حرج من أن تحمل أكثر من وحد
ال يعتمد على اسمها فقط، بل يعتمد على المسار الذي تعبره لتصل إليها.
وشجرة البيانات تنتهج نهجا وراثيا ، وتحكمها مجموعة من القواعد، هذه القواعد هي:
27الصفحة
هو الوحدة الوحيدة التي لكل شجرة جذر واحد فقط، ال يمكن للشجرة أن يكون لها أكثر من جذر وال أقل، والجذر -
ليس لها أب تتفرع عنه.
لهذه Parentلها، وتصبح هذه الوحدة بمثابة أب Childrensكل الوحدات التي تتفرع عن وحدة ما تصبح أبناء -
الوحدات.
للوحدة األب. descendants أبناء األبناء يصبحون أحفادا -
للوحدة االبن. ancestorsآباء اآلباء يعرفون باألجداد أو األسالف -
.Siblingsالوحدات التي تتفرع عن األب نفسه تسمى باإلخوة -
يبدأ بالسطر: XMLلنأخذ المثال التالي في األسفل، نالحظ أن ملف الـ XMLولتوضيح فكرة الشجرة، وكيفية كتابة كود
<?xml version="1.0" encoding="utf-8" ?>
ومن ثم تبدأ عملية تشكيل الشجرة: ،XMLوهو يعني أن هذا الملف مكتوب بصيغة
XMLمثال عن كود (1-3)الكود
:XMLطرق تمثيل المعارف باستخدام 3-2
أشهر طريقة لتمثيل المعارف، وذلك لما تتميز من قوة ومرونة في التعامل، وبنيتها الشجرية التي XMLتعتبر لغة
تجعل من عملية تمثيل المعارف أمر سهل، وغالبا ما يتم وضع معيار يحدد طريقة تمثيل المعرفة للنظام الخبير قيد البحث.
:XMLوصف المعايير لملفات 3-2-1
وهي الطريقة Document Type Definitions (DTDs)المراد ضمن ملفات XMLيتم توضيح معيار الـ [2]
والتي هي عبارة عن لغة لكتابة ملفات مرافقة XSDاألشهر ولكن األقدم، بينما اآلن فإن وصف المعيار يتم من خالل لغة
قواعد لها، وهي الملفات نوعها ونوع بياناتها ووضع شروط و بتحديد XML ، نعرف بواسطتها عناصر الـ XML لملفات
التي كانت تستخدم سابقا لهذا الهدف. DTD البديلة عن ملفات
XML example <?xml version="1.0" encoding="utf-8" ?> <A attribute_name="value"> <B1 parent="A" > </B1> <B2 parent="A"> <C1> <D1></D1> <D2>Tareq</D2> </C1> <C2>XML</C2> </B2> </A>
28الصفحة
مهمة للغاية وظهرت الحاجة إليها لما تؤمنه من مرونة وفوائد عديدة، خاصة في XMLإن عملية تقييس المعايير باستخدام
مجاالت الويب وتمثيل المعارف، وفي مجال النظم الخبيرة ظهرت فائدة تقييس المعايير لقواعد المعارف بسكل خاص، حين
ت عملية بيقات الخاصة بها، حيث أمنانتشر مفهوم المعرفة في النظم الخبيرة وفي تطبيقات الذكاء الصنعي، وانتشرت التط
تقييس طرق تمثيل المعارف توحيد عملية كتابة المعارف بصيغة موحدة تجعل إمكانية تبادل هذه المعرفة أمرا ممكنا، أهم
هذه الفوائد التي أمنتها تقييس المعايير لتمثيل المعارف:
جعل طريقة التخزين رسمية ومتعتمدة على قواعد ثابتة. -
تبادل المعرفة بين تطبيقات الذكاء الصنعي المتعددة وبين اللغات الخاصة بالذكاء الصنعي.إمكانية -
إمكانية التمازج والدمج بين قواعد المعرفة، وقواعد البيانات، ونظم التطبيقات، وغيرها.. -
[2] طريقة تمثيل المعايير (3-3)الشكل
، حيث يعتبر valid ، وصالحة Well-Formedجيدة التكوين تحكمها أمرين اثنين وهي أن تكونXML إن وثيقة معيار
التعريف الخاص الموافق له والموصوف ضمن ملف XMLحقق عملية المطابقة مع تعريف الـ صالحا إذا XMLملف
جيدة التكوين فإنها يجب أن تحقق مجموعة شروط XML (، بينما تكون وثائقDTD)ملف الـ بهيكلية الوثائق المستخدمة
هي:
بالشكل التالي: XML Decleration أو XML يجب أن تبدأ الوثيقة بإعالن -1<?xml version="1.0" encoding="utf-8" ?>
يحتوي جميع العناصر األخرى، أو بمعنى آخر يجب أن يتواجد العنصر root elementيوجد عنصر جذر -2
األساسي الذي يقوم بوصف هيكلية الوثيقة.
، حيث يجب overlapال تسمح للمستخدم بتضمين عناصر)وسوم( داخل عناصر أخرى بشكل متداخل XML لغة -3
إقفال عالمات كل عنصر قبل البدء بعنصر آخر، وإذا تم فتح وسم بداخل وسم آخر يتوجب إغالق الوسم الذي في
الداخل قبل إغالق الوسم الخارجي.
، HTMLوXML إحدى الفروقات النحوية الهامة بين يتوجب أن يكون لكل وسم فتح وسم إغالق، وهذه هي -4
.</br>و <img>نستطيع فتح وسم بدون إغالقه مثل وسوم HTMLففي
فقط للبدأ بوسوم جديدة أو مكونات. &و >يجب أن تستخدم الرموز -5
.XMLمكونات لمراجع مسبقة التعريف ضمن ملف 5يمكن تعريف -6
.</يجب أن يحتوي كل وسم إغالق على الرمز -7
29الصفحة
:DTDsتوصيف المعيار باستخدام 3-2-2
يتم وفق طريقة محددة، DTDيتضمن وصف المعيار المراد وضعه، إن كتابة ملف الـ DTDكما قلنا فإن ملف الـ [2]
ومعتمدة على مجموعة من الوسوم، على سبيل المثال نريد توصيف العالقة:
address (name, street, town)
DTDتوصيف عالقة باستخدام (2-3)الكود
بحيث تصبح أكثر مرونة:يمكن تفصيل العالقة بشكل أكثر،
DTDباستخدام 2توصيف عالقة (3-3)الكود
( والذي تعني االختيار بين مجموعة من الوسوم، أي اختيار واحدة من الوسوم التي تكون |أيضا يمكن استخدام المعامل )
موجودة بين هذا المعامل:
DTDفي توصيف الـ ( |المعامل ) استخدام( 4-3)الكود
DTDs code
<!ELEMENT address (name, street, town)> <!ELEMENT name (#PCDATA)> <!ELEMENT street (#PCDATA)> <!ELEMENT town (#PCDATA)>
DTDs code <!ELEMENT address (name, place)> <!ELEMENT place (street, town)> <!ELEMENT name (#PCDATA)> <!ELEMENT street (#PCDATA)> <!ELEMENT town (#PCDATA)>
DTDs code
<!ELEMENT address (name, (street|box), town)> <!ELEMENT name (#PCDATA) > <!ELEMENT street (#PCDATA) > <!ELEMENT box (#PCDATA) > <!ELEMENT town (#PCDATA) >
address
PCDATA
PCDATA PCDATA
name
street town
place
address
PCDATA PCDATA PCDATA
name street town
PCDATA
box
address
PCDATA PCDATA PCDATA
name street town
30الصفحة
address
PCDATA PCDATA PCDATA
name street town
PCDATA
phone
PCDATA
fax
( والتي تحدد عدد المرات التي يمكن أن يتواجد بها وسم من الوسوم، حيث يقوم *( والمعامل ) +يمكن استخدام المعامل )
( يعني أن الوسم يمكن أن ال يتواجد *( بتحديد أن الوسم يمكن أن يتواجد مرة واحدة أو أكثر، بينما المعامل ) +) المعامل
:ويمكن أن يتواجد مرة أو أكثر
DTDفي توصيف الـ ( * ) والمعامل( + ) استخدام المعامل (5-3)الكود
( الذي يعني أن هذا الوسم يمكن أن يوجد مرة واحدة، ومن الممكن أن ال يتواجد. ?أيضا يمكن استخدام المعامل )
DTDفي توصيف الـ ( ؟ ) استخدام المعامل (6-3)الكود
DTDs code <!ELEMENT address (name, street, town, phone+, fax*)> <!ELEMENT name (#PCDATA)> <!ELEMENT street (#PCDATA)> <!ELEMENT town (#PCDATA)> <!ELEMENT phone (#PCDATA)> <!ELEMENT fax (#PCDATA)>
DTDs code
<!ELEMENT address (name, street, town, country?) > <!ELEMENT name (#PCDATA) > <!ELEMENT street (#PCDATA) > <!ELEMENT town (#PCDATA) > <!ELEMENT country (#PCDATA) >
addres
s
PCDATA PCDATA PCDATA
name street town
PCDATA
country
31الصفحة
أشهر معايير تمثيل المعارف للنظم الخبيرة: 3-3
غالب تطبيقات النظم الخبيرة تستخدم البنية الشجرية في تمثيل المعارف لذلك هناك ارتباط وثيق بين قاعدة المعارف وبين
XMLيتم تمثيلها باستخدام ، حيثXML عبر ما يطلق عليه اسم معاييرXML سنقوم هنا بالتحدث عن أشهر المعايير ،
ثم سنتحدث عن طرق تمثيل المعارف ،XMLباستخدام الموضوعة لتمثيل المعارف سواء في النظم الخبيرة أو في الويب
.PROLOG [2]باستخدام
:هي XMLإن أشهر معايير تمثيل المعارف باستخدام
.HornMLمعيار -
.RuleMLمعيار -
.SHOEمعيار -
XML[2] أهم المعايير المتفرعة عن )4-3(الشكل
:RuleMLمعيار 3-3-1
هي معيار عالمي للغة ترميزية طورت من أجل تمثيل ونشر ومشاركة المعرفة والقواعد عبر شبكة الويب، [2] [11]
باستخدام لغة backward (top-down)والخلفي forward (bottom-up)وتم فيها تمثيل كال من قواعد البحث األمامي
XML من أجل تخصيم ،deduction وإعادة كتابة المهمات التحويلية االستنتاجية، وقد بنيت اعتمادا على مجموعة من لغات
.XML, RDF, XSLT, and OWLتمثيل القواعد وهي:
تم وضعها من قبل مبادرة مكونة من مجموعة مفتوحة من األعضاء
والجماعات من مختلف القطاعات الصناعية واألكاديمية، وقد كانت مهمة
هذه المبادرة بشكل أساسي وضع تقييسات وأنظمة معيارية للغات
الترميزية القانونية المستخدمة في تمثيل القواعد للشبكات والويب باستخدام
.XMLالـ
32الصفحة
:RuleMLتاريخ معيار 3-3-1-1
Harold Boley, Benjaminوقد كان أشهر هؤالء المطورين: 2000في عام RuleMLظهر توصيف
Grosof, and Michael Sintek سنة التي مضت، شارك في 14، وتم إجراء تعديالت وتطويرات عليها على مدى الـ
المطورين.هذه التعديالت المؤسسين نفسهم ومجموعة أخرى من
:[9] أشهر هذه المحركاتمنذ تقييسه إلى األن، في كثير من محركات النظم الخبيرة RuleMLتم استخدام معيار
- OO jDREW: Naf Hornlog RuleML engine
- Prova: Reaction RuleML engine
- Drools: Reaction RuleML engine
- DR-DEVICE: Defeasible logic RuleML engine
- NxBRE: Naf Datalog RuleML engine
- VampirePrime: FOL reasoner
بمواكبته آلخر التطورات بشكل كامل، حيث يتم إجراء مؤتمرات واجتماعات دورية للمسؤولين عن RuleMLيتميز معيار
، حيث يتم مراجعة المعيار، وتنقيحه، والتعديل عليه بما يتناسب مع آخر التطورات، 2200ن عام المعيار، وذلك ابتداءا م
: [9] إلى اآلن 2002أهم المؤتمرات التي عقدت منذ
- RuleML-2013: Seventh International Web Rule Symposium.
- RuleML-2012: Sixth International Web Rule Symposium.
- RuleML-2011: Fifth International Web Rule Symposium.
- RuleML-2010: Fourth International Web Rule Symposium.
- RuleML-2009: Third International Web Rule Symposium.
- RuleML-2008: Second International Web Rule Symposium.
- RuleML-2007: First International Web Rule Symposium.
- RuleML-2006: Second International Conference on Rules for the Web.
- RuleML-2005: First International Conference on Rules for the Semantic Web.
- RuleML-2004: Third International Workshop on Rules for the Semantic Web.
- RuleML-2003: Second International Workshop on Rules for the Semantic Web
- RuleML-2002: First International Workshop on Rule Markup Languages.
33الصفحة
:RuleML 0.8لمعيار DTDsملف 3-3-1-2
RuleML 0.8 .[11]يظهر في األسفل توصيف نسخة القواعد
.RuleML0.8لمعيار DTDملف الـ (7-3)الكود
RuleML 0.8 DTD
<!-- SCLP RuleML DTD, Monolith Uncommented version v13 of 2001-12 --> <!ENTITY % URI "CDATA"> <!ENTITY % bool "yes|no"> <!ELEMENT rulebase ( (_rbaselab, (imp | fact | mutex | sens | effe)*) | (imp | fact | mutex | sens | effe)+, _rbaselab?) )> <!ATTLIST rulebase direction (forward | backward | bidirectional) "bidirectional"> <!ELEMENT _rbaselab (ind | cterm)> <!ELEMENT imp ( (_head, ((_body,_rlab?) | (_rlab,_body?))? ) | (_body, ((_head,_rlab?) | (_rlab,_head))) | (_rlab,((_head,_body?) | (_body,_head))) )> <!ELEMENT _rlab (ind | cterm) > <!ELEMENT fact ( (_rlab,_head) | (_head,_rlab?) )> <!ELEMENT _head (clit | atom | andh)> <!ELEMENT _body (fclit | atom | clit | flit | andb | orb | and)> <!ELEMENT andb ((fclit | atom | clit | flit | andb | orb)*)> <!ELEMENT orb ((fclit | atom | clit | flit | andb | orb), (fclit | atom | clit | flit | andb | orb)+)> <!ELEMENT andh ((clit | atom | andh), (clit | atom | andh)+)> <!ELEMENT and ((atom | and)*)> <!ELEMENT clit ((_opr, (ind | var | cterm)*) | ((ind|var|cterm)+, _opr))> <!ATTLIST clit cneg (%bool;) #IMPLIED> <!ELEMENT fclit ((_opr, (ind | var | cterm)*) | ((ind|var|cterm)+, _opr))> <!ATTLIST fclit cneg (%bool;) #IMPLIED> <!ATTLIST fclit fneg (%bool;) #IMPLIED> <!ELEMENT flit ((_opr, (ind | var | cterm)*) | ((ind|var|cterm)+, _opr))> <!ATTLIST flit fneg (%bool;) #IMPLIED> <!ELEMENT atom ((_opr, (ind | var | cterm)*) | ((ind|var|cterm)+, _opr))> <!ELEMENT _opr (rel)> <!ELEMENT rel (#PCDATA)> <!ATTLIST rel href %URI; #IMPLIED> <!ELEMENT var (#PCDATA)> <!ELEMENT ind (#PCDATA)> <!ATTLIST ind href %URI; #IMPLIED> <!ELEMENT cterm ((_opc, (ind|var|cterm)*) | ((ind|var|cterm)+, _opc))> <!ELEMENT _opc (ctor)> <!ELEMENT ctor (#PCDATA)> <!ATTLIST ctor href %URI; #IMPLIED>
34الصفحة
:RuleML أمثلة عن معيار 3-3-1-3
، مع RuleMLسيتم هنا عرض بعض األمثلة لمجموعة من العبارات القواعدية، وطريقة تمثيلها باستخدام معيار [3] [11]
عرض الشجرة الخاصة بها، األمثلة ستكون باللغة اإلنكليزية لسهولة تمثيلها مع المعيار.
:1مثال
"Peter Miller's spending has been min 5000 euro in the previous year."
RuleMLمثال عن توصيف حقيقة باستخدام (8-3)الكود
:2مثال
"A customer is premium if their spending has been min 5000 euro in the previous year."
RuleMLمثال عن توصيف قاعدة باستخدام (9-3)الكود
RuleML example
<Atom> <Rel>spending</Rel> <Ind>Peter Miller</Ind> <Ind>min 5000 euro</Ind> <Ind>previous year</Ind> </Atom>
RuleML example
<Implies> <head> <Atom> <Rel>premium</Rel> <Var>customer</Var> </Atom> </head> <body> <Atom> <Rel>spending</Rel> <Var>customer</Var> <Ind>min 5000 euro</Ind> <Ind>previous year</Ind> </Atom> </body> </Implies>
35الصفحة
:3مثال
"The discount for a customer buying a product is 7.5 percent if the customer is premium and the
product is luxury"
RuleMLمثال عن توصيف قاعدة باستخدام (10-3)الكود
RuleML example (Rules) <Implies>
<head>
<Atom>
<Rel>discount</Rel>
<Var>customer</Var>
<Var>product</Var>
<Ind>7.5 percent</Ind>
</Atom>
</head>
<body>
<And>
<Atom>
<Rel>premium</Rel>
<Var>customer</Var>
</Atom>
<Atom>
<Rel>luxury</Rel>
<Var>product</Var>
</Atom>
</And>
</body>
</Implies>
RuleML example (Rules) <Atom>
<Rel>luxury</Rel>
<Ind>Porsche</Ind>
</Atom>
<Atom>
<Rel>discount</Rel>
<Ind>Peter Miller</Ind>
<Ind>Porsche</Ind>
<Ind>7.5 percent</Ind>
</Atom>
36الصفحة
:RuleMLمكونات المعيار 3-3-1-4
، حيث يتألف من مجموعة من المكونات وليس فقط لتمثيل معارف النظم الخبيرة ألشياء متعددة RuleMLيستخدم معيار
:هذه المكونات هي، متعددةالمستخدمة في تطبيقات
- Reaction Rules.
- TransformationRules
- Derivation Rules
- Integrity Constraints
.RuleMLتفريعات ومكونات معيار 7-3ويظهر الشكل
RuleML[2] مكونات المعيار (5-3)الشكل
:HornMLمعيار 3-3-2
إال أنه يستخدم RuleMLوهو معيار مشابه لمعيار Horn Logic Markup Languagesتعتبر اختصارا لـ [2]
للداللة على قاعدة ما. Structالـ
:RuleMLلمعيار DTDsملف 3-3-2-1
:RuleMLلمعيار الـ DTDيظهر في األسفل توصيف نسخة الـ
.HornMLلعيار DTDملف الـ (11-3)الكود
HornML DTD
<!ELEMENT kb (hn*) > <!ELEMENT hn (relationship, relationship*) > <!ELEMENT relationship (relator, (ind | var | struc)*) > <!ELEMENT struc (constructor, (ind | var | struc)*) > <!ELEMENT relator (#PCDATA) > <!ELEMENT constructor (#PCDATA) > <!ELEMENT ind (#PCDATA) > <!ELEMENT var (#PCDATA) >
37الصفحة
:HornMLأمثلة عن معيار 3-3-2-2
:HornMLسيتم ذكر بعض األمثلة والجمل، مع طريقة تمثيلها باستخدام المعيار
undersea-connection(britain,france) توصيفها:على فرض لدينا الجملة التالية ونريد :1مثال
HornMLمثال عن توصيف حقيقة باستخدام (12-3)الكود
travel(john,channel-tunnel) على فرض لدينا الجملة التالية ونريد توصيفها: :2مثال
HornMLمثال عن توصيف قاعدة باستخدام (13-3)الكود
على فرض لدينا القاعدة التالية ونريد توصيفها: :3ثال
travel(Someone,channel-tunnel) :- carry(eurostar,Someone).
HornMLمثال عن توصيف قاعدة باستخدام (14-3)الكود
HornML example
<struc> <constructor>undersea-connection</constructor> <ind>britain</ind> <ind>france</ind> </struc>
HornML example (Facts)
<hn>
<relationship>
<relator>travel</relator>
<ind>john</ind>
<ind>channel-tunnel</ind>
</relationship>
</hn>
HornML example (Rules)
<hn>
<relationship>
<relator>travel</relator>
<var>someone</var>
<ind>channel-tunnel</ind>
</relationship>
<relationship>
<relator>carry</relator>
<ind>eurostar</ind>
<var>someone</var>
</relationship>
</hn>
38الصفحة
مجموعة من الخواص لوسم محدد، وهذا ما يساعد على توسيع القواعد المنطقية، من إعطاء HornMLيمكننا معيار
وكمثال على هذه الحالة:
HornMLاستخدام خصائص الوسوم في (15-3)الكود
محدد بحيث يمكن استخدام هذه القاعدة في مكان آخر IDمن تعريف قاعدة ما وإعطائها HornMLأيضا يمكننا معيار
، تفيد هذه القاعدة كثيرا في حال تشعب القواعد، حيث تعيكل قاعدة المعرف بشكل قوي، IDREFولك باستخدام الكلمة
وفعال بطريقة مشابهة لهيكلة التوابع في لغات البرمجة، وكمثال على هذه الحالة:
HornMLفي IDREFو IDاستخدام (16-3)الكود
:SHOEمعيار 3-3-3وقد تم تمثيله بالبداية باستخدام (Simple HTML Ontology Extensions) يعتبر اختصارا للجملة [𝟐] [𝟏𝟐]
HTML ثم تم نقله إلى صيغةXML يتميز بمرونته وقوته، وتعتبر لغته قريبة جدا من لغة المحكية، حيث يتم تمثيل القواعد ،
، وكمثال عليه:If-Thenبوسوم
HornML example (Rules)
<relator arity="2">travel</relator>
HornML example (ID, IDREF)
<hn id="john-channel"> <relationship> <relator>travel</relator> <ind>john</ind> <ind>channel-tunnel</ind> </relationship> </hn> <hn> <relationship> <relator>belief</relator> <ind>mary</ind> <prop idref="john-channel"/> </relationship> </hn>
39الصفحة
.SHOEمثال عن قاعدة معرفة باستخدام معيار (17-3)الكود
:PROLOGتمثيل المعارف باستخدام 3-3-4برولوغ هي لغة برمجة تعتمد على مبادئ المنطق، وهذا ما يفسر اسمها، تستخدم في األبحاث، وفي تطبيقات [2]
الفترة األخيرة استخدامها تجاريا.الذكاء الصنعي وال سيما النظم الخبيرة، وقد نزايد في
يقوم Interpreterوي على مفسر تتكون برولوغ من قاعدة معطيات ستاتيكية نصرح عنها بدال من الئحة التعليمات، وتحت
بتحليل الحقائق، وتنفيذ القواعد.
PROLOG[25] بيئة عمل لغة (6-3)الشكل
:إن تمثيل القواعد باستخدام برولوغ بسيط :1مثال
SHOE example
<DEF-INFERENCE DESCRIPTION="travel(?someone,http://www.eurotunnel.com/) if carry(http://www.eurostar.com/,?someone)"> <INF-IF> <RELATION NAME="carry"> <ARG POS="1" VALUE="http://www.eurostar.com/"> <ARG POS="2" VALUE="someone" USAGE="VAR"> </RELATION> </INF-IF> <INF-THEN> <RELATION NAME="travel"> <ARG POS="1" VALUE="someone" USAGE="VAR"> <ARG POS="2" VALUE="http://www.eurotunnel.com/"> </RELATION> </INF-THEN> </DEF-INFERENCE>
40الصفحة
PROLOGمثال عن حقيقة في لغة (18-3)الكود
:2مثال
PROLOGمثال عن قاعدة معرفة باستخدام (19-3)الكود
PROLOG example
address( name("Xaver M. Linde"), box("2001"), town("10555 Berlin") )
PROLOG example
% start fact base for addresses address( name("Me2XML"), place( street("96 Hyper Road"), town("Boston") ) ). address( name("RDF4All"), place( street("2001 Broadway"), town("New York") ) ). address( name("XML4You"), place( street("96 Hyper Road"), town("Boston") ) ). % end fact base for addresses
address
Xaver M. Linde 2001 10555 Berlin
name box town
41الصفحة
:الرابعالفصل
مكتبات النظم الخبيرة
في هذا الفصل:
.NXBREمكتبة ‹
.NXBREأنواع محركات االستدالل لمكتبة ‹
.NXBREأنواع المعارف المدعومة من قبل ‹
بالنظم الخبيرة.مكتبات أخرى متخصصة ‹
42الصفحة
مكتبات النظم الخبيرة: - الرابعالفصل
إال أن قسم منها تم Javaتوجد العديد من المكتبات التي تؤمن محركات استداللية للنظم الخبيرة، وأشهرها تلك المكتوبة بلغة
المحركات تعتبر مفتوحة بعض هذه، NE.باإلضافة لبعض المحركات المخصصة لبيئة NET.إنشاء نسخة منه ليعمل على بيئة
المصدر بالكامل ويمكن رؤية الكود المصدري للمكتبة، وبعضها اآلخر مفتوحة لالستخدام، حيث يمكن استخدامها ولكن من دون
رؤية الكود المصدري، ويوجد أيضا مجموعة مكتبات تجارية يجب شراؤها من أجل استخدامها.
NET.المستخدمة لبناء نظم خبيرة في بيئة سيتم في هذا البحث الحديث عن غالب المكتبات
:NxBREمكتبة 4-1
هي أول مكتبة مفتوحة المصدر متخصصة في بناء محركات االستدالل والقواعد العملية للنظم الخبيرة، NxBREمكتبة [𝟏𝟒]
Javaالمبرمجة باستخدام لغة JxBRE، وهي عبارة عن نسخة من مكتبة 2000وظهرت في عام NET.مخصصة لمنصة
.Sloan Seamanمن قبل المبرمج
من قبل المبرمج NET.أو باألحرى نقلها إلى NxBREتمت برمجة مكتبة
تتميز بشكل رئيسي ببساطتها وبسهولة David DossotKديفيد دوسوت
توسيعها.
/http://sourceforge.net/projects/nxbre يمكن الحصول على المكتبة من الرابط:
:، وهيتطلباتوجود بعض الم Visual Studioيتطلب عمل المكتبة على بيئة
أو اإلصدارات األحدث. Microsoft .NET Framework 1.1اإلصدار Net.حزمة بيئة الـ ‹
.http://www.nunit.orgأو اإلصدارات األحدث، يمكن الحصول عليها من NUnit-2.2حزمة ‹
، جاريةتطبيقات تالالتي تسمح للمستخدمين بشكل قانوني استخدام المكتبة في LGPLترخيص بمصدرة NxBREتعتبر مكتبة
الية:في التطبيقات الت NxBREاستخدام مكتبة يقول المسؤولون عن المكتبة أنه يمكنو
في التطبيقات التي تحوي على قاعدة من القواعد المعقدة والتي ال يمكن تمثيلها بأسلوب واحد ومهيكل، بل يتطلب التعبير ‹
عنه تعابير منطقية حرة.
عادة ترجمة أي وقت دون الحاجة إل في التطبيقات التي تتغير بها القواعد باستمرار، حيث تتيح إمكانية إضافة القواعد في ‹
القواعد من جديد.
مكونات المكتبة: 4-1-1
والتي تؤمن لها سهولة عدة تمثيالت للقواعد، نوعان من محركات النظم الخبيرة، وكالهما يستخدم NxBREتقدم مكتبة
ومرونة في التعديل واإلضافة والحذف، محركات االستدالل هي:
.xBRE: يتعامل مع قاعدة معارف من نوع Flow Engineمحرك من نوع ‹
.HRFأو Visioأو RuleMLمعارف من نوع قواعد: يتعامل مع Inference Engineمحرك من نوع ‹
43الصفحة
شرط يتبعه فعل أو مجموعة من األفعال التي ستنفذ في بعبارات تمثل بشكل عام NxBREلمكتبة المعرفةقواعد يتم تمثيل
على هذه القواعد:الشرط، وكأمثلة حال تحقق هذا
تم جلبها من الملف الخارجي تدعى يمكان وجود القواعد التي بنية عمل المكتبة، حيث يسمىالمخطط في األسفل يظهر
Context من أجل محركFlow Engine وتدعىWorking Memory من أجل محركInference Engine.
إلى Referencesتحتوي على مجموعة من القواعد والحقائق ومراجع Working Memoryو الـ Contextالـ
األغراض الموجودة في قاعدة المعارف.
NxBRE[14] البنية الهيكلية لمكتبة (1-4)الشكل
: Flow Engineالمحركات من نوع 4-1-2
من أجل تمثيل المعارف والقواعد، وتدعى (if/then/else, while, foreach)عبارة عن محرك يعتمد على قواعد
xbr.بالحقة XML، ويتم تمثيل القواعد فيه على هيئة ملفات control process flowهذه الطريقة عمليات تدفق التحكم
.JxBRE v1.7.1المكتبة األم نفس التوصيف التي تستخدمه والتي هي عبارة عن
مكن فإنه من الم XMLملفات قواعد المعرفة، ولكن بما أنها إلنشاء أو برنامج مخصص أي وسيلة NxBREال تؤمن مكتبة
(.xbre.الحقة )يتم حفظها بأي محرر نصوص إلنشاء القاعدة و استخدام
كما يلي: Flow Engineيتم إنشاء محرك
44الصفحة
Flow engineمثال عن محرك من (1-4)الكود
نوضح بهذا المثال: xbreكمثال على ملفات
xbreمثال عن ملف قواعد (2-4)الكود
:Inference Engineمحرك االستدالل 4-1-3
من أجل عمليات االستدالل، ويدعم كال من الحقائق Forward chainingمحرك استداللي، يتبع خوارزمية نعبارة ع
Facts والقواعد ، Rules (Implications) واالستعالمات ،Query وهي عبارة عن توصيفات محددة في ما يسمى ،
(RuleML Naf Datalog sub-language.)
Flow Engine example
//Step 1: include NxBRE namespace using NxBRE.FlowEngine; using NxBRE.FlowEngine.IO; using NxBRE.InferenceEngine.Rules; //Step 2: Create Flow Engine IFlowEngine bre = new BREImpl( ); //Step 3: Load Rules Base bre.Init(new XBusinessRulesFileDriver("ruleFilePath.xbre")); //Step 4: Assert object bre.RuleContext.SetObject("TestObject",new object()); //Step 5: proccess all Rules bre.Process( );
NxBRE Rule example
<Logic> <If> <And> <Equals leftId="CLIENT_RATING" rightId="PREMIUM_RATING" /> <Equals leftId="PRODUCT_TYPE" rightId="REGULAR_TYPE" /> </And> <Do> <Integer id="DISCOUNT_PERCENT" value="5" /> </Do> </If> </Logic>
45الصفحة
، وعمليات االستنتاج Mutual Exclusionوالـ Rule Priorityإضافة لذلك فإنه يدعم األولوية في القواعد
Precondition.
تم تصميمه بحيث يحقق الفصل التام بين المبرمج الذي يقوم ببرمجة تطبيق النظام الخبير، وبين الشخص الخبير الذي سيصمم
النظام الخبير. قاعدة العمل الذي سيعتمد عليها تطبيق
كما يلي: Inference Engineيتم إنشاء محرك استداللي
Inference engineمثال عن ملف محرك من نوع (3-4)الكود
يمكن أن تكون ملفات قواعد العمل التي يستخدمها هذا المحرك بعدة صيغ، وهي:
.RuleMLمكتوب باستخدام معيار XMLملف -
والتي تؤمن عملية MicroSoftالذي يأتي مع حزمة Visioوالتي يمكن كتابتها باستخدام برنامج VDXملفات -
إنشاء للقواعد والحقائق بشكل رسومي.
وهو اختصار Prologوهو عبارة عن ملف بنحو شيبه للغة البشر، يمكن قراءته بسهولة ويشبه صيغة HRFملف -
.human-readable formatللعبارة
والذي يعمل في الخلفية، قد ASP.NETوالذي يقوم بدور مشابه لكود الـ Binderيحتوي محرك االستدالل على يمكن أن
من أجل جلب البيانات من متغيرات Binderأو ملف خارجي، يستخدم هذا الـ Class إما صنف Binderيكون هذا الـ
ي ات قبل وضعها قيد العمل، وأيضا من أجل تثبيت التغييرات التالعمل، ويؤمن عملية تحليل التعابير المعقدة، ومعالجة البيان
تطرأ على قواعد العمل.
أيضا يؤمن مجموعة أحداث التي تحصل في عمليات المحرك، من إضافة جديدة للقواعد، أو التعديل على قواعد موجودة
مسبقا، أو عند الحصول على نتيجة ما.
NxBRE Inference Engine example
//Step 1: include NxBre namespace using NxBRE.InferenceEngine; using NxBRE.InferenceEngine.IO; using NxBRE.InferenceEngine.Rules; //Step 2: Create Inference Engine IInferenceEngine ie = new IEImpl(); //Step 3: Load Rules Base RuleML09NafDatalogAdapter Adapter = new RuleML09NafDatalogAdapter ("ruleFilePath.ruleml", FileAccess.Read); ie.LoadRuleBase(Adapter); //Step 4: Assert facts Fact fact = new Fact("your Fact"); ie.Assert(fact); //Step 5: proccess all Rules ie.Process();
46الصفحة
:RuleMLملفات القواعد على هيئة 4-1-3-1
كما يلي: RuleMLالقاعدة التالية يمكن كتابتها باستخدام
Rule #1: The discount for a customer buying a product
is 5.0 percent if the customer is premium and the
product is regular.
RuleMLمثال عن ملف قواعد (4-4)الكود
:Visioباستخدام VDXالقواعد على هيئة ملف 4-1-3-2
تتميز كتابة القواعد بهذه الطريقة بأنها طريقة بسيطة كونها رسومية إضافة إلى سهولة ربط القواعد مع بعضها
تعديلها وقراءتها.البعض، أيضا من الممكن ترتيب القواعد ضمن صفحات وهذا ما يسهل عملية
RuleML Rules example <Implies> <And> <Atom> <Rel>premium</Rel> <Var>customer</Var> </Atom> <Atom> <Rel>regular</Rel> <Var>product</Var> </Atom> </And> <Atom> <Rel>discount</Rel> <Var>customer</Var> <Var>product</Var> <Ind>5.0 percent</Ind> </Atom> </Implies>
47الصفحة
Microsoft[14] من Visio( برنامج 2-4الشكل )
يمكن أيضا دمج القواعد مع المخططات التي يؤمنها البرامج األخرى مما يجعل التصميم متكامال.
Visio[14] برنامج دمج التصميم مع القواعد في ( 3-4الشكل )
:HRFالقواعد على هيئة ملف 4-1-3-3
وتتميز بإمكانية قرائتها بسهولة بالنسبة لإلنسان، Prologحيث تكون هذه الملفات بطريقة مشابهة لكتابة قواعد
ويمكن كتابتها باستخدام أي محرر نصوص.
ل عليها يمكن كتابة القاعة التالية كما يلي:اكمث
Rule: The discount for a customer
buying a product is 5.0 percent if the
customer is premium and the product is
regular.
HRFمثال عن ملف قواعد (5-4)الكود
:Drools.NETمكتبة 4-2
Business Rules Engine (BRE)وتعتبر محرك للقواعد العملية 2007في عام Drools.NETأنشأت مكتبة [15]
، يستطيع المطورين بواسطتها برمجة Charles Forgyالموضوعة من قبل العالم شارلز فروغي Reteتعتمد على خوارزمية
NET.محركات بحث قوية متوافقة بشكل كامل مع بيئة
وهي معيار لتمثيل المعارف، JBossعلى قواعد Drools.Netتعتمد مكتبة
حيث تستفيد من كافة ميزات هذه القواعد.
يتطلب عمل المكتبة بعض األدوات التي يجب أن تتواجد على نظام التشغيل، هذه
األدوات هي:
أو اإلصدارات األحدث. Microsoft .NET Framework 2.0اإلصدار الثاني Net.حزمة بيئة الـ -
.http://www.ikvm.netوالتي يمكن الحصول عليها من الموقع IKVM 0.28.0.0حزمة -
HRF Rule
( premium{?customer}
& regular{?product} )
-> discount{?customer, ?product, 5.0 percent};
48الصفحة
.http://www.nunit.orgأو اإلصدارات األحدث، يمكن الحصول عليها من NUnit-2.2.6حزمة -
ها:بمجموعة من الميزات، أهم Drools.NETتتميز مكتبة
بشكل كامل وبشكل عالي األداء. Reteتطبيق خوارزمية -
.Predicate Constraintsتؤمن تعريف للمتحوالت والقيم المعادة والقيود المتوقعة -
.Conditional Elementsتحتوي عناصر شرطية -
.Evalومعامل المقارنة And, OR, Notتحتوي على المعامالت المنطقية -
وهي القواعد التي يتم إنشاؤها كنتيجة من القواعد. Temporal Rulesتؤمن وجود القواعد المرحلية -
تؤمن وجود القواعد الديناميكية وهي القواعد التي يتم إنشاؤها في وضع العمل من إضافة وحذف. -
تحتوي وضع لألحداث لعمليات الذاكرة التي يتم العمل عليها والبرنامج. -
توابع.تحتوي على ال -
.Global dataيمكن أن تحتوي على بيانات عامة -
.Decision Tablesتدعم جداول القرار -
NET.تدعم عدة لغات من لغات الـ -
تحتوي إمكانية إدارة البرنامج )جدول األعمال(: نتائج التصادم ومجموعات البرنامج ومجموعات التنشيط -
ومرشحات التنشيط.
تتضمن قيود للحقول. -
حقيقية مع إمكانية الحشر المنطقية.صيانة -
، وهي:التنقيح /التطويرباإلضافة لبعض المميزات الخاصة ب
للقواعد وذلك عن طريق وضع نقاط توقف debuggingعملية التنقيح Drools.NETتؤمن مكتبة -
breakpoints .في ملف القواعد
.Dynamic runtime compileتتميز بمترجم ديناميكي في وضع العمل -
.Precompiled Packages تؤمن عملية ضافة حزم برمجية قبل عملية الترجمة -
كما يلي: Drools.NETيتم إنشاء محرك نظام خبير باستخدام مكتبة
Drools.NET example //Step 1: include Drools.NET namespace using org.drools.dotnet.compiler; using org.drools.dotnet.rule; using org.drools.dotnet; //Step 2: Use following steps to create a RuleBase PackageBuilder builder = new PackageBuilder(); Stream stream = new FileStream("SimpleRulesExt.drl", FileMode.Open); builder.AddPackageFromDrl("MinimalDroolsForm.SimpleRules.drl", stream); Package pkg = builder.GetPackage(); RuleBase ruleBase = RuleBaseFactory.NewRuleBase(); ruleBase.AddPackage(pkg); //Step 3: Get an instance of WorkingMemory for the loaded RuleBase workingMemory = ruleBase.NewWorkingMemory(); //Step 4: Assert facts workingMemory.assertObject("Hello"); //Step 5: Fire all Rules workingMemory.fireAllRules();
49الصفحة
Drools.Netمثال عن محرك باستخدام (6-4)الكود
:Drools.Netكمثال عن ملف القواعد والحقائق لمكتبة
Drools.Netمثال عن قواعد المكتبة (7-4)الكود
:NetBPMمكتبة 4-3
المكتوبة بلغة JBPM (Java Business Process Management )هذه المكتبة عبارة عن النسخة من مكتبة [𝟏𝟔]
، وهي نسخة مجانية ومفتوحة المصدر لبناء وتتنفيذ وتطوير وإدارة JAVA جافا
أهم ميزات ، األخرى NET.األعمال التدفقية، وتتميز ببسطاتها وتوافقها مع تطبيقات
المكتبة:
.%100بشكل كامل NET.تدعم بيئة -
.%100مفتوحة المصدر بشكل كامل -
.Monoومنصة Microsoft .Netتعمل على منصتي -
عملية المعالجة وبشكل آلي مع المرونة. قوة في -
.Business Activity Monitoringتدعم عمليات مراقبة النشاطات -
workflowتطبق نموذج تدفقي نادر ويتميز بمرونته وبقابليته للتوسعة، يدعى هذا المحرك بـ NetPbmإن مكتبة
management system (WFMS).
Drools.NET Rules Base example package MinimalDroolsForm rule "LargeOrder" when ustOrder : CustomerRecord( Value > 50 ) then MinimalDroolsForm.Form1.debugResult("Large Order"); end rule "OldCustomer" when cust: CustomerRecord(DaysSinceLastOrder>90, Status!="Re-Active") then MinimalDroolsForm.Form1.debugResult("Old Customer"); cust.Status = "Re-Active"; modify(cust); end rule "Discount" when Disc : CustomerRecord( Value > 50, Status == "Re-Active" ) then MinimalDroolsForm.Form1.debugResult("Offer WELCOME BACK Special" ); end
50الصفحة
، حيث يتكون من حالة بداية Machine stateر إلى المخططات التدفقية وحاالت اآللة إن شكل هذا المحرك مشابه بشكل كبي
وحالة نهاية وبينهما مجموعة من الحاالت المتنوعة والحلقات.
، وكمثال على هذه XMLمن خالل ملف مكتوب بصيغة Processتكون مهمة المكتبة إنشاء مخططات لعملية سير العمليات
المخططات:
NetBpm[16] ( مثال عن قواعد مكتبة 4-4)الشكل
يمكن النظر إلى المكتبة وكأنها مزيج من مجموعة من المكونات، تتكامل مع بعضها لتشكل المكتبة، كل مكون من هذه المكونات
له واجهة واضحة المعالم.
م إدخالها من جة( وانتظار القواعد التي يتإن عملية تنفيذ ومعالجة القواعد يتم بشكل مستمر عن طريق التبديل بين التنفيذ )المعال
قبل المستخدمين الخارجيين، حيث يتم معالجة القواعد عند إضافتها مباشرة.
NetBpm Processالمكون االول يسمح للمستخدمين بإضافة توصيف قواعد المعالجة عبر التطبيق، حيث يتم استخدام ما يسمى
Definition Language (nPdl).
، أيضا يتميز بقابليته للقراءة من قبل اإلنسان، في هذا التوصيف يتم استخدام XMLإن هذا التوصيف بسيط وقوي الستخدامه
وهو عبارة عن ملف مضغوط يعتبر حاوي للعمليات process archiveعملية واحدة والتي تكون محتواة بداخل ما يسمى
ويحتوي كافة معلومات العملية.
اني، وهي المكون الثيتم إنشاءه أوتوماتيكيا ونشره داخل التطبيق، وبعد نشره تتفعل الواجهة الخاصة ب Process archivesملف
الواجهة الخاصة بإدخال القواعد من قبل المستخدمين الخارجيين وتدعى هذه المرحلة بمرحلة القراءة للعملية.
activitiesإلى النشاطات actorsبحساب الحالة التالية من العملية وإسناد المشغلين NetBpmعندما يتم إنجاز هذه المرحلة تبدأ
نجازها.والتي يجب أن يتم إ
بقدح هذه األحداث. NetBpmأحداث مهمة تحدث في خلف هذه المشاهد حين يتم إجراء الحسابات، حيث تقوم
51الصفحة
يمكن تمثيل هذه العمليات بالمخطط التالي:
NetBpm[16] عمليات المكتبة ( 5-4الشكل )
معه الكود الذي يمثله، إن المخطط في الجانب الي، وتظهر لنأخذ مثاال عن توصيف لمخطط تدفقي، يظهر هذا المخطط بالشكل الت
يظهر حالة البداية وهي النقطة المطموسة باللون األسود، ويظهر حالة النهاية، وهي الدائرة البيضاء التي تحتوي نقطة سوداء.
يتم في الكود تنفيذ حلقة تستمر إلى أن ينعدم شرط ما.
52الصفحة
NetBpmمثال عن قاعدة للمكتبة (8-4)الكود
:FlexRuleمكتبة 4-4
NetPBM workflow example
<process-definition> <name>Test NetBpm</name> <description>This is the simples process.</description> <start-state name="start"> <transition to="first activity state" /> </start-state> <end-state name="end" /> <attribute name="evaluation result" serializer= "NetBpm.Workflow.Delegation.Impl.Serializer.EvaluationSerializer, NetBpm" /> <attribute name="the text attrib" type="text" initial-value=":-)" /> <activity-state name="first activity state"> <description>this is the first state</description> <assignment handler= "NetBpm.Workflow.Delegation.Impl.Assignment .AssignmentExpressionResolver, NetBpm"> <parameter name="expression">processInitiator</parameter> </assignment> <transition to="the looping decision"> <action event="transition" handler="NetBpm.Example.Delegate.HelloWorldAction, NetBpm.Example" /> </transition> </activity-state> <decision name="the looping decision" handler="NetBpm.Workflow.Delegation.Impl.Decision.EvaluationDecision, NetBpm"> <parameter name="attribute">evaluation result</parameter> <transition name="disapprove" to="first activity state" /> <transition name="approve" to="end" /> </decision> </process-definition
53الصفحة
من المكتبات الحديثة والمتخصصة ببناء محركات قواعد العمل والنظم الخبيرة، وفي إدارة FlexRuleتعتبر مكتبة [𝟏𝟕]
العمليات التي تزود بها قواعد العمل و مكونات المحرك التدفقي، وتعتبر المكتبة موجهة للمصممين والمطورين اللذين يريدون
إنشاء تطبيقات مرنة وقوية.
سعة من محركات على مجموعة وا FlexRuleتحتوي مكتبة
االستدالل ومعالجة القواعد، تتعامل هذه المحركات مع القواعد
المنطقية وتعالجها بالطريقة نفسها التي يتعامل معها المطورين
والمصممين في إنشاء معايير للقواعد الخاصة بهم.
بالمحركات التالية: FlexRuleتزود مكتبة
.Procedural Execution Engineمحرك إجراءي ‹
.Inference Engineمحرك استداللي ‹
.Flow Engine( وهو if/Elseمحرك تدفقي يعتمد على بنية ) ‹
.Worflow Engineمحرك شبيه بالمخططات التدفقية ‹
.Validation Engineمحرك تأكيدي ‹
.Decision Tableمحرك يعتمد على جدول خاص باتخاذ القرارات ‹
تكون قابلة للتوسع، وبإمكان المستخدم للمكتبة من تطويها ووضعها ضمن تطبيقه الخاص. كل هذه المحركات تم بنائها بحيث
FlexRuleمحركات مكتبة ( 6-4الشكل )
طرق هي: 3باستخدام FlexRuleفي مكتبة يتم بناء القواعد
.S-Expressionباستخدام لغة -
.XMLباستخدام ملف مبني بلغة -
الخاصة: حيث يمكن للمطور أن يكتب لغته الخاصة ويدخلها إلى المكتبة.أو باستخدام لغة المطور -
54الصفحة
FlexRule[17] طرق تمثيل المعارف في ( 7-4الشكل )
نأخذ المثال التالي: FlexRuleوكمثال عن طريقة تمثيل القواعد في مكتبة
FlexRuleللمكتبة XMLمثال عن قاعدة (9-4)الكود
:S-Expressionلكتابة القواعد السابقة نفسها ولكن باستخدام طريقة
XML for FlexRule example
<inference> <reference assembly="FlexRule.Samples.PersonAge.exe"/> <import type="FlexRule.Samples.Person" /> <import type="FlexRule.Samples.Gender" /> <import type="System.Console" /> <defrule name="older and younger"> <match type="Person" variable="older"> <e>e.Sex == Gender.Female</e> </match> <match type="Person" variable="younger"> <p>p.Age < older.Age</p> <o>o.Sex == Gender.Male</o> </match> <then/> <action context="ctx" name="Print result"> <execute>Console.WriteLine("{0} ({1}) is older than {2} ({3})", older.Name, older.Age, younger.Name, younger.Age)</execute> </action> </defrule> </inference>
S-Expression Rule example
55الصفحة
FlexRuleللمكتبة XMLمثال عن قاعدة (9-4)الكود
:cDevWorkflow كتبةم 4-5
هذه المكتبة كانت مفتوحة المصدر في السابق، أما حاليا فقد أصبحت تجارية، ولكن يمكن الحصول على نسخة [𝟏𝟖]
تجريبية من المكتبة واستخدامها لمدة شهر واحد.
من أجل بناء مخططات رسومية وبشكل رسومي وبسيط جدا. cDevWorkflowتستخدم مكتبة
تتمتع المكتبة ببعض الخصائص، أهمها:
السهولة في عملية التنفيذ. -
قوي.التوافق ال، والدعم الجيد -
ومنصات العمل األخرى مثل NET.متوافقة مع لغات -
((Oracle, SharePoint, JAVA, PHP.
.multi-tenantتدعم البنية المعمارية -
المسؤولين عن المكتبة تبنوا مجتمع مخصص لمستخدمي المكتبة. -
/http://www.cdevworkflow.com يمكن الحصول على المكتبة عبر الذهاب للرابط:
:NGinn.BPMمكتبة 4-6
(inference (reference (@assembly "FlexRule.Samples.PersonAge.exe")) (import (@type FlexRule.Samples.Person)) (import (@type FlexRule.Samples.Gender)) (import (@type System.Console)) (defrule (@name "older and younger")
(match (@type Person) (@variable older)
(e "e.Sex == Gender.Female") ) (match (@type Person) (@variable younger)
(p "p.Age < older.Age") (o "o.Sex == Gender.Male")
) ->
(action (@context ctx) (@name "Print result") (execute 'Console.WriteLine("{0} ({1}) is older than {2} ({3})", older.Name, older.Age, younger.Name, younger.Age)')
) ) )
56الصفحة
عبارة عن مكتبة متخصصة في عمليات المحاكاة وإدارة العمليات الخاصة بالقواعد وبناء عمليات تدفقية لتحليل القواعد، [22]
.BPMNوأخذت بعض أفكارها من Petri netsوهي عبارة عن نسخة خفيفة تعتمد على شبكات بيتري
وذلك عبر سماحيتها لبناء مخطط عمل تدفقي شبيه بعمل تساعد المكتبة على أتمتة العمليات الضخمة، مثل عمليات االتصاالت،
قية.الهدف األساسي من المكتبة هو تصميم مرن، بسيط، وسهل قابل للتواف، وحكم بنقل البيانات بين التطبيقاتاإلنسان، ويقوم بالت
تعمل في الخلفية. التي MS SQLوباستخدام قاعدة البيانات #Cيتم تطوير المكتبة بشكل دائم، وخصوصا باستخدام لغة
لتمثيل القواعد. BPMN/XPDLملفات NGinn.BPMتستخدم مكتبة
الخصائص األساسية للمكتبة هي:
: حيث تؤمن سهولة في تضمينها ضمن أي تطبيق من دون اعتمادية على مكتبات خارجية.Ligtweightمكتبة خفيفة -
، data durabilityعمليات تجعلها قابلة للعمل على فترات طويلة )متانة البيانات وهي ACIDتؤمن ميزات الـ -
، المتانة في حال حدوث عطل أو فشل ما، موثوقية ومتانة كبيرة....( atomic updatesالتحديثات اآلنية
بشكل كامل. BPMNتدعم -
قوية وقابلة للتوسيع. -
تخدمها.ذات أداء جيد من حيث التحكم بالذاكرة التي تس -
:Workflow Engine.Netمكتبة 4-7
مكتبة من أجل بناء مخططات الحالة، ، حيث تستخدم هذه الC#.NETتم تصميم المكتبة باستخدام لغة البرمجة [𝟐𝟏]
، أيضا من الممكن رؤية التصميم المرئي للمخططات XMLيتم تصميم المخططات الخاصة بالعمليات وتمثيلها باستخدام لغة و
.JavaScriptو HTML5وذلك اعتمادا على
يمكن أن يتضمن مخطط العمليات التدفقي الذي تبنيه المكتبة عدة أمور:
تحديد ثبوتية المستخدم.التحقق من الحالة الحالية، و -
.condition scriptشرطي تنفيذ مخطط -
.Timersالمؤقتات -
وهم اللذين ينفذون العمليات. Actorsلمشغلين تحديد ا -
تحديد األوامر.تحديد البارمترات و -
وهي اإلجراءات التي يتم تنفيذها من الخارج. Actionsتحديد العمليات -
.Transitionsتحديد االنتقاالت ، وActivitiesتحديد النشاطات -
:وهيالسمات العامة تحتوي المكتبة بعض
ات بشكل رسومي.إمكانية تصميم المخطط -
من الممكن تغيير مخطط العمل في وقت التشغيل من تعديل وإضافة أو حتى استبداله. -
.التنفيذ المسبق للعمليات )تنفيذ العملية من حالة البداية إلى حالة النهاية دون التغيير على الحالة( -
يعتبر نسخة بسيطة وقابلة للتطوير على مستوى مخططات العمل. -
ة للتخفيف من البارمترات عند الحاجة.تسلسلية وقابل -
:SRE (Simple Rule Engine)مكتبة 4-8
57الصفحة
من أجل عمليات االستدالل، ومخصصة للعمل على forward chainingعبارة عن مكتبة خفيفة تستخدم خوارزمية [𝟐𝟑]
في تمثيل القواعد والحقائق، ولكن هذه البساطة بإمكانها >XMLوتتميز بسهولتها والتي تأتي من استخدامها للغة NET.بيئة
إنجاز وحل العمليات المعقدة.
:Statelessمكتبة 4-9
وتعتمد بشكل أساسي على بناء مخططات تدفقية تمثل طريقة العمل state machinesمكتبة متخصصة في إنشاء الـ [𝟐𝟎]
.#Cوالتي يمكن كتابتها مباشرة باستخدام لغة
:Softix.Orchestrationمكتبة 4-10
لتسمح للمبرمجين بإنشاء وتشغيل المخططات NET.وكتبت بلغات workflowمكتبة بسيطة تعتمد على محرك [𝟏𝟗]
التدفقية.
58الصفحة
:الخامسالفصل
تقنيات الويب الحديثة
في هذا الفصل:
بناء تطبيقات الويب.‹
.ASPتقنية ‹
.AJAXتقنية ‹
.JQUERYمكتبة ‹
.BOOTSTRAPمكتبة ‹
59الصفحة
تقنيات الويب الحديثة: -الخامس الفصل
:Web applicationبناء تطبيقات الويب 5-1
أصبح االهتمام بتصميم تطبيقات تعمل على األنترنيت واضحا خصوصا بعد ظهور التقنيات واللغات التي جعلت تطبيقات
م أجهزة الحواسيب، بل حتى اتسمت تطبيقات األنترنيت بميزات ال تحلاألنترنيت تعمل وكأنها تطبيقات مكتبية عادية تعمل على
بها التطبيقات المكتبية وخاصة وجودها على منصة عالمية مفتوحة إلى أي منطقة في العالم.
(Hypertext Markup Language)وهي اختصار للجملة HTMLإن اللغة التي يتم بواسطتها تصميم مواقع الويب هي لغة
.LGPLو منشأهما واحد وهو لغة XMLوتعتبر لغة رمزية مثلها مثل
document( تحيط بعناصر الوثيقة )tags(، ورموز )textsتتكون هذه اللغة من نصوص )
elements.وتحددها، وتبين هذه اللغة للبرنامج المستعرض ما ينبغي عمله عند النقر على رابط معين )
مع المعايير HTML أن لغة والواقع هي من أكثر اللغات شيوعا في مجال الويب، وأكثرها تطابقا
.HTML5 وآخر إصدار لهاهوالمعتمدة في هذا المجال،
عادة أو html(، تأخذ االمتداد Plain Textفي صورة ملفات نصوص بسيطة ) HTMLتكتب ملفات
، وتكتب في أي برنامج متخصص بكتابة النصوص.htmاالمتداد
:HTMLمثال عن كود مكتوب بلغة ك
HTMLمثال عن كود (1-5)الكود
HTML code <html> <head><title>Pgae Title</title></head> <body> <br> <form name="form1"> <table border="0"> <tr> <td>Name</td> <td><input type="text" name="textname" size="10"></td> </tr> <tr> <td>Password</td> <td><input type="password" name="textpass" size="10"></td> </tr> </table> <br> <input name="button1" type="button" value="do anything();"> <input type="reset" value="Clear"> </form> </body> </html>
60الصفحة
ولكن غالبا ما يتم وضع HTMLإن تنسيق األدوات المتوضعة على الصفحة من حجم ولون شكل يمكن كتابته باستخدام
Cascade Style)وهي اختصار لـ CSSالتنسيق الخاص بمحتوى صفحة الويب ضمن ملف خاص مكتوب بلغة تسمى
Sheet) [5].أي صفحات األنماط االنسيابية
.CSS 3بسيطة وهي متخصصة في توضيح تنسيق األدوات واأللوان التي تحتويها، وآخر إصدار لها هو CSSلغة تعتبر
الكود التالي: CSSوكمثال على تنسيق
CSSمثال عن كود (2-5)الكود
فقط تكون صفحة ثابتة ال روح فيها، ولكي نجعلها ذات روح وتنفذ بعض األوامر HTMLالصفحة المكتوبة باستخدام
، وهيJavaScriptبحسب العمليات التي يقوم بها المستخدم نستخدم إحدى لغات الخاصة بجهة العميل وأشهرها لغة الـ
تضمينها للتنفيذ ويتم لةقاب أسطر عن عبارة ، وهيHTML لصفحات التفاعلية إلضافة ، صممتScriptنصية برمجة لغة
، وتتميز بأنها مدعومة من كافة متصفحات الويب المشهورة، وليس هناك حاجة لترخيص من HTMLصفحات في مباشرة
أجل استخدامها.
وتتميز داخلية أو خارجية تكون قد القيام بوظائف خالل من الويب صفحات في وفعال حيوي دور JavaScriptتلعب لغة
أو في النوافذ formsالـ في مثال الويب أجزاء صفحة من جزء بكل تجعل المبرمج قادرا على التحكم درجة إلى بمرونتها
صفحاته في الويب مطور يبثها التي الروح تعد االستخدامات من وغيرها تنبهه معين أو بأمر لتخبره للمستخدم تخرج التي
المثال التالي: Java Scriptكمثال عن كود مكتوب بلغة ، واثناء برمجتها
JavaScriptمثال عن كود (3-5)الكود
CSS code
<style type = "text/css"> body { background-color: #ccffcc } div { text-align: center; margin-bottom: 1em; padding: .5em } .thick { border-width: thick } .medium { border-width: medium } .thin { border-width: thin } .groove { border-style: groove } .inset { border-style: inset } .outset { border-style: outset } </style>
JScript code <script language="javascript"> function doCheck() { if(form1.textname.value!="" || form1.textpass.value!=""){ alert(form1.textname.value); document.write(form1.textpass.value); } else alert("enter data first !"); } </script>
61الصفحة
لكي نجعل الصفحة ديناميكية أكثر وتصبح بإمكانها التعامل مع قواعد البيانات واألشياء المتقدمة األخرى نقوم بإضافة كود
وهي ASP.NET تقنية أو PHPمكتوب بإحدى لغات البرمجة المتقدمة والتي تدعى لغات برمجة المخدم، ومثال عليها لغة
ت الويب من جهة المخدم.عبارة عن لغات برمجية مخصصة لبرمجة صفحا
وبما تبين سابقا يمكننا تقسيم مواقع الويب إلى ثالثة أنواع رئيسية وهي:
حيث HTMLباستخدام التوصيفات من مجموعة عن عبارة : وهي المواقع التي تكونStatic pageثابتة مواقع .1
.الموقع هذا في المعالجة أنواع من نوع أي يوجد ال ولكن وخالفه وفالشات يمكن استخدام فيها صور
في جانب تظل ولكنها المعالجة أنواع ببعض يتمتع المواقع من النوع هذا Cleint: العميل عند ديناميكية مواقع .2
.JavaScript و VBScriptمثل Scriptsالمواقع استخدام هذه في يتم فقط، العميل
يكون ان يمكن الناتج الذي على فقط انت وتحصل السيرفر في لبياناته معالجة عمل يتم النوع ديناميكية: هذا مواقع .3
موقع انترنت، ويتم استخدام لغات برمجة وليس انترنت تطبيق يسمى الحالة هذه في والثاني، األول النوع من
.ASP.NETأو يمكن استخدام بيئة PHPخاصة بالخادم مثل
:ASP.NETبيئة 5-2
بيئة عمل لبناء صفحات الويب، وهي ليست لغة برمجية، بل بيئة برمجية من شركة مايكروسوفت ASP.netتعتبر[𝟐𝟒]
.موجهة إلنشاء وتطوير المواقع
، وكانت مليئة بالمشاكل وبطيئة وبها عيوب كثيرة، وبعد VBScriptوهي عبارة عن NET.بدون ASP في بدايتها كانت هنالك
وجعلها ضمن إطارها وموجهة ASPقامت مايكروسوفت بتطوير الـ NET.صدور
، وتتابعت التطويرات عليها مع تطور بيئة 2002لتطوير المواقع فاإلصدار األول كان في
ASP.NETثم ظهرت الـ 2003في الـ ASP.NET 1.1حيث تم إصدار الـ NET.الـ
ASP.NET 3.5و الـ ASP.NET 3.0ظهرت 2008، وفي عام 2005في عام 2.0
.ASP.NET 4.0ظهر 2010وفي عام
:ASP.NETمميزات
سريعة ألنها تترجم وال تفسر. -
آمنة حيث هنالك آليات معينة تخفف من اختراق المواقع المبرمج بها. -
تحتوي مكتبة أكواد ضخمة وهي بال شك مكتبة الدوت نت. -
أدوات جاهزة كثيرة وعديدة. -
بدون أدنى شك الفيجوال ستوديو.بيئة تطوير متكاملة وهي -
، Visual Basic .Netبالكثير من اللغات ولكن أهمها ) ASP.NETتكامل وتعدد اللغات حيث يمكن أن تستخدم -
C#.Net ،J#.Net ،Iron Python.)... ،
التي يفهمها المتصفح ولغة خاصة يفهمها الـ HTML فإن الصفحة تتحول في نهاية األمر إلى ASP.NETعند طلب صفحة
Server فال بأس من استخدام أية لغة من اللغات السابقة في صياغة شكل الكود (syntax) فكل يختار حسب ذوقه وخبرته.
ثالثة أنواع من التطبيقات التي يمكن برمجتها باستخدامها، هذه األنواع: ASP.NETتؤمن
:Web Forms نموذج التطوير .1بمعنى Post Backs والـ Event Driven يعتمد علي طريقة ASP.NET هذا النموذج هو التقليدي لبيئة العمل
أو عنصر على الصفحة بتخصيص حدث معين له والمشرف علي هذه العملية هو الـ Control إدارة األحداث لكل
62الصفحة
post backs منذ سنوات عديدة ومطورين الـ ، ASP.NET سلوب لتطوير وانشاء المواقع الكبيرة يستخدمون هذا اال
. في العالم
:MVC نموذج التطوير .2اي كما يعرف Model-View-Controllerهذا النموذج هو لتطوير تطبيقات الويب باستخدام نمط التصميم
هو طريقة رائعة لتطوير التطبيقات بطريقة منفصلة، بمعنى فصل التطبيق MVC ونمط التصميم MVC اختصارا بـ
Models واألخرى للتعامل مع قاعدة البيانات وتسمي Views وتسمي UI طبقات، واحدة لطبقة العرض 3لـ
. Controllersواالخيرة لربط االثنين ببعض وتسمى
:Web Pages نموذج التطوير .3 يمكنك اختيار هذا النموذج كبداية . هذا هو اسهل نموذج من نماذج ASP.NET إذا كنت حديث العهد مع
ASP.NET لتصميم المواقع .
ASP.NET[24] أنواع التطبيقات التي يمكن برمجتها باستخدام( 1-5الشكل )
:AJAXتقنية 5-3
وهي Asynchronous JavaScript and XML هي اختصار للمصطلح
ليست بتقنية بحد ذاتها أو مفهوم جديد في مجال برمجة الويب بل هي عبارة عن
اسم تم إعطاءه الستخدام مجموعة من التقنيات الموجودة أصال بحيث تكون مجتمعة
.AJAXمع بعضها البعض تحت ما يسمى
تطوير تطبيقات الويب بحيث تكون اكثر تفاعليه واكثر AJAXيمكن بواسطة
استجابة للمستخدم، حيث انه بواسطتها يتم التقليل من حاالت العودة الى السيرفر،
وإعادة تحميل الصفحة.
تحت اسمها هي: AJAXإن التقنيات التي جمعتها
- HTML, CSS, DHTML.
- JavaScript .
- XML.
- XMLHttpRequest .
63الصفحة
من أجل جعل المستعرض قادرا على إرسال واستقبال أوامر بشكل تفرعي، حيث يمكن النظر إلى طريقة AJAXتستخدم الـ
كما يلي: AJAXعمل
AJAX[25] طريقة عمل الـ (2-5)الشكل
إمكانية العمل على متصفحات الويب وكأننا نعمل على تطبيق سطح المكتب، حيث يتم معالجة الطلب على صفحة AJAXتتيح الـ
اإلنترنت التي يتم العمل عليها بدون الحاجة إلى االنتقال إلى صفحة جديدة وهي الطريقة التقليدية للعمل على الويب التي تتمثل
ليتم تخزين المعلومات في Server Side باتجاه قاعدة بيانات خادم الشبكة Client Side بإرسال البيانات من قبل المستخدم
قاعدة بيانات خادم الشبكة ومعالجتها وإرسال المعلومات الجديدة المعدلة إلى المستخدم من جديد ليالحظ التغيرات التي طرأت
دون الحاجة إلى إعادة التحميل من جديد بل يتم تمكنك من اجراء هذه التعديالت والطلبات وذلك AJAX على الصفحة أما تقنية
تغيير الجزء المراد التعديل عليه في نفس الصفحة وهي في حالة اتصال بخادم الشبكة وذلك عن طريق اتصال جانبي. ان من
من كة والزيستفيد من هذه التقنيات هي المواقع التي يزورها عدد كبير من الزوار مما يقلل من الجهد الحاصل على خادم الشب
.الالزم الستجابة الموقع لدى المتصفح
:AJAXطريقة عمل الـ 5-3-1
، سوف نعمل مقارنة بين عمل تطبيقات الويب التقليدية وتطبيقات الويب القائمة على AJAXلتوضيح مفهوم عمل الـ
.AJAXالـ
ر بمعالجه طلبات الى السيرفر، يقوم السيرففي تطبيقات الويب التقليدية، تكون اغلب نشاطات المستخدم متمثلة في إرسال
إلى متصفح المستخدم وبالتالي تحديث كامل الصفحة HTML الطلبات، والحصول على البيانات ثم إرسالها في صورة
الموجودة في المتصفح، وفي فترة إرسال الطلبات إلى المخدم تكون مهمة المستخدم، االنتظار و التحديق بمؤشر الماوس
شكل ساعه رملية، حيث يكون المستعرض قد دخل في حالة انتظار للنتيجة.الذي على
، فإن االمر يختلف، حيث إن الطلبات التي يتم إرسالها إلى السيرفر هي الطلبات AJAXبينما في التطبيقات القائمة على الـ
يتم تحميله مع JavaScript وهو عبارة عن كود AJAX Engineويتم ذلك بواسطة محرك التي تحتاج إلى تحديث فقط،
الصفحة إلى المتصفح، وبالتالي ال توجد حاجة إلى إعادة تحديث كل الصفحة، حيث يمكن للمستخدم مواصلة العمل على
الصفحة، بينما يتم إرسال الطلب وتحديث الجزء المحدد من الصفحة.
الـ ب التقليدية، وتطبيقات الويب القائمة علىاألشكال التالية توضح عمليات تفاعل المستخدم، في كل من تطبيقات الوي
AJAX:
64الصفحة
[25] تطبيقات الويب التقليديةطريقة عمل (3-5)الشكل
AJAX[25] المعتمدة على تطبيقات الويب طريقة عمل (4-5)الشكل
AJAX Engine Example
function connect() { var xmlhttp; try { xmlhttp = new XMLHttpRequest(); } catch (err) { try { xmlhttp = new ActiveXObject(“Microsoft.XMLHTTP”); } catch (err) { try { xmlhttp = new ActiveXObject(“Msxml2.XMLHTTP.3.0”); } catch (err) { xmlhttp = new ActiveXObject(“Msxml2.XMLHTTP.6.0”); }
65الصفحة
تم استخدامه في التطبيق: AJAXيظهر في الكود الذي في األسفل مثال على محرك
AJAXملف تنفيذ تقنية (4-5)الكود
:JQueryمكتبة 5-4
JavaScriptليست لغة برمجة بل هي عبارة عن مكتبة جاهزة، مجانية ومفتوحة المصدر مكتوبة بلغة JQueryالـ [6]
John Resigتسمح لمطوري الويب من القيام بالعديد من األمور واألكواد البرمجية بأسطر قليلة من األكواد، وقد كتبها المبرمج
عاون معه، والهدف من ثم طورها فريق من المبرمجين بالت 2006في البداية عام
على JavaScriptكتابتها تغيير الطريقة التي يكتب بها المبرمجين شيفرات الـ
أسهل وأبسط. Java Scriptحد قول مؤسسها، حيث أصبحت طريقة كتابة الـ
حيث تحوي العديد من "write less, do more"تعتمد المكتبة على جملة:
التعليمات التي تختصر عشرات األسطر بسطر برمجي وحيد.
وتحليلها والتعامل مع عناصرها، كما أنها HTML تتميز المكتبة بالبساطة والسهولة والسرعة واختصار العمل على ملفات
باإلضافة للميزة األهم وهي تيسير تها،تضيف عملية معالجة لألحداث كما تضيف الحيوية والحركة على الصفحات التي يتم برمج
.DOM، أيضا تتميز المكتبة أيضا بأنها تحتوي على تعليمات إلجراء عمليات معالجة على شجرة الـ AJAXوتسهيل عمل الـ
بالمميزات التالية: JQueryيمكن تلخيص مميزات مكتبة
.HTML/DOMتقدم طرق ووظائف خاصة لدعم ومعالجة -
.CSSمعالجة -
.HTMLالتحكم بأحداث -
} } return xmlhttp; } function statechange() { if (this.readyState == 4 && this.status == 200) { document.getElementById(“Jax”).innerHTML = this.responseText; alert(this.responseText) } } function AJAX_connection(page) { var xmlhttp; xmlhttp = connect(); xmlhttp.onreadystatechange = statechange; xmlhttp.open(“GET”, page, true); xmlhttp.send(); }
66الصفحة
.animationsإمكانية تنفيذ تأثيرات وحركات -
.AJAXدعم الـ -
وأكثرها انتشارا. Java Scriptتساعد في زيادة األداء العام التطبيق حيث تعتبر إحدى أسرع مكتبات الـ -
تساعد في تصميم صفحات ومواقع وتطبيقات مدعومة من أغلب المتصفحات. -
صفحات المستخدمين بشكل كبير وبسهولة كبيرة دون كتابة مئات االسطر من االكواد تساعد في تحسين وتجميل -
البرمجة حيث هنا تتوفر بعدة اسطر وبسهولة ويسر للمبرمج.
قابلة للتوسع وبشكل كبير جدا حيث يمكن إعادة تحقيقها لتوفير طرق ووظائف جديدة وكثيرة ويمكن للمبرمج الخبير -
مل.القيام بالكثير من هذا الع
.ممتاز documentaion بدعم و JQuery الـ الدعم والمساعدة حيث تأتي -
في صفحة الويب كما يلي: JQueryومن الممكن استخدام مكتبة الـ
JQueryطريقة استخدام مكتبة (5-5)الكود
:BootStrapمكتبة الـ 5-5
Mark Otto – Julianمجموعة من األدوات مفتوحة المصدر لتصميم واجهات المواقع، تم تطويرها من قبل هي
Thilo – Chris Rebert المصممين والمطورين على بناء منتجات مذهلة بسرعة وفعالية، وتوفير مكتبة وتم إنشائها لمساعدة
كي يقوم JavaScript و CSSو HTML واسعة ومرنة وموثقة بشكل جيد للتصاميم التي يتكرر استخدامها المبنية باستخدام
المطورون باستعمالها واإلبداع باستخدامها حيث بنيت بمرونة كبيرة
.العادية CSS من القوة أكثر من الـ والتي تقدم الكثير
المكتبة بنيت لتالئم العمل على كل المتصفحات الجديدة سواء كانت
المتصفحات العادية أو متصفحات الجوال، بمعنى أنه سيكون هناك
.فرق في ستايل الموقع في المتصفحات القديمة
GitHub أصبح المشروع األكثر شعبية على موقع اآلن ليتضمن العشرات من العناصر حيث BootStrapتوسع مشروع الـ
.تطوير فرعي 2000متابع و 13,000بعد أن حصل على أكثر من
JQuery using example
<!DOCTYPE html> <html> <head> <script type="text/javascript" src="jquery.js"></script> <script type=”text/javascript”> <-- ( الكود كتابة تتم هنا ) --!> </script> </head> <body> <h1>Hello, world!</h1> </body> </html>
67الصفحة
وكان اسمها عند ذلك مخطط تويتر fat@و mdo@من قبل 2010عام Twitterفي تويتر BootStrapمكتبة الـ تم انشاء
Twitter Blueprint.
قامت تويتر بإصدار النسخة األولى لهذه المكتبة للمطورين والمصممين والجميل أنه تم اإلعالن عنها 2011-08-19وفي
.نفسه BootStrapالـ لمطور بتغريدة
.V3و V2 لهذه المكتبة، وتمت إعادة كتابتها من البداية في اإلصدارين عشرين اصداراآلن يوجد أكثر من
للمطورين يقوم بإضافته عند الحاجة، بينما تم في اإلصدار وجعله خيار Responsive في اإلصدار الثاني للمكتبة تمت اضافة الـ
.بشكل افتراضي، وعلى متصفحات الجواالت بشكل أساسي Responsive الثالث إعادة كتابة المكتبة مرة أخرى لجعلها
:BootStrapالـ أهم ميزات
شرةسهلة في التضمين: حيث يتم وضعها في الكود الخاص بالمشروع ثم يتم استخدامها مبا -1
أي ال صور وال ملفات جافا سكربت css البوتستراب ال تحوي أي شيء إضافي على الـ التجميع لمرة واحدة : -2
.غير ضرورية كل ما تبقى فقط األمور البسيطة والقوية لعمل موقعك بشكل مثالي
.الجاهزة الموجود في الموقع والسهلة جدا في االستخدام والتعديل العناصر -3
المطورة مع هذه المكتبة أيضا يوجد فيها الكثير من الخيارات وهي سهلة في االستخدام والتطوير الجافا سكربت -4
.عليها
سهولة التصميم لكل متصفحات الويب المستعملة. -5
.html و css3 التناسب مع كل متصفحات الويب الحديثة التي تستعمل -6
.responsiveصاميم استعمال نموذج هيكلة باألعمدة عوضا عن األبعاد في مشاريع ت -7
أهم األدوات المقدمة:
.class btnاألزرار: إمكانية تغير أي هيكلة إلى زر منسق ومصمم باستعمال -
الجداول: تنسيق احترافي للجداول بهيئات متنوعة. -
- Dropdown.بسهولة نحصل على قائمة ذات أكثر من ابن :
- jQuery :يتضمن العديد من المهمات ومنها التنبيهات :tabs ،accordion ،carousel …..
مجموعة من المكتبات المرتبة مع بعضها البعض، هذه المكونات هي كما يلي: BootStrapتتضمن مكتبة
Bootstrap[25] ملفات المكتبة (5-5)الشكل
68الصفحة
Bootstrapطريقة استخدام مكتبة (6-5)الكود
Boot Strap example
<!DOCTYPE html> <html> <head> <title>Bootstrap 101 Template</title> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <!-- Bootstrap --> <link href="css/bootstrap.min.css" rel="stylesheet"> <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> <!--[if lt IE 9]> <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script> <![endif]--> </head> <body> <h1>Hello, world!</h1> <!-- jQuery (necessary for Bootstrap's JavaScript plugins) --> <script src="https://code.jquery.com/jquery.js"></script> <!-- Include all compiled plugins (below), or include individual files as needed --> <script src="js/bootstrap.min.js"></script> </body> </html>
69الصفحة
70الصفحة
:السادسالفصل
نتائج الدراسة والتطبيق
العملي
في هذا الفصل:
معايير استخدام مكتبة النظام الخبير.‹
اختيار طريقة تمثيل المعارف.‹
اختيار محرك االستدالل.‹
اختيار واجهة االستخدام.‹
التطبيق العملي للمشروع.‹
71الصفحة
:نتائج الدراسة والتطبيق العمليالفصل السادس:
التي تم اختيارها بعد الدراسة النظرية ،NxBREوقد تم بنائها باالستفادة من مكتبة بناء نواة لنظام خبير،تم في البحث
واء تطبيقات سطح المكتب أو الويب.أي نوع من التطبيقات سفي يمكن استخدامها لمكتبات النظم الخبيرة، هذه النواة
التي تناسب Coursesيقوم على فكرة تقديم االستشارة في الكورسات Web applicationتطبيق ويب برمجة أيضا تم
شخص ما.
ب.، وبنية تطبيق الوينواة النظام الخبيرالدراسة النظرية، بنية نتائج نقاط أساسية وهي: 3سيتم الحديث عن الفصلفي هذا
:الدراسة النظرية 6-1
يلي:أشهر، وتم فيها ما 4استغرقت الدراسة النظرية مدة
دراسة الموضوع قيد البحث وهو النظم الخبيرة، وتحصيل المعلومات التي تدور حول مفاهيمه. -
البحث عن مكتبات النظم الخبيرة، وقراءة التوثيقات والمراجع الخاصة بها. -
البحث في معايير تمثيل المعارف، والطرق المتبعة في توصيف المعيار. -
وقواعد تحكم عملية اختيار مكتبة متخصصة في النظم الخبيرة.تم اختتام الدراسة بوضع معايير -
المستخدم في تمثيل RuleMLالستخدامها في تطبيق الويب، وتمت دراستها ودراسة المعيار NxBREاختيار المكتبة -
المعارف.
معايير اختيار مكتبة النظام الخبير: 6-1-1
هذه المواضيع بناء عليبينها بعدة مواضيع، و واضح، حيث تختلف فيما المتوفرةإن التمايز بين مكتبات النظم الخبيرة
هي:النظم الخبيرة، هذه االعتبارات في تطبيقات تم وضع اعتبارات يمكن للمطور أن يستفيد منها
سماحية التعامل مع المكتبة: -1
والمقصود بها طريقة التعامل مع أكواد المكتبة، حيث يوجد بعض مكتبات النظم الخبيرة مجانية بالكامل، بل ويمكن رؤية
وبعضها اآلخر تكون منتجا تجاريا open sourceاألكواد الخاصة بها وهي تندرج تحت مفهوم
تكون تجارية ويمكنتحتاج إلى شراء لكي يمكن التعامل معها، ويوجد بعض المكتبات التي ال
استخدام المكتبة بشكل مجاني إلى أنه ال يمكن رؤية األكواد الخاصة بها، وقد تم ذكر العديد من
مكتبات النظم الخبيرة في البحث السابق مع توضيح ماهية التعامل معها.
المستخدمة في التطبيق بأنها مجانية ومفتوحة المصدر بالكامل، وهذا ما NxBREتتميز مكتبة
يعطيها قوة كبيرة ومرونة، حيث يمكن التعديل عليها بحسب حاجة المستخدم لها.
أنواع محركات االستدالل التي تدعمها المكتبة: -2
72الصفحة
ي على نوعين من محركات االستدالل يوجد بعض المحركات التي تدعم محركا واحد فقط، بينما توجد مكتبات أخرى تحتو
وهذا هو الغالب على المكتبات مفتوحة المصدر، بينما تكون المتبات التي تدعم عدة محركات
تجارية وبحاجة إلى شراء لكي يتم التعامل معها.
Flow Engine, Inference نوعين من محركات االستدالل وهما: NxBREتدعم مكتبة
Engine محركات االستدالل.وهما أشهر أنواع
أنواع قواعد المعارف التي تدعمها المكتبة: -3
وهي الصيغ التي يتم بها تمثيل المعارف وتستطيع المكتبة أن تعامل معها، والغالب على مكتبات النظم الخبيرة التعامل مع
، حيث XML بها القواعد بلغة، ولكن يظهر االختالف فيما بينها بالمعيار التي يتم تمثيل XMLالصيغ المكتوبة باستخدام
، وهو المعيار الذي تتعامل معه مكتبة RuleMLتقدم بعض المكتبات دعما لمعايير عالمية في تمثيل المعارف كمعيار
NxBRE.
طرق أخرى لتمثيل المعارف وهي المعارف عالمية أيضا، وهذا ما RuleMLتدعم إضافة إلى معيار NxBREإن مكتبة
مزيات مهمة ال تتميز بها الكثير من المكتبات.يعطيها قوة كبيرة و
.businessRules.xsd xBusinessRules.xsdبنوعين هما Flow Engineللمحرك من نوع XSDأيضا تدعم صيغ
قوة بناء المكتبة ومتانتها: -4
التي تحتويها، ومقدار األخطاء وتعني الكيفية التي تم بناء بها المكتبة، ومرونة التوابع التي تتضمنها، وهل هي قابلة للتوسع،
وهل يتم إجراء تحديثات عليها أو ال يتم، كل هذه األمور تأخذ بعين االعتبار حيث من المهم
أن تكون المكتبة مرنة قابلة للتوسع وذلك لكي يضيف عليها المستخدم ما يحتاجه دون أن يجد
صعوبة.
نظم ادا على مكتبة سابقة عريقة في التتمتع ببنيان قوي فقد تم بنائها اعتم NxBREإن مكتبة
، إضافة لذلك فهي تتمتع بخواص مهمة جدا JxBREالخبيرة ومكتوبة بلغة الجافا وهي مكتبة
من معالجة لألخطاء وإمكانية التوسع فيها، ويتم إجراء عملية تطوير عليها كل فترة، هذه التطويرات مهمة لمعالجة األخطاء
. January 5 2009آخر التحديثات والتطويرات، وقد تم إصدار آخر نسخة منها في التي تظهر وجعلها تتواكب مع
المراجع والتطبيقات التي تستخدم المكتبة: -5
إن المراجع التي تتحدث عن المكتبات المتخصصة بالنظم الخبيرة قليلة وتكاد تنعدم في بعضها، والذي يساعد على التعامل
من قبل األشخاص الذين قاموا بتصميمها، ووجود مع المكتبة وجود توثيق خاص لها
مجموعة من التطبيقات التي صمموها بواسطتها بحيث يتاح للجميع الحصول على
أكبر فائدة من المكتبة.
بوجود مراجع متعددة عنها، أهمها التوثيق الخاص بها NxBREتتميز مكتبة
الموجودة ضمن المكتبة، APIود توثيق خاص لألصناف والـ والمكتوب من قبل األشخاص القائمين على المكتبة، أيضا وج
فضال على مجموعة من التطبيقات المنشورة على مواقع الويب والموجودة ضمن التطبيق الخاص بالمكتبة والتي تعتبر شاملة
ومحققة لجميع إمكانيات المكتبة، وهذا األمر غير موجود في المكتبات األخرى.
73الصفحة
:NxBREالمكتبة اختيار 6-1-2
وهي تتمتع بمزايا متعددة جعلها تتفوق NxBREإن المكتبة التي تم اختيارها الستخدامها ضمن الموقع هي مكتبة
على غالب المكتبات األخرى، هذه المزايا:
مكتبة مفتوحة المصدر يمكن قراءة األكواد البرمجية الخاصة بها، وتعديلها بحيث تتناسب مع تطبيقنا. -
وبشكل مفتوح #Cبات النظم الخبيرة حيث تعتبر أولى مكتبات النظم الخبيرة المكتوبة بلغة تعد من أعرق مكت -
المصدر.
و هي مميزة مهمة جدا حين استخدامها على الويب. KB 400مكتبة خفيفة ال يتجاوز حجمها -
.Flow engineو Inference engineتدعم نوعين من محركات االستدالل وهي -
طرق تمثيل المعارف.تدعم طيف واسع من -
.ASP.NETوهو ما يسهل التعامل معها حين العمل على #Cمكتوبة بلغة -
وجود توثيق كامل للمكتبة وموجوعة من التطبيقات المساعدة. -
.RuleMLدعمها لطريقة معيارية عالمية في تمثيل المعارف وهي -
اختيار طريقة تمثيل المعارف: 6-1-3
لتمثيل المعارف متعددة، فهي تقدم دعما لخمس أنواع من طرق تمثيل NxBREإن الطرق التي تدعمها مكتبة
المعايير عالمية موثقة، ومعترف عليها كطريقة من طرق تمثيل هذه بعضوالميزة األساسية هي في أن المعارف،
الخبرة، هذه الطرق:
وهو معيار عالمي لتمثيل الخبرة وهو الذي تم استخدامه في RuleMLمكتوب باستخدام معيار XMLملف -
التطبيق.
والتي تؤمن MicroSoftالذي يأتي مع حزمة Visioوالتي يمكن كتابتها باستخدام برنامج VDXملفات -
عملية إنشاء للقواعد والحقائق بشكل رسومي.
وهو Prologهولة ويشبه صيغة وهو عبارة عن ملف بنحو شيبه للغة البشر، يمكن قراءته بس HRFملف -
.human-readable formatاختصار للعبارة
.businessRules.xsdمن النوع XSDملفات بصيغ -
.xBusinessRules.xsdمن النوع XSDملفات بصيغ -
مزايا تجعله االختيار من المعياري لتمثيل المعرفة في التطبيق لما يتمتع به RuleMLتم استخدام التوصيف
األمثل، هذه الميزات هي:
.W3Cالخاصة بتوصيفات الـ RIFمعيار عالمي موصف تحت وثيقة RuleMLيعتبر معيار - .Cambridgeو عدد من الجامعات أشهرها جامعة W3Cيتميز بدعم واسع جدا من عدة شركات أشهرهم -
ائم بحيث يتم جعله متوافقا دوما مع آخر التقنيات، يتم إجراء تطويرات عليه من خال مؤتمرات تعقد بشكل د -
من هذا العام. Augustمؤتمرات إلى اآلن وسيعقد المؤتمر القادم في شهر 8وقد تم إجراء
يعتبر هذا المعيار مخصصا لتمثيل المعرفة في عالم الويب واإلنترنيت، ولذلك فهو متوافق تماما مع الويب، -
ويتميز بسهولة نقله عبره.
يز بالبساطة والقوة معا.يتم -
له مراجع متعددة وتوثيقات عديدة مما يجعل التعامل معه أمرا بسيطا. -
74الصفحة
ومعيار قاعدة المعارف NxBREشعار مكتبة ( 1-6الشكل )
اختيار محرك االستدالل: 6-1-4
نوعين من محركات االستدالل وهي: NxBREتقدم مكتبة
.Flow Engineمحركات من النوع -
.Inference Engineمحركات من النوع -
لما يتمتع به من مواصفات مهمة يمكن االعتماد عليها لبناء Inference engineتم استخدام محرك استدالل من النوع
نظام خبير قوي ومتين، أهم هذه الميزات:
أنواع من طرق تمثيل المعارف وهذا ما يمنحه مرونة كبيرة. 3يتعامل مع -
ـ Rule Priorityيدعم األولوية في القواعد - .Precondition، وعمليات االستنتاج Mutual Exclusionوال
يتمتع بإمكانية تحليل القواعد بشكل استنتاجي على خالف المحرك اآلخر، الذي يقدم عملية استنتاج معتمدة على -
if – else.
والقواعد وبين بين الملف الذي يحتوي على الحقائق Binderيدعم وجود -
، ومعالجتها:ل الحقائقالطريقة التي يقوم بها كل محرك في تحلي (2-7( )2-6األشكال )توضح
75الصفحة
Flow engine[14] ( طريقة عمل المحرك 2-6الشكل )
76الصفحة
Inference engine[14] طريقة عمل المحرك (3-6الشكل )
للغاية حيث يقوم بوضع الحقائق في ذاكرة محددة بينما يضع النتائج إن الطريقة التي يتعامل معها المحرك االستداللي مميزة
اكرة:ذأنواع من ال 3القواعد ضمن ذاكرة أخرى حيث يتخلص منها حين يكون ليس هناك داع لبقائها، ويوجد
.Globalالذاكرة من نوع -
Isolatedالذاكرة من نوع -
.Empty Isolatedالذاكرة من نوع -
اآللية التي يتعامل معها محرك االستدالل مع الذاكرة:يوضح المخطط التالي
77الصفحة
[14] مخطط انتقال الحقائق ضمن الذاكرة (4-6)الشكل
:Expert System Coreنواة النظام الخبير 6-2
النظام الخبير مدة شهرين، Coreاستغرقت عملية كتابة نواة ، NxBREالنظام الخبير اعتمادا على مكتبة نواة تم بناء
.#Cحيث تمت عملية برمجة النواة باستخدام لغة
، Object Orientedتم استخدام أسس برمجية عالمية في بناء النواة، حيث استخدمت مفاهيم البرمجة غرضية التوجه
ية تطويرها وصيانتها.بحيث تسهل عمل tiersوتم تقسيم النواة إلى طبقات ، Data Structureومفاهيم بنى المعطيات
تتألف النواة من ثالث مستويات:
(.Expert System) تتعامل مع محرك االستدالل مباشرةطبقة -
(.Rules, Facts) قائق وقواعد، ومع قواعد البياناتطبقة تتعامل مع قاعدة المعارف، من ح -
(.Inference Engine) الخبيرسهل عملية استخدام النظام تطبقة تغلف الطبقتين السابقتين ضمن إطار واحد -
( الطبقات بشكل تفصيلي وطريقة 6-6يوضح الشكل )و( الطبقات التي يتكون منها النظام الخبير، 5-6يوضح الشكل )
االرتباط بين كل طبقة.
78الصفحة
طبقات نواة النظام الخبير (5-6الشكل )
طبقات نواة النظام الخبير بشكل تفصيلي (6-6الشكل )
:Inefernce Engineالـ طبقة 6-2-1
عالجة مإجراء العمليات األساسية من يتم فيها ت، وتعد الطبقة الخاصة بالتعامل مع المكتبة مباشرة من أهم الطبقا
لقواعد، وإضافة قواعد جديدة، والتعديل على قواعد سابقة، كل ذلك يتيح المرونة للتطبيق، ويجعل إمكانية التعديل عليه ل
ممكنا.وصيانته، أمرا
والتي تتعامل مع المكتبة مباشرة. Inference Engine( في األسفل الطبقة 1-6يبين الكود )
79الصفحة
Expert System Layer
public class InferenceEngine { private IInferenceEngine engine = new IEImpl(new CustomBinder()); public void Load_Rules(string Rules_path) { IRuleBaseAdapter Rules_Adapter = new RuleML09NafDatalogAdapter( Rules_path, System.IO.FileAccess.Read); engine.LoadRuleBase(Rules_Adapter); } public void Load_Facts(string Facts_path) { IFactBaseAdapter Facts_Adapter = new RuleML09NafDatalogAdapter( Facts_path, System.IO.FileAccess.Read); engine.LoadFacts(Facts_Adapter); } public void Save_Facts(string Facts_path) { IFactBaseAdapter Facts_Adapter = new RuleML09NafDatalogAdapter( Facts_path, System.IO.FileAccess.Write); engine.SaveFacts(Facts_Adapter); } public void Update_Facts(ListBox Facts_List) { IEnumerator<Fact> Engine_Facts = engine.Facts; Engine_Facts.Reset(); Facts_List.Items.Clear(); int i = 0; while (Engine_Facts.MoveNext()) { Fact f = Engine_Facts.Current; Facts_List.Items.Add("Fact " + i++ + ": " + f.ToString()); } } public void Update_Rules(ListBox Rules_List) { IEnumerator<Implication> Engine_Rules = engine.Implications; Engine_Rules.Reset(); Rules_List.Items.Clear(); int i = 0; while (Engine_Rules.MoveNext()) { Implication imp = Engine_Rules.Current; Rules_List.Items.Add("Rule " + i++ + ": " + imp.Label.ToString());
80الصفحة
Inference Engineالطبقة (1-6)الكود
Rules_List.Items.Add("AtomGroup : " + imp.AtomGroup.ToString()); } } public void Process() { engine.Process(); } public List<Fact> Run_Query(string Query) { IList<IList<Fact>> qrs = engine.RunQuery(Query); List<Fact> result = new List<Fact>(); foreach (IList<Fact> facts in qrs) foreach (Fact fact in facts) result.Add(fact); return result; } public void Remove_Facts() { IEnumerator<Fact> Engine_Facts = engine.Facts; Engine_Facts.Reset(); List<Fact> list = new List<Fact>(); while (Engine_Facts.MoveNext()) { Fact f = Engine_Facts.Current; list.Add(f); } foreach (Fact f in list) engine.Retract(f); } public void Add_Fact(Fact f, string id) { engine.Modify(id, f); if (engine.FactExists(id) == true) engine.Modify(id, f); else engine.Assert(f); } public bool Fact_Exist(string id) { return engine.FactExists(id); } }
81الصفحة
قاعدة المعارف الخاصة بالتطبيق: 6-2-2
تعتبر قاعدة المعارف إحدى نقاط القوة األساسية للموقع وللنظام الخبير، حيث تم بنائها كما ذكر سابقا باستخدام
، حيث تمت معالجة (Facts, Rulesبالتحكم بقاعدة المعارف عبر طبقتي الـقواعد والحقائق )عالمي، يقوم الموقع رمعيا
كافة حاالت اإلضافة للقواعد، وتعديلها، والوصول إلى الحقائق، وتشغيل االستعالمات، كل ذلك يقوم به الموقع عبر هذه
الطبقة.
:الويب الذي تم تصميمه( جزء من القواعد التي يحتويها تطبيق 2-6) يوضح الكود
RuleML Knowledg Base
<?xml version="1.0" encoding="utf-8" standalone="no"?> <RuleML xmlns="http://www.ruleml.org/0.9/xsd" xsi:schemaLocation="http://www.ruleml.org/0.9/xsd ruleml-0_9-nafdatalog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <oid> <Ind>Rules Knowledge Base</Ind> </oid> <!--Queries--> <Query> <oid> <Ind>Get Actual Rating</Ind> </oid> <Atom> <op> <Rel>ACTUAL RATING</Rel> </op> <Var>username</Var> <Var>coursename</Var> <Var>actualrating</Var> </Atom> </Query> <Query> <oid> <Ind>Get User Friend</Ind> </oid> <Atom> <op> <Rel>USER FRIEND</Rel> </op> <Var>username</Var> <Var>priority</Var> </Atom> </Query> <Query> <oid>
82الصفحة
<Ind>Get Courses Priority</Ind> </oid> <Atom> <op> <Rel>COURSE PRIORITY</Rel> </op> <Var>coursename</Var> <Var>priority</Var> </Atom> </Query> <!--Implications--> <Assert> <!--Actual Rating Rule--> <Implies> <oid> <Ind>Calculate acctual rate</Ind> </oid> <body> <And> <Atom> <op> <Rel>USER EXPERT</Rel> </op> <Var>user_name</Var> <Var>category_name</Var> <Var>user_expert</Var> </Atom> <Atom> <op> <Rel>RATE</Rel> </op> <Var>user_name</Var> <Var>course_name</Var> <Var>user_rate</Var> </Atom> <Atom> <op> <Rel>CATEGORY</Rel> </op> <Var>course_name</Var> <Var>category_name</Var> </Atom> <Atom> <op> <Rel>LEVEL</Rel> </op> <Var>course_name</Var> <Var>course_level</Var> </Atom>
83الصفحة
<Atom> <op> <Rel uri="nxbre://operator">GreaterThanEqualTo</Rel> </op> <Var>user_expert</Var> <Var>course_level</Var> </Atom> </And> </body> <head> <Atom> <op> <Rel>ACTUAL RATING</Rel> </op> <Var>user_name</Var> <Var>course_name</Var> <Var>user_rate</Var> </Atom> </head> </Implies> <!--Courses Priority Rules--> <Implies> <oid> <Ind>Calculate Courses Priority L=E(5)</Ind> </oid> <body> <And> <Atom> <op> <Rel>FINAL RATE</Rel> </op> <Var>course_name</Var> <Ind>5</Ind> </Atom> <Atom> <op> <Rel>CATEGORY</Rel> </op> <Var>course_name</Var> <Var>category_name</Var> </Atom> <Atom> <op> <Rel>USER EXPERT</Rel> </op> <Var>user_name</Var> <Var>category_name</Var> <Var>user_expert</Var>
84الصفحة
جزء من قاعدة المعارف الخاصة بالموقع (2-6)الكود
التطبيق العملي: 6-3
إن التطبيق العملي للمشروع يتجسد في إنتاج واجهة استخدام للنظام الخبير تجعل عملية استخدامه من قبل غير المختصين
عتناء بها وذلك ألن المستخدم ال يتعامل مع النظام الخبير إن الواجهة التي تغلف النظام الخبير من أهم األمور التي يجب االممكنا،
عبر هذه الواجهة، فإذا كانت هذه الواجهة ال تحقق السهولة والبساطة التي يريدها المستخدم فإن كل النظام مباشرة، بل يتعامل معه
الخبير ال يعد يهمه مهما كان قويا ومتينا، لذلك فبناء الواجهة أمر مهم، وأساسي في النظم الخبيرة.
ي البدايةف م تطبيقات عملية توضح قوتها وفائدتها، وتماستخدام نواة النظام الخبير ضمن تطبيقات عملية الختبارها وتصميتم
على برمجة تطبيق يعملثم تم االنتقال إلى #Cباستخدام لغة الـ Windows applicationعلى الواجهات المبنية على العمل
يقدم االستشارة للمستخدم بالكورسات التي تناسبه. Web Applicationالويب
بما يلي: Windows applicationنوع من أنواع الواجهات، حيث تتميز الواجهات المبنية على إن هناك مزايا مختلفة لكل
.Offlineتعمل على الحاسب مباشرة دون الحاجة إلى االتصال باإلنترنيت -
تتميز بسهولة أكبر في عملية برمجتها. -
</Atom> <Atom> <op> <Rel>SIGNIN USER</Rel> </op> <Var>user_name</Var> </Atom> <Atom> <op> <Rel>LEVEL</Rel> </op> <Var>course_name</Var> <Var>user_expert</Var> </Atom> </And> </body> <head> <Atom> <op> <Rel>COURSE PRIORITY</Rel> </op> <Var>course_name</Var> <Ind>25</Ind> </Atom> </head> </Implies> </Assert> </RuleML>
85الصفحة
تعتبر أسرع من التطبيقات المبنية على الويب. -
الويب بما يلي: وتتمتع الواجهة المبنية على
موجودة على شبكة عالمية مما يتيح الفرصة ألي األحد من التعامل معها. -
يعتبر التصميم الخاص بالويب مرن أكثر مقارنة مع تطبيقات سطح المكتب التقليدية. -
Windows applicationتطبيق النظام الخبير على واجهة (7-6الشكل )
:Web Applicationتطبيق الويب 6-3-1
تم تصميم وبرمجة تطبيق يعمل على شبكة األنترنيت يقدم االستشارة لألشخاص الراغبين بالحصول على كورسات
محددة تهمهم ومن ضمن اختصاصهم، وتم برمجة التطبيق باستخدام آخر تقنيات الويب، واعتمادا على مكتبة قوية من
.NxBREمكتبات النظم الخبيرة وهي مكتبة
ء الموقع باستخدام آخر تقنيات الويب، واعتمادا على أسس برمجية عالمية، حيث تم وضع طبقات متعددة لكل تم بنا
هيكلية في الموقع )طبقة لقواعد المعطيات، طبقة لألدوات المبرمجة، طبقة خاصة بالمدير، .....(
وبالعمل على لغات برمجة الويب المتعددة Microsoft Visual studio 2013برمجة التطبيق برنامج استخدم في
وقد تم االعتماد قدر اإلمكان على آخر التقنيات وآخر إصدارات لغات برمجة الويب، حيث استخدمت اللغات التالية
بحسب وظيفتها:
باإلضافة إلى االعتماد على مكتبة CSS3و HTML5تم تصميم الموقع باستخدام تصميم الموقع: -
JCarousel.
JQueryباإلضافة إلى االعتماد على مكتبتي JavaScriptتم العمل على لغة الموقع من جهة العميل: برمجة -
.JCarouselو
.ASP.NETتم استخدام لغة برمجة الموقع من جهة المخدم: -
.SQL Server 2008تم استخدام قاعدة الببيانات: -
86الصفحة
( الصفحة الرئيسة للموقع.7-6ين الشكل )يب
الويب تطبيق النظام الخبير على (8-6الشكل )
:الموقع هيكلية 6-3-2
ببرمجة الموقع بالدرجة األولى، حيث تم بناء الكود اعتمادا على مبادئ برمجية عالمية تجعل من تم االهتمام
ر لقواعد البيانات، حيث تدي خصصةعملية تطوير الموقع في المستقبل أمرا ممكنا، من أهم هذه القواعد تصميم طبقة م
هذه الطبقة كل العمليات الخاصة بقاعدة البيانات الخاصة بالتطبيق من إضافة وحذف وتعديل، وبنيت على أسس البرمجة
غرضية التوجه.
مكونات أساسية: 4تتألف بنية الموقع من
ة صفحات الموقع وطريقالجزء الخاص بالتصميم: وهو الجزء الذي يعتمد على تصميم موقع الويب وتشكيل -
,BootStrapمثل عرض البيانات، تم في هذا الجزء االعتماد على آخر تقنيات ومكتبات التصميم
JCarousel، واستخدام البرمجة من جهة العميلJavaScript إلضافة الديناميكية للموقع JQuery, AJAX.
وبلغة ASP.NETم، وتم فيه استخدام تقنية جزء األكواد البرمجية: وهو الجزء الخاص بالكود من جهة المخد -
C#:تم في هذا الجزء تصميم أدوات الستخدامها عدة مرات، وتم بعدها تقسيم عمليات المعالجة، إلى قسمين ،
.قسم خاص بعمليات مستخدمين الموقع
قسم خاص بعمليات الـAdmin.
87الصفحة
، SQL Serverالجزء الخاص بالتعامل مع قاعدة البيانات: تم التعامل في الموقع مع قاعدة بيانات من نوع -
للتعامل مع جداول قاعدة البيانات بشكل غرضي التوجه، حيث تقوم هذه التقنية LINQوتم االعتماد على تقنية
.Classesعلى تحويل الجداول والسجالت واألعمدة إلى
الخبير: وهي النواة التي تم تصميمها في البحث حيث تم استخدامها ضمن الموقع. نواة النظام -
( هيكلية الموقع، والطبقات التي يحتويها.8-6يبين الشكل )
الويب موقعهيكلية (9-6الشكل )
:صفحات موقع الويب 6-3-3
ب يتطلبها أي موقع وي يوجد العديد من الصفحات ضمن موقع الويب، حيث تم تصميم غالب الصفحات التي
من تسجيل الدخول، والتواصل مع أصحاب الموقع لالستفسار عن شيء معين، وصفحات الـمسؤول عن
الموقع،باإلضافة إلى صفحات إضافية توضح فيها عمليات النظام الخبير، والقواعد التي يحتويها والحقائق التي يتم
استنتاجها.
تي تبين الكورسات التي تناسب المستخدم الذي يتصفح الموقع، والتي يتم أهم الصفحات ضمن الموقع هي الصفحة ال
استنتاجها عن طريق النظام الخبير، يتم فيها توضيح كل كورس مع عدد الساعات التي يحتاجها، واسم المدرس، وبعض
لخبير.بل النظام االتفاصيل األخرى، أهم ما يعرض في هذه الصفحة هي تقييم الكورس والذي يتم استنتاجه أيضا من ق
( صفحة الكورسات.9-6يوضح الشكل )
88الصفحة
صفحة الكورسات (10-6الشكل )
:الموقع توافقية تجريب 6-3-4
4تم تجريب التطبيق بحيث يحقق أكبر توافقية مع مستعرضات الويب بآخر إصداراتها وقد تم العمل على
توافق مع ال نسبة كبيرة منإن المكتبات التي تم استخدامها تحقق مستعرضات ويب تعمل على غالب أنظمة التشغيل،
غالب مستعرضات الويب، وهذا ما سهل عملية االختبار.
المستعرضات التي تم العمل عليها هي:
Mozilla FireFox Version 28.0
89الصفحة
Google Chrome Version 34. 0.1847.131 m
Internet Explorer 11 Version 11.0.9600
Opera browser 9.6
90الصفحة
:السابعالفصل
الخاتمة والمقترحات التطويرية
في هذا الفصل:
.الخاتمة‹
المقترحات التطويرية.‹
91الصفحة
الفصل السابع: الخاتمة، المقترحات التطويرية:
الخاتمة: 7-1
وبشكل يحقق الفائدة لشريحة واسعة من تم العمل في المشروع على موقع ويب عملي يمكن وضعه قيد العمل مباشرة
المستخدمين، إن هذه النقطة بالذات كانت دافعا لي في تنفيذ المشروع، حيث غالبا ما تكون هناك هوة بين التطبيقات التي يتم
تصميمها طالبيا وبين ما يحتاجه سوق العمل.
ير متواجدة على الويب إلى اآلن وهي فكرة تقديم من أهم ما يتميز به الموقع هو ابتكاريته، حيث يحتوي على فكرة مهمة غ
االستشارة لألشخاص عبر االستفادة من خبرة اآلخرين، حيث تم االستفادة من هذه الخبرة التي يتميز بها هؤالء المستخدمين
هذا الموقع يتميزووضعها ضمن فائدة مستخدمين آخرين وبالتالي فإن هذه الفائدة تعمم ويستفاد منها من قبل أناس أخرين، أيضا
بالبناء القوي الذي تم بنائه عليه بحيث تصبح عملية تطويره ويانته أمرا ممكنا.
عملية البحث عن مكتبات النظم الخبيرة ومعايير تمثيل المعارف كانت مثمرة وبها تعلمت العديد من االمور التي كانت تشكل أمرا
رؤية مع الحصول على تطبيق متكامل لنظام خبير.مبهما بالنسبة لي، تم جالء هذا اإلبهام، ووضحت ال
كان هذا البحث فخرا لي، بذلت فيه من وقتي الكثير وأتمنى لو كان هناك وقتا إضافيا لكي أستمر بالعمل عليه، بحيث يظهر عند
لصيفية.عطلة اتسليمه بشكله الكامل، إال أن هذه ليست بالمشكلة الكبيرة، حيث سيتم العمل على المشروع بشكل أكبر في ال
أتمنى أن يكون هناك دعم أكبر في قسمنا لمواضيع عالم الويب، فهو مجال واسع ال نتطرق إليه في الجامعة أبدا، أيضا مواضيع
النظم الخبيرة يتم إغفالها في الجامعة على الرغم من قيمتها الكبيرة، وأهميتها في العالم التنكولوجي الحديث.
والمقترحات التطويرية:األعمال المستقبلية 7-2
إن الموقع لن يقف عند حدود الجامعة، بل سيتم العمل على تطويره ووضعه قيد العمل على شبكة الويب بحيث يحقق أكبر
المتخصصة AtomLabإفادة للمستخدمين، أيضا سيكون هناك استفادة عملية منه حيث سيكون عبارة عن موقع خاص لشركة
رية، وتقديم كورسات تدريبية ضمن هذه المجاالت.في تصميم وبناء لوحات تطوي
إن مجال الذكاء الصنعي في عالم الويب مجال واسع يمكن الدخول على العديد من المجاالت فيه ولك يبقى التكامل بين هذه العلوم
يصبح قويا الموقع بحيثككل هي القوة األساسية ألي تطبيق، لذلك سيتم العمل إلى إدخال تقنيات إضافية من الذكاء الصنعي إلى
ويتسم بلمسة واضحة من الذكاء، تجعل عملية تطويره والتفاعل معه أمرا جميال ومميزا، تختلف عن بقية المواقع، واألهم من هذا
بأنه سيكون قد بني بأيدي عربية.
92الصفحة
المراجع
مراجع أجنبية:
1- William Siler, James J. Buckley - Fuzzy expert systems and Fuzzy Reasoming Edition.1 –
Published simultaneously in Canada – 2005.
2- Harold Boley, Bruce Spencer - Semantic Web Techniques - CS 6999 SWT 3 October 2002.
3- Said Tabet, Harold Boley and Benjamin Grosof - RuleML, Use Cases and Industrial
Applications - W3C 2003.
مراجع عربية:
.2003 الذكاء اإلصطناعيأصول - د.م. خالد السيد -4
.css 2005صفحات األنماط االنسيابية - تهاني السبيت -5
.2012دقيقة 120في JQueryتعلم - مختار سيد صالح -6
:الكترونيةمواقع
7- https://ar.wikipedia.org/ 12/2/2014
8- http://www.alyaseer.net/ 5/4/2014
9- https://www.wikipedia.com/ 16/2/2014
10- http://www.tech-wd.com/wd/2010/01/06/xml-second-lesso/ 20/3/2014
11- http://www.ruleml.org 11/12/2013
12- http://www.cs.umd.edu/projects/plus/SHOE 12/4/2014
13- http://www.jboss.com/products/rules 6/4/2014
14- http://www.nxbre.org 7/12/2013
15- http://www.droolsdotnet.codehaus.org 12/4/2014
16- http://www.netbpm.org 11/3/2014
17- http://www.flexrule.com 5/1/2014
18- http://www.cdevworkflow.com/ 12/4/2014
19- http://www.codeplex.com/SimpleFlow 12/4/2014
20- http://www.csharpopensource.com/stateless.aspx 12/4/2014
21- http://www.csharpopensource.com/workflowenginedotnet.aspx 16/4/2014
22- https:// www.github.com/lafar6502/NGinnBPM 16/4/2014
23- http:// www.sourceforge.net/projects/sdsre/ 16/4/2014
24- http://www.arabteam2000-forum.com/ 5/5/2014
25- http://www.google.com/ 11/5/2014
26- http://www.Quora.com/ 11/5/2014
27- http://www.facebook.com/ 11/5/2014
28- http://www.igcseict.info/theory/7_2/expert/ 3/3/2014
93الصفحة
Tishreen University
Faculty of Mechanical and Electrical
Engineering
Department of Computer and Automatic
Control Engineering
Prepared by: Tareq Mulla
Supervised by: Dr. Hasn Al-Ahmad
2013 - 2014
Studying of expert system Libraries and
knowledge representation way
A Project prepared for achive degree B.sc in
Computer and Automatic Control Engineering