+ All Categories
Home > Documents > Graduation project documentation

Graduation project documentation

Date post: 15-Apr-2017
Category:
Upload: tareq-mulla
View: 186 times
Download: 13 times
Share this document with a friend
94
دراسة بحثية وتطبيقية حولبات مكت النظم الخبيرة وط رق تمثيل المعرفةجازةنيل ا بحث أعد للي. والتحكم الحاسبات في هندسة ااد: إعدد محم طارق م إشراف:حمد د.حسن ا2013 - 2014 جامعة تشرينلكهربائيةنيكية والميكاية الهندسة ا كللي والتحكم الحاسبات قسم هندسة ا
Transcript
Page 1: Graduation project documentation

رقوط الخبيرة النظم مكتبات حول وتطبيقية بحثية دراسة

المعرفة تمثيل

في هندسة الحاسبات والتحكم اآللي.بحث أعد لنيل اإلجازة

طارق محمد مال إعداد:

د.حسن األحمد إشراف:

2013 - 2014

جامعة تشرين كلية الهندسة الميكانيكية والكهربائية قسم هندسة الحاسبات والتحكم اآللي

Page 2: Graduation project documentation

1الصفحة

ب سم هللا الرحمن الرحي م

ال عل م إال قليلا من وما أوتيتم

اللهم ال علم لنا إال ما علمتنا إنك أنت العليم احلكيم، اللهم علمنا

وانفعنا مبا علمتنا، وزدان علماما ينفعنا،

Page 3: Graduation project documentation

2الصفحة

تصادق لجنة الحكم بعد قراءتها ومناقشتها لمشروع التخرج على أنه مالئم من حيث النوعية

واألهمية ليكون بحثا لمشروع التخرج .

أسماء لجنة الحكم :

ذه الصفحة مخصصة لوضع مالحظات لجنة الحكم:ه

Page 4: Graduation project documentation

3الصفحة

I

كلمة شكر

يقول هللا سبحانه وتعالى: "قال هذا من فضل ربي ليبلوني ءأشكر أم أكفر ومن شكر فإنما

يشكر لنفسه ومن كفر فإن ربي غني كريم"

لذلك فإن كلمة الشكر يجب أن تكون هلل سبحانه وتعالى، خالصة له، فهو الذي أعانني لكي أنهي

بلغني منزل علم، كنت جاهال، و ، علمني بعد إذإلكمالههذا البحث، وهيأ لي األسباب واألشخاص

ورفعني درجة في هذه الدنيا.

ه وسلم "من لم يشكر الناس، لم أيضا هو يأمرنا لنشكر الناس، يقول سيدنا محمد صلى هللا علي

يشكر هللا".

لذلك أتقدم بالشكر لكل من ساعدني وأعاني في هذا البحث لكي يصل لما هو عليه، ولكل شخص

كان له سهم ولو صغير في إنهائه.

أتقدم بالشكر بشكل خاص للدكتور حسن األحمد، الذي كان مشرفا على البحث، وكان يقدم لي

طلوبة التي أحتاجها، باإلضافة إلى النصائح التي كان يمدني بها.الخبرة والمعلومات الم

انوا كأتقدم بالشكر أيضا لألصدقاء واألخوة الذين كانوا معي وساعدوني في إنهاء هذا المشروع، و

.لهدوما عونا لي في جميع مراح

ويبقى الشكر األكبر لشخص أعجز عن شكره ولو بقيت بخدمته طوال عمري، شخص أعانني

ال درب الجامعة، وله الفضل أوال وأخيرا في كامل حياتي الجامعية.طو

لكل من علمني حرفا طوال السنين، وأمدني بمعلومة ولو بسيطة في مسيرتي من القلب أخيرا شكر

الجامعية، لكل الدكاترة في جامعة تشرين، والمهندسين، واألصدقاء الذين كان لهم فضل علي.

Page 5: Graduation project documentation

4الصفحة

I II

وطرق Net. بيئة في الخبيرة النظم مكتبات حول وتطبيقية بحثية دراسة

المعرفة تمثيل

البحث:ملخص

لمكتبات النظم الخبيرة التي تعمل على بيئة وتطبيقية دراسة نظريةعن يتحدث البحث

.Net ألي مشروع يتضمن نواة والمقارنة بينها ووضع معايير محددة الختيار المكتبة األمثل

ودراسة الطرق المتبعة في تمثيل المعارف.، لنظام خبير

مكتبات من مكتبات النظم الخبيرة، ودراسة أشهر الطرق 10إجراء الدراسة على قرابة الـ تم

وضع مزايا ومساوئ كل طريقة، أيضا تمثم المقارنة بينها، و، ضمنها تمثيل المعارف المتبعة في

ص به لتمثيل المعارف واستخدامه ضمن لمبرمج من وضع معيار خاا وضع الكيفية التي يمكن

تطبيقات الذكاء الصنعي.

يتضمن البحث أيضا بناء نواة لنظام خبير حيث تم االستفادة من الدراسة السابقة في اختيار مكتبة

تطبيق عملي لنظام خبير موجود على موقع ويب، يقدم مناسبة لبناء النواة، وتم آخرا برمجة

رفة الكورسات المناسبة لهم من مجموعة من الكورسات الموجودة االستشارة للمستخدمين في مع

اعتمادا على خبرة الناس اآلخرين الذين تابعوا هذه الكورسات، التطبيق تم ذلك على الموقع، و

ثم تم تطبيقه على موقع ومن Windows Application شكل تطبيق مكتبيأوال على تصميمه

لكي يمكن لعدد أكبر من المستخدمين االستفادة منه، والحصول على خبرات الناس من جميع ويب

أنحاء العالم.

تبة خاصة كتم استخدام آخر التقنيات في مجال الويب لتنفيذ المشروع العملي، وتم االستفادة من م

م استخدام معيار، والتي تتميز بعراقتها في هذا المجال، وتNxBREفي النظم الخبيرة وهي مكتبة

.RuleMLعالمي في تمثيل المعارف هو معيار

تمت دراسة توافقية الموقع قدر اإلمكان مع مستعرضات الويب الحديثة، واالهتمام بالنواة األساسية

للمشروع من حيث البناء البرمجي، وقابلية الصيانة والتطوير، كونه سيكون نواة لموقع ويب سيتم

.يترفعه على شبكة اإلنترن

Page 6: Graduation project documentation

5الصفحة

Page 7: Graduation project documentation

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

Page 8: Graduation project documentation

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الكود )

Page 9: Graduation project documentation

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

Page 10: Graduation project documentation

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

Page 11: Graduation project documentation

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............................................................................................................................................. المراجع

Page 12: Graduation project documentation

11الصفحة

الفصل األول:

مدخل إلى البحث

في هذا الفصل:

.الذكاء الصنعي في عالم الويب ‹

.توصيف متطلبات المشروع وأهدافه ‹

.مراحل الدراسة والعمل ‹

.التحديات التي واجهت المشروع ‹

.عن فصول التوثيقلمحة ‹

Page 13: Graduation project documentation

12الصفحة

مدخل إلى البحث: -األول الفصل

الذكاء الصنعي في عالم الويب: 1-1

إن الذكاء الصنعي من أكثر العلوم التي تلقى اهتمام من قبل العلماء في كافة المجاالت، ومن هذه المجاالت عالم الويب،

إن الذكاء الموجود في هواتفنا وفي األلعاب التي نلعبها وما نالحظه من ذكاء تبديه مواقع الويب لم يعد يخفى علينا، وبالرغم

اآلن وضع تعريف محدد للذكاء الصنعي، ولكن بشكل عام فإننا يمكن تعريف الذكاء الصنعي من ذلك فإنه لم يستطع أحد حتى

Artificial intelligence بأنه فرع من فروع علم الحاسبComputer science يعنى بمحاكاة السلوك الذكي عند ،

.Complex problem [7]اإلنسان، وفي حل المشكالت المعقدة

تعتبر مجاالت الذكاء الصنعي متعددة، فمنها ما هو استداللي، ومنها ما يبحث في عمليات البحث، ومنها ما يعتمد على

ل واحد، وهو الحصو باتجاه منحىالعمليات اإلحصائية في الحصول على معلومات مهمة، ولكن بشكل عام فإن أغلبها تنحى

عقل هي أن يكون عونا لإلنسان في مجاالت الحياة كافة، ال سيما في المجاالت على عقل يفكر كما اإلنسان، والغاية من هذا ال

التي يعتبر فيها اإلنسان قاصرا مثل البحث السريع، وعمليات االستنتاج الكبيرة، أو التي تتطلب عمليات حفظ ذاكرة كبيرة

[4]. بسرعة

ات من حولنا وال سيما في عالم الويب، فمن أكثر التطبيق وكما أسلفنا الذكر فإن الذكاء الصنعي أصبحنا نشعر به في كل مكان

Bingو Googleالذكية التي نتعامل معها بشكل دائم على شبكة اإلنترنيت، هي محركات البحث التي نستخدمها، مثل

ءومحركات البحث األخرى، هذه المحركات تتمتع بقدرة رهيبة على جلب المعلومات من مستودع هائل في أجزا Yahooو

بسيطة من الثانية، عملية البحث هذه حتما ال تتم بشكل اعتباطي، بل تتم بشكل ذكي ومدروس للحصول على أفضل المعلومات

وبزمن بسيط، ويتم لتنفيذ ذلك خوارزميات ذكية.

YAHOO[25] و Googleمحركات البحث (1-1)الشكل

" وهي خوارزميات تحليل للبيانات يتم ربطها مع Data Miningتسمى هذه الخوارزميات في عالم الويب "تنقيب البيانات

تقنيات الذكاء االصطناعي والعمليات اإلحصائية لتحليل هذه البيانات، وببساطه هي عملية تفتيش وبحث عن معلومات معينه

.[7] ومفيدة في حجم كبير من البيانات

Page 14: Graduation project documentation

13الصفحة

Data Mining[25] عملية تنقيب البيانات (2-1)الشكل

أيضا نجد في عالم الويب الكثير من المواقع المشهورة والتي تقدم مساعدات ومشورات في مواضيع متعددة بشكل ذكي،

مهمة وهو موقع متميز جدا بالذكاء الصنعي، يقدم ميزات ( 3-1)الذي يظهر في الشكل Coraنذكر من هذه المواقع موقع

وجميلة، حيث يمكن أن يقوم المستخدم بسؤاله عن شيء معين فيجيبه بإجابات دقيقة نوعا ما، وذلك اعتمادا على طرق

استدالل ذكية وخبرات سابقة لمستخدمين آخرين أضافوا خبرتهم ضمن الموقع.

Quora[26] موقع (3-1)الشكل

التعرف على أوجه األشخاص تموقعا مميزا مليء بخوارزميات الذكاء الصنعي، فخوارزميا FaceBookأيضا يعتبر موقع

أيضا الميزة المهمة الموجودة فيه وهي ميزة ( 4-1)الشكل FaceBookتعتبر مثاال على الذكاء الصنعي الذي يحويه موقع

ى هؤالء األشخاص الذين قد نعرفهم."أشخاص قد تعرفهم" مبنية على نظام خبير يقوم بعملية استداللية للحصول عل

FaceBook[27] موقع (4-1)الشكل

Page 15: Graduation project documentation

14الصفحة

توصيف متطلبات المشروع وأهدافه: 1-2

باإلضافة إلى دراسة NET. بيئةتدور فكرة المشروع حول دراسة نظرية للمكتبات المتخصصة بالنظم الخبيرة وذلك ضمن

العمل أيضا على تطبيق عملي لموقع ويب يحتوي على نظام خبير تكمن وتم ، XMLطريقة تمثيل المعارف باستخدام معايير

أهميته في مساعدة الزائر في تحديد الكورس الذي يناسبه من مجموعة من الكورسات الموجودة على الموقع، وذلك اعتمادا على

خبرات المستخدمين اآلخرين المنضمين للموقع.

توصيف المشروع: 1-2-1

المشروع بالنقاط التالية:يمكن توصيف محاور

إجراء دراسة نظرية على غالب المكتبات المتخصصة بالنظم الخبيرة، وتحديد أهم فوائدها ومساوئها. -

دراسة المعايير المستخدمة في تمثيل المعارف، مع تحديد الطريقة التي يتم بها وضع معيار شخصي. -

لى مجموعة من المعايير التي يمكن االعتماد تم وضع الدراسة قيد التجريب والتطبيق بحيث تم الحصول ع -

عليها لتحديد المكتبة المناسبة للمستخدم.

، واالعتماد عليها في NxBREدراسة المكتبة المستخدمة في بناء النظام الخبير بشكل كامل وهي مكتبة -

التطبيق العملي.

بة للمستخدم من قائمة منتم تصميم تطبيق ويب يعتمد على النظم الخبيرة في تحديد الكورسات المناس -

الكورسات وذلك حسب االختصاص وحسب خبرة األشخاص األىخرين المنضمين للموقع.

الخاصة بالموقع قوية بحيث يصبح من السهولة تطويره، وصيانته، والعمل على Coreالعمل على جعل النواة -

وضه قيد العمل على شبكة الويب.

ة لجعل التطبيق محققا لكامل المواصفات.االعتماد على آخر تقنيات الويب الحديث -

توصيف األهداف: 1-2-2

استخدام الخبرات التي يملكها الناس على مستوى العالم، وتوظيفها بما يحقق فائدة ألناس آخرين. -

الحصول على موقع على شبكة األنترينت يمكن المستخدمين من استشارته فيما يتعلق بظروف حياتهم -

يمر بها معظم الناس.االعتيادية، والتي

الحصول على موقع ويب تفاعلي، متكامل، يتميز بالذكاء، وذو فائدة عملية للمستخدمين، ويمكن االعتماد عليه -

لحل مشكلة معينة.

تحقيق الفائدة في مجال معين لشريحة واسعة من المستخدمين عبر جعل التطبيق موجودا على شبكة الويب. -

ى شبكة الويب، كما يفعل العديد من الطالب الجامعيين في العالم، كصاحب وضع بصمة مهمة لطالب سوري عل -

. FaceBookموقع

Page 16: Graduation project documentation

15الصفحة

:مراحل الدراسة والعمل 1-3

تم العمل على المشروع طوال السنة األخيرة، وقد تم تقسيم العمل على مجموعة من الخطوات المتتالية بحيث تم البدأ

هذه الخطوات بالترتيب هي:بكل مرحلة حين االنتهاء من سابقتها،

دراسة موضوع الذكاء الصنعي، والنظم الخبيرة بشكل أساسي للحصول على معلومات واسعة وقوية عن مجال -1

البحث.

تم إجراء عملية بحث واسعة في مكتبات النظم الخبيرة على شبكة األنترنيت والحصول على آخر إصداراتها، -2

عنها، أو تطبيقات تعتمد عليها.باإلضافة إلى البحث عن أي مراجع تتحدث

المرحلة الثالثة كانت في عملية البحث عن أشهر المعايير المستخدمة في تمثيل المعارف، ومدى انتشارها، -3

واعتمادها عالميا.

.NxBREإجراء عملية دراسة واسعة حول المكتبة المختارة من مكتبات النظم الخبيرة، وهي مكتبة -4

اعتمادا على مبادئ برمجية عالمية، بحيث يمكن تطويرها وصيانتها مستقبال.بناء نواة النظام الخبير -5

عملي يستخدم نواة النظام الخبير، وهو موقع ويب متخصص بتقديم النصائح للمستخدمين في مجال البدأ بتطبيق -6

تمد يع، ويانةصوي، قابل للتطوير، وقابل للبحيث يكون ذو بنيان ق الكورسات المناسبة لهم، وقد تم تطوير الموقع

في مجال الويب.على آخر التقنيات

تجريب الموقع والعمل على نشره بين األشخاص، لكي يتم تجريبه والتأكد من توافقه مع المتصفحات األخرى، -7

وإصالح األخطاء التي تحتويه.

التحديات التي واجهت المشروع: 1-4

واجهت المشروع تحديات كثير كان أهمها ما يلي:

الكبير في مراجع النظم الخبيرة على شبكة الويب، وخصوصا حين يتعلق األمر ببرمجة تطبيقات هذه الشح -

النظم.

الحاجة إلى قوة كبير في مصطلحات اللغة اإلنكليزية التخصصية نظرا إلى أن غالب الشروحات عن المكتبات -

تكون باللغة اإلنكليزية.

مما شكل عائقا وتحديا كبيرا لكي ينتهي بالزمن المحدد. كثرة التقنيات واللغات المستخدمة في المشروع -

ما تم إنجازه سابقا: 1-5

الدخول إليه، وتحاول تطبيق مفاهيمه ضمن يعتبر هذا البحث من المواضيع الحديثة التي تعمل غالب الشركات على

ل الموقع مفيدا للمستخدمين.تطبيقاته، وخاصة إذا كان األمر يتعلق بالويب، حيث يكون للخبرة أهمية كبيرة في جع

و FaceBook، ومواقع التواصل االجتماعي مثل Amazonمن المواقع التي تطبق النظم الخبيرة موقع الكتب المشهور

Twitter أيضا يوجد مواقع متخصصة بالمعرفة فقط وبشكل صريح مثل موقع ،Cuora.

خبيرة، التجارية التي تباع من قبل شركات وتطبق مبادئ النظم البينما على تطبيقات سطح المكتب فيوجد العديد من التطبيقات

بحيث يستفيد الزبون من هذه الخدمات ضمن شركته، أو للغاية التي يريد شراؤه من أجلها.

Page 17: Graduation project documentation

16الصفحة

لمحة عن فصول التوثيق: 1-6

تم تقسيم التوثيق إلى سبعة فصول رئيسية:

وجود الذكاء الصنعي في عالم الويب، وعن أهم المواقع والتقنيات الذكية في الفصل األول، تم الحديث عن الفائدة العملية من

التي تتواجد من حولنا من دون أن نشعر، وكذلك تم التطرق إلى توصيف متطلبات المشروع وأهدافه، والخطة التي تم اتباعها

في العمل.

ة لنظم الخبيرة, ويتألف هذا الفصل من عدتم في الفصل الثاني مناقشة المواضيع المرتبطة بصلب موضوع المشروع وهو ا

أقسام. تم في القسم األول منه استعراض سريع للمكونات التي يتألف منها النظام الخبير، أيضا تم الحديث في القسم الثاني

عن خصائص النظم الخبيرة، وتم اختتام الفصل بميزات ومساوئ النظم الخبيرة.

وطرق استخدامها، والفوائد التي نستفيدها منها، أيضا تم الحديث عن معايير XMLة يعتبر الفصل الثالث توصيفا عمليا للغ

المستخدم في التطبيق. RuleMLتمثل المعارف مع التركيز على شرح المعيار

ASP.NETفي الفصل الرابع تم توضيح آخر تقنيات الويب الحديثة التي تم استخدامها في المشروع، وتم الحديث عن لغة

جة مواقع الويب.في برم

وفيه تم الحديث عن NET.أما الفصل الخامس فهو يحوي وصفا وشرحا ألهم مكتبات النظم الخبير الموجودة على بيئة الـ

المستخدمة في التطبيق. NxBREأشهر مزايا ومساوئ كل مكتبة على حدى مع التركيز على شرح مكتبة

شرح الطرق التي تم االستناد عليها في اختيار مكتبة النظام الخبير وطريقة وطريقة بناء نواة النظام الخبير وتطبيق الويب،

تمثيل المعارف موجودة في الفصل السادس.

وفي النهاية تم اختتام التوثيق بفصل يتحدث عن األفكار المستقبلية ويتبعها مجموعة من المقترحات التطويرية التي كنت آمل

.الحييكن من صالقيام بها ولكن الوقت لم

Page 18: Graduation project documentation

17الصفحة

:الثانيالفصل

النظم الخبيرة

في هذا الفصل:

.م الخبيراالنظتعريف ‹

.مكونات النظام الخبير‹

.خواص النظام الخبير‹

.الخبير اماستخدامات النظ‹

م الخبير.اميزات النظ‹

.م الخبيراعيوب النظ‹

Page 19: Graduation project documentation

18الصفحة

النظم الخبيرة: -الثاني الفصل

متعلقة بالخبرة البشرية برنامجالنظام الخبير هو يحاول النظام الخبير القيام بعمليات تعتبر ، حيثمصمم لينفد مهاما

[7].عادة من اختصاص البشر ويتضمن الحكم واتخاد القرارات

لبشريون كمية هائلة من المعرفة المتخصصة في مجاالت عملهم لذا فإن النظم الخبيرة تستند عادة إلى قواعد ا يملك الخبراء

نشأت النظم الخبيرة كفرع من فروع ، وقدمعرفة تتضمن عدد هائال من قواعد المعطيات التي تحوي معلومات المعرفة

[7].الذكاء االصطناعي

:الخبيرم االنظتعريف 2-1

ذلك عن و ،لخبير البشري في مجال خبرة معينتحاكي آداء ا حاسوبية ف النظم الخبيرة بإنها عبارة عن برامجرنع يمكن أن

طورت لتبدو أنها تفكر كاإلنسان فتقوم باالستنتاج، ين، وقدر أو أكثر في مجال معطريق تجميع واستخدام معلومات وخبرة خبي

ى مهامها بسرعة ومهارة فائقة، وخاصة التي تطلب عادة متخصص مدربا تدريبا ولديها القدرة على التعلم من أخطائها، وتؤد

جيدا في ميدان معين من الخبرة، ويعنى هذا أن النظام الخبير يؤدى المهام التي يؤديها الخبير البشرى في مجاله، وهو يعمل

.[4] عمل فيها النظام الخبيركأداة مساعدة في اتخاذ القرارات وحل والمشكالت داخل إحدى الميادين التي ي

المستخدمة في االستفادة من الخبرة Artificial Intelligenceتعد النظم الخبيرة إحدى تطبيقات الذكاء االصطناعي

الموجودة عند أشخاص محددين، وقد اكتسب هذا العلم الحديث أهمية ملحوظة في السنوات األخيرة، نظرا لتطبيقاته المتعددة

بيرة كفي كافة ميادين الحياة كالطب، والهندسة، والكيمياء، والتعليم، وكذلك في المكتبات والمعلومات، ولما يحققه من فائدة

.[8] لجميع المستفيدين من هذه الخبرة

يوضح الشكل التالي مخططا توضيحيا لفكرة النظام الخبير:

[28] مخطط توضيحي لفكرة النظام الخبير (1-2)الشكل

العالم "براجعان" سبعة نقاط مستقلة تشكل تعريفا شامال للنظم الخبيرة ويجب أن تتصف بها النظم الخبيرة، هذه " أدرج

:[8] النقاط هي

Page 20: Graduation project documentation

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معالجة الحقائق، ويمكن أن يتم بناء قاعدة المعارف باستخدام قواعد البيانات أو باستخدام ملفات نصية أو ملفات

المكونات التالية: والتي تتكون منيقاس مستوى أداء النظام الخبير بداللة حجم ونوعية قاعدة المعرفة التي يحتويها،

Page 21: Graduation project documentation

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

واجهة االستخدام هي صلة الوصل بين تطبيق النظام الخبير والمستخدم، والمستخدم ال يرى من التطبيق سوى هذه

االعتناء بها وذلك ألن المستخدم ال يتعامل مع النظام الخبير مباشرة، بل يتعامل معه عبر هذه الواجهة، لذا يجب االهتمام و

الواجهة، فإذا كانت هذه الواجهة ال تحقق السهولة والبساطة التي يريدها المستخدم فإن كل النظام الخبير ال يعد يهمه مهما

ي النظم الخبيرة.كان قويا ومتينا، لذلك فبناء الواجهة أمر مهم، وأساسي ف

Page 22: Graduation project documentation

21الصفحة

يمكن أن تكون واجهة االستخدام بأي شكل، ولكن يجب أن تحتوي بالضرورة على كل ما يلزم المستخدم، وتؤمنه له بشكل

سلس وبسيط من دون تعقيد، والسبب أن الشخص الذي سيستفيد من النظام الخبير هو شخص عادي، ال يهمه أبدا ما وراء

ي يتفاعل بها مع هذا النظام، ولذلك يمكن أن تكون واجهة المستخدم واحدة من عدة خيارات:التطبيق، ولكن يهمه الطريقة الت

قد تكون أسئلة تحتوي على أجوبة محددة، يقوم النظام بطرحها على المستخدم، وهو يجيب عليها. -1

قد تكون عبارة عن قوائم، أو شاشة رسومية. -2

بكتابة المشكلة بلغة طبيعية، ويقوم النظام بفهم النص أوال ثم يمكن أن تكون بشكل متطور، يقوم فيه المستخدم -3

تحليله لمعرفة مراد المستخدم.

[4] مخطط عام للمكونات التي يمكن أن توجد في النظام الخبير (3-2)الشكل

خواص النظام الخبير: 2-3

حيث ،يعتمد على قاعدة معارف فقط كونهوذلك ل النظام الخبير بأنه نظام ذكي،يصنفون يوجد بعض العلماء الذين ال

يجب أن ننتبه إلى أنه ليس كل نظام يستند إلى قاعدة المعرفة هو نظام خبير، بل يجب أن يمتلك هذا النظام القدرة على التفسير

ي رواالستنتاج للوصول إلى القرارات، وطلب معلومات إضافية كما يفعل اإلنسان الخبير في عملية التفسير والتحليل والتح

.[1] وخاصة في المجاالت التي تكون فيها الحقائق غير كاملة أو غير أكيدة

وبشكل عام فإن خواص النظام الخبير يمكن أن نجملها بما يلي:

. سهلة االستخدام ألي مستخدم سواء مستخدم عادي أو مطور -

. قادرة على التعلم من الخبراء بطريقة مباشرة وغير مباشرة -

. أي حلول تتوصل إليها مع توضيح طريقة الوصول إليهاقادرة على تفسير -

تعمل بمستوى علمي واستشاري ثابت ال تتذبذب. -

.ذوي الخبرة البسيطة قادرة على تعليم غير المتخصصين -

يتطلب بناؤها تمثيل كميات هائلة من المعارف الخاصة بمجال معين . -

. حدود التطبيق قادرة على االستجابة لألسئلة البسيطة وكذلك المعقدة في -

ظهر على الحالة الكاملة، هؤالء األشخاص هم:يإن النظام الخبير يحتاج إلى تضافر جهود بعض األشخاص لكي

Page 23: Graduation project documentation

22الصفحة

مهندس النظام والذي يقوم بتصميم النظام، وووضع آلية االستنتاج، والعمليات التي تقوم بالقراءة من قاعدة المعارف -1

والحفظ فيها.

يمتلك الخبرة المراد إدخالها ضمن النظام.الخبير: وهو الشخص الذي -2

مهندس المعرفة: وهو الشخص الذ يقوم بتحويل خبر الشخص الخبير، إلى رموز يفهمها النظام الخبير. -3

المستخدم: وهو الشخص الذي يستفيد من النظام الخبير. -4

[4] طريقة التواصل بين مكونات النظام الخبير (4-2)الشكل

الخبير: اماستخدامات النظ 2-4

استخدمت النظم الخبيرة في نطاق واسع من الميادين والمجاالت مثل:

الطب وتشخيص األمراض. -

السياحة )تخطيط وتنظيم الرحالت الجوية والبحرية والبرية(. -

الطقس ) تحديد األحوال الجوية(. -

مساعدة رجال األعمال في اتخاذ القرارات(. -التجارة )تحليل األسواق -

)مراقبة خطوات التصنيع(.الصناعة -

تحليل المواقف وإعداد الخطط(. - العلوم العسكرية )اتخاذ القرارات وقت نشوب المعارك -

باإلضافة إلى مجاالت أخرى طبقت فيها النظم الخبيرة مثل الزراعة، الكيمياء، الفضاء، اإللكترونيات، الجيولوجيا.

Page 24: Graduation project documentation

23الصفحة

:ام الخبيرميزات النظ 2-5

قوم العلماء حيث يتتميز النظم الخبيرة بالعديد من المميزات التي تدفع الناس إلى الحصول عليها، وباألخص الشركات،

:[7] بتصميم هذه النظم، ويدفعهم لذلك مجموعة من األمور، أهمها

تخدام إلسوخصوصا في التخصصات الهامة الكثيرة ا ، اإلحتفاظ بالخبرة والمعرفة من اإلندثار أو اإلنقراض -

.أو النادرة

.مما يحفظ الوقت و المال والجهد ،حل المشاكل -

.زيادة الخبراء في مجال تطبيق النظام الخبير -

. تقليص االعتماد على الخبراء البشر -

توظف النظم الخبيرة مستوى عالي من الخبرات التي تمكن المستخدم من اكتساب الخبرة في المعرفة الخاصة -

.بالنظام الخبير

في بعض األمور الروتينية. التخلص من الشعور بالتعب والملل -

:م الخبيراالنظ عيوب 2-6

:[𝟕] بالرغم من الفوائد العظيمة للنم الخبيرة إال أننا ال نالحظ وجودها، إن السبب في ذلك يعود لعدة أمور، أهمها

. ذات تكلفة عالية مقارنة بالتطبيقات التقليدية -

. في النظم اإلدارية واسترجاع المعلومات المتكاملة نظام تطبيقها محدود -

.افتقاد المرونة -

.عدم القدرة على إعطاء تفسيرات متعمقة -

.صعوبات التحقق والتثبت -

.التعلم الضئيل من الخبرة -

Page 25: Graduation project documentation

24الصفحة

:الثالثالفصل

وطرق تمثيل XMLة لغ

المعارف

في هذا الفصل:

.XMLلغة الترميز الموسعة ‹

.XMLطرق تمثيل المعارف باستخدام ‹

.للنظم الخبيرة معايير تمثيل المعارفأشهر ‹

.RULEMLمعيار ‹

Page 26: Graduation project documentation

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

Page 27: Graduation project documentation

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الوحدات األخرى، وتنتهي باألوراق

ير أن الفرق بين الشجرة الحقيقية وشجرة البيانات هو أن جذر الشجرة الحقيقية يكون في األسفل بينما تكون أوراقها في غ

األعلى، لكن جذر شجرة البيانات يكون في األعلى وتكون األوراق في األسفل.

ة نفس االسم، فالوصول إلى الوحدات ولكل وحدة من هذه الوحدات اسما تعرف به، وال يوجد حرج من أن تحمل أكثر من وحد

ال يعتمد على اسمها فقط، بل يعتمد على المسار الذي تعبره لتصل إليها.

وشجرة البيانات تنتهج نهجا وراثيا ، وتحكمها مجموعة من القواعد، هذه القواعد هي:

Page 28: Graduation project documentation

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>

Page 29: Graduation project documentation

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

Page 30: Graduation project documentation

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

Page 31: Graduation project documentation

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

Page 32: Graduation project documentation

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الـ

Page 33: Graduation project documentation

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.

Page 34: Graduation project documentation

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>

Page 35: Graduation project documentation

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>

Page 36: Graduation project documentation

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>

Page 37: Graduation project documentation

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) >

Page 38: Graduation project documentation

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>

Page 39: Graduation project documentation

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>

Page 40: Graduation project documentation

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>

Page 41: Graduation project documentation

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

Page 42: Graduation project documentation

41الصفحة

:الرابعالفصل

مكتبات النظم الخبيرة

في هذا الفصل:

.NXBREمكتبة ‹

.NXBREأنواع محركات االستدالل لمكتبة ‹

.NXBREأنواع المعارف المدعومة من قبل ‹

بالنظم الخبيرة.مكتبات أخرى متخصصة ‹

Page 43: Graduation project documentation

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محرك من نوع ‹

Page 44: Graduation project documentation

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يتم إنشاء محرك

Page 45: Graduation project documentation

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>

Page 46: Graduation project documentation

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();

Page 47: Graduation project documentation

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>

Page 48: Graduation project documentation

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};

Page 49: Graduation project documentation

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();

Page 50: Graduation project documentation

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

Page 51: Graduation project documentation

50الصفحة

، حيث يتكون من حالة بداية Machine stateر إلى المخططات التدفقية وحاالت اآللة إن شكل هذا المحرك مشابه بشكل كبي

وحالة نهاية وبينهما مجموعة من الحاالت المتنوعة والحلقات.

، وكمثال على هذه XMLمن خالل ملف مكتوب بصيغة Processتكون مهمة المكتبة إنشاء مخططات لعملية سير العمليات

المخططات:

NetBpm[16] ( مثال عن قواعد مكتبة 4-4)الشكل

يمكن النظر إلى المكتبة وكأنها مزيج من مجموعة من المكونات، تتكامل مع بعضها لتشكل المكتبة، كل مكون من هذه المكونات

له واجهة واضحة المعالم.

م إدخالها من جة( وانتظار القواعد التي يتإن عملية تنفيذ ومعالجة القواعد يتم بشكل مستمر عن طريق التبديل بين التنفيذ )المعال

قبل المستخدمين الخارجيين، حيث يتم معالجة القواعد عند إضافتها مباشرة.

NetBpm Processالمكون االول يسمح للمستخدمين بإضافة توصيف قواعد المعالجة عبر التطبيق، حيث يتم استخدام ما يسمى

Definition Language (nPdl).

، أيضا يتميز بقابليته للقراءة من قبل اإلنسان، في هذا التوصيف يتم استخدام XMLإن هذا التوصيف بسيط وقوي الستخدامه

وهو عبارة عن ملف مضغوط يعتبر حاوي للعمليات process archiveعملية واحدة والتي تكون محتواة بداخل ما يسمى

ويحتوي كافة معلومات العملية.

اني، وهي المكون الثيتم إنشاءه أوتوماتيكيا ونشره داخل التطبيق، وبعد نشره تتفعل الواجهة الخاصة ب Process archivesملف

الواجهة الخاصة بإدخال القواعد من قبل المستخدمين الخارجيين وتدعى هذه المرحلة بمرحلة القراءة للعملية.

activitiesإلى النشاطات actorsبحساب الحالة التالية من العملية وإسناد المشغلين NetBpmعندما يتم إنجاز هذه المرحلة تبدأ

نجازها.والتي يجب أن يتم إ

بقدح هذه األحداث. NetBpmأحداث مهمة تحدث في خلف هذه المشاهد حين يتم إجراء الحسابات، حيث تقوم

Page 52: Graduation project documentation

51الصفحة

يمكن تمثيل هذه العمليات بالمخطط التالي:

NetBpm[16] عمليات المكتبة ( 5-4الشكل )

معه الكود الذي يمثله، إن المخطط في الجانب الي، وتظهر لنأخذ مثاال عن توصيف لمخطط تدفقي، يظهر هذا المخطط بالشكل الت

يظهر حالة البداية وهي النقطة المطموسة باللون األسود، ويظهر حالة النهاية، وهي الدائرة البيضاء التي تحتوي نقطة سوداء.

يتم في الكود تنفيذ حلقة تستمر إلى أن ينعدم شرط ما.

Page 53: Graduation project documentation

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

Page 54: Graduation project documentation

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باستخدام ملف مبني بلغة -

الخاصة: حيث يمكن للمطور أن يكتب لغته الخاصة ويدخلها إلى المكتبة.أو باستخدام لغة المطور -

Page 55: Graduation project documentation

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 &lt; 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

Page 56: Graduation project documentation

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)')

) ) )

Page 57: Graduation project documentation

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

Page 58: Graduation project documentation

57الصفحة

من أجل عمليات االستدالل، ومخصصة للعمل على forward chainingعبارة عن مكتبة خفيفة تستخدم خوارزمية [𝟐𝟑]

في تمثيل القواعد والحقائق، ولكن هذه البساطة بإمكانها >XMLوتتميز بسهولتها والتي تأتي من استخدامها للغة NET.بيئة

إنجاز وحل العمليات المعقدة.

:Statelessمكتبة 4-9

وتعتمد بشكل أساسي على بناء مخططات تدفقية تمثل طريقة العمل state machinesمكتبة متخصصة في إنشاء الـ [𝟐𝟎]

.#Cوالتي يمكن كتابتها مباشرة باستخدام لغة

:Softix.Orchestrationمكتبة 4-10

لتسمح للمبرمجين بإنشاء وتشغيل المخططات NET.وكتبت بلغات workflowمكتبة بسيطة تعتمد على محرك [𝟏𝟗]

التدفقية.

Page 59: Graduation project documentation

58الصفحة

:الخامسالفصل

تقنيات الويب الحديثة

في هذا الفصل:

بناء تطبيقات الويب.‹

.ASPتقنية ‹

.AJAXتقنية ‹

.JQUERYمكتبة ‹

.BOOTSTRAPمكتبة ‹

Page 60: Graduation project documentation

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();"> &nbsp;&nbsp;&nbsp; <input type="reset" value="Clear"> </form> </body> </html>

Page 61: Graduation project documentation

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>

Page 62: Graduation project documentation

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 إدارة األحداث لكل

Page 63: Graduation project documentation

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 .

Page 64: Graduation project documentation

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:

Page 65: Graduation project documentation

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”); }

Page 66: Graduation project documentation

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(); }

Page 67: Graduation project documentation

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>

Page 68: Graduation project documentation

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)الشكل

Page 69: Graduation project documentation

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>

Page 70: Graduation project documentation

69الصفحة

Page 71: Graduation project documentation

70الصفحة

:السادسالفصل

نتائج الدراسة والتطبيق

العملي

في هذا الفصل:

معايير استخدام مكتبة النظام الخبير.‹

اختيار طريقة تمثيل المعارف.‹

اختيار محرك االستدالل.‹

اختيار واجهة االستخدام.‹

التطبيق العملي للمشروع.‹

Page 72: Graduation project documentation

71الصفحة

:نتائج الدراسة والتطبيق العمليالفصل السادس:

التي تم اختيارها بعد الدراسة النظرية ،NxBREوقد تم بنائها باالستفادة من مكتبة بناء نواة لنظام خبير،تم في البحث

واء تطبيقات سطح المكتب أو الويب.أي نوع من التطبيقات سفي يمكن استخدامها لمكتبات النظم الخبيرة، هذه النواة

التي تناسب Coursesيقوم على فكرة تقديم االستشارة في الكورسات Web applicationتطبيق ويب برمجة أيضا تم

شخص ما.

ب.، وبنية تطبيق الوينواة النظام الخبيرالدراسة النظرية، بنية نتائج نقاط أساسية وهي: 3سيتم الحديث عن الفصلفي هذا

:الدراسة النظرية 6-1

يلي:أشهر، وتم فيها ما 4استغرقت الدراسة النظرية مدة

دراسة الموضوع قيد البحث وهو النظم الخبيرة، وتحصيل المعلومات التي تدور حول مفاهيمه. -

البحث عن مكتبات النظم الخبيرة، وقراءة التوثيقات والمراجع الخاصة بها. -

البحث في معايير تمثيل المعارف، والطرق المتبعة في توصيف المعيار. -

وقواعد تحكم عملية اختيار مكتبة متخصصة في النظم الخبيرة.تم اختتام الدراسة بوضع معايير -

المستخدم في تمثيل RuleMLالستخدامها في تطبيق الويب، وتمت دراستها ودراسة المعيار NxBREاختيار المكتبة -

المعارف.

معايير اختيار مكتبة النظام الخبير: 6-1-1

هذه المواضيع بناء عليبينها بعدة مواضيع، و واضح، حيث تختلف فيما المتوفرةإن التمايز بين مكتبات النظم الخبيرة

هي:النظم الخبيرة، هذه االعتبارات في تطبيقات تم وضع اعتبارات يمكن للمطور أن يستفيد منها

سماحية التعامل مع المكتبة: -1

والمقصود بها طريقة التعامل مع أكواد المكتبة، حيث يوجد بعض مكتبات النظم الخبيرة مجانية بالكامل، بل ويمكن رؤية

وبعضها اآلخر تكون منتجا تجاريا open sourceاألكواد الخاصة بها وهي تندرج تحت مفهوم

تكون تجارية ويمكنتحتاج إلى شراء لكي يمكن التعامل معها، ويوجد بعض المكتبات التي ال

استخدام المكتبة بشكل مجاني إلى أنه ال يمكن رؤية األكواد الخاصة بها، وقد تم ذكر العديد من

مكتبات النظم الخبيرة في البحث السابق مع توضيح ماهية التعامل معها.

المستخدمة في التطبيق بأنها مجانية ومفتوحة المصدر بالكامل، وهذا ما NxBREتتميز مكتبة

يعطيها قوة كبيرة ومرونة، حيث يمكن التعديل عليها بحسب حاجة المستخدم لها.

أنواع محركات االستدالل التي تدعمها المكتبة: -2

Page 73: Graduation project documentation

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ود توثيق خاص لألصناف والـ والمكتوب من قبل األشخاص القائمين على المكتبة، أيضا وج

فضال على مجموعة من التطبيقات المنشورة على مواقع الويب والموجودة ضمن التطبيق الخاص بالمكتبة والتي تعتبر شاملة

ومحققة لجميع إمكانيات المكتبة، وهذا األمر غير موجود في المكتبات األخرى.

Page 74: Graduation project documentation

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وقد تم إجراء

يعتبر هذا المعيار مخصصا لتمثيل المعرفة في عالم الويب واإلنترنيت، ولذلك فهو متوافق تماما مع الويب، -

ويتميز بسهولة نقله عبره.

يز بالبساطة والقوة معا.يتم -

له مراجع متعددة وتوثيقات عديدة مما يجعل التعامل معه أمرا بسيطا. -

Page 75: Graduation project documentation

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األشكال )توضح

Page 76: Graduation project documentation

75الصفحة

Flow engine[14] ( طريقة عمل المحرك 2-6الشكل )

Page 77: Graduation project documentation

76الصفحة

Inference engine[14] طريقة عمل المحرك (3-6الشكل )

للغاية حيث يقوم بوضع الحقائق في ذاكرة محددة بينما يضع النتائج إن الطريقة التي يتعامل معها المحرك االستداللي مميزة

اكرة:ذأنواع من ال 3القواعد ضمن ذاكرة أخرى حيث يتخلص منها حين يكون ليس هناك داع لبقائها، ويوجد

.Globalالذاكرة من نوع -

Isolatedالذاكرة من نوع -

.Empty Isolatedالذاكرة من نوع -

اآللية التي يتعامل معها محرك االستدالل مع الذاكرة:يوضح المخطط التالي

Page 78: Graduation project documentation

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يوضح الشكل )

االرتباط بين كل طبقة.

Page 79: Graduation project documentation

78الصفحة

طبقات نواة النظام الخبير (5-6الشكل )

طبقات نواة النظام الخبير بشكل تفصيلي (6-6الشكل )

:Inefernce Engineالـ طبقة 6-2-1

عالجة مإجراء العمليات األساسية من يتم فيها ت، وتعد الطبقة الخاصة بالتعامل مع المكتبة مباشرة من أهم الطبقا

لقواعد، وإضافة قواعد جديدة، والتعديل على قواعد سابقة، كل ذلك يتيح المرونة للتطبيق، ويجعل إمكانية التعديل عليه ل

ممكنا.وصيانته، أمرا

والتي تتعامل مع المكتبة مباشرة. Inference Engine( في األسفل الطبقة 1-6يبين الكود )

Page 80: Graduation project documentation

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());

Page 81: Graduation project documentation

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); } }

Page 82: Graduation project documentation

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>

Page 83: Graduation project documentation

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>

Page 84: Graduation project documentation

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>

Page 85: Graduation project documentation

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>

Page 86: Graduation project documentation

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تم استخدام قاعدة الببيانات: -

Page 87: Graduation project documentation

86الصفحة

( الصفحة الرئيسة للموقع.7-6ين الشكل )يب

الويب تطبيق النظام الخبير على (8-6الشكل )

:الموقع هيكلية 6-3-2

ببرمجة الموقع بالدرجة األولى، حيث تم بناء الكود اعتمادا على مبادئ برمجية عالمية تجعل من تم االهتمام

ر لقواعد البيانات، حيث تدي خصصةعملية تطوير الموقع في المستقبل أمرا ممكنا، من أهم هذه القواعد تصميم طبقة م

هذه الطبقة كل العمليات الخاصة بقاعدة البيانات الخاصة بالتطبيق من إضافة وحذف وتعديل، وبنيت على أسس البرمجة

غرضية التوجه.

مكونات أساسية: 4تتألف بنية الموقع من

ة صفحات الموقع وطريقالجزء الخاص بالتصميم: وهو الجزء الذي يعتمد على تصميم موقع الويب وتشكيل -

,BootStrapمثل عرض البيانات، تم في هذا الجزء االعتماد على آخر تقنيات ومكتبات التصميم

JCarousel، واستخدام البرمجة من جهة العميلJavaScript إلضافة الديناميكية للموقع JQuery, AJAX.

وبلغة ASP.NETم، وتم فيه استخدام تقنية جزء األكواد البرمجية: وهو الجزء الخاص بالكود من جهة المخد -

C#:تم في هذا الجزء تصميم أدوات الستخدامها عدة مرات، وتم بعدها تقسيم عمليات المعالجة، إلى قسمين ،

.قسم خاص بعمليات مستخدمين الموقع

قسم خاص بعمليات الـAdmin.

Page 88: Graduation project documentation

87الصفحة

، SQL Serverالجزء الخاص بالتعامل مع قاعدة البيانات: تم التعامل في الموقع مع قاعدة بيانات من نوع -

للتعامل مع جداول قاعدة البيانات بشكل غرضي التوجه، حيث تقوم هذه التقنية LINQوتم االعتماد على تقنية

.Classesعلى تحويل الجداول والسجالت واألعمدة إلى

الخبير: وهي النواة التي تم تصميمها في البحث حيث تم استخدامها ضمن الموقع. نواة النظام -

( هيكلية الموقع، والطبقات التي يحتويها.8-6يبين الشكل )

الويب موقعهيكلية (9-6الشكل )

:صفحات موقع الويب 6-3-3

ب يتطلبها أي موقع وي يوجد العديد من الصفحات ضمن موقع الويب، حيث تم تصميم غالب الصفحات التي

من تسجيل الدخول، والتواصل مع أصحاب الموقع لالستفسار عن شيء معين، وصفحات الـمسؤول عن

الموقع،باإلضافة إلى صفحات إضافية توضح فيها عمليات النظام الخبير، والقواعد التي يحتويها والحقائق التي يتم

استنتاجها.

تي تبين الكورسات التي تناسب المستخدم الذي يتصفح الموقع، والتي يتم أهم الصفحات ضمن الموقع هي الصفحة ال

استنتاجها عن طريق النظام الخبير، يتم فيها توضيح كل كورس مع عدد الساعات التي يحتاجها، واسم المدرس، وبعض

لخبير.بل النظام االتفاصيل األخرى، أهم ما يعرض في هذه الصفحة هي تقييم الكورس والذي يتم استنتاجه أيضا من ق

( صفحة الكورسات.9-6يوضح الشكل )

Page 89: Graduation project documentation

88الصفحة

صفحة الكورسات (10-6الشكل )

:الموقع توافقية تجريب 6-3-4

4تم تجريب التطبيق بحيث يحقق أكبر توافقية مع مستعرضات الويب بآخر إصداراتها وقد تم العمل على

توافق مع ال نسبة كبيرة منإن المكتبات التي تم استخدامها تحقق مستعرضات ويب تعمل على غالب أنظمة التشغيل،

غالب مستعرضات الويب، وهذا ما سهل عملية االختبار.

المستعرضات التي تم العمل عليها هي:

Mozilla FireFox Version 28.0

Page 90: Graduation project documentation

89الصفحة

Google Chrome Version 34. 0.1847.131 m

Internet Explorer 11 Version 11.0.9600

Opera browser 9.6

Page 91: Graduation project documentation

90الصفحة

:السابعالفصل

الخاتمة والمقترحات التطويرية

في هذا الفصل:

.الخاتمة‹

المقترحات التطويرية.‹

Page 92: Graduation project documentation

91الصفحة

الفصل السابع: الخاتمة، المقترحات التطويرية:

الخاتمة: 7-1

وبشكل يحقق الفائدة لشريحة واسعة من تم العمل في المشروع على موقع ويب عملي يمكن وضعه قيد العمل مباشرة

المستخدمين، إن هذه النقطة بالذات كانت دافعا لي في تنفيذ المشروع، حيث غالبا ما تكون هناك هوة بين التطبيقات التي يتم

تصميمها طالبيا وبين ما يحتاجه سوق العمل.

ير متواجدة على الويب إلى اآلن وهي فكرة تقديم من أهم ما يتميز به الموقع هو ابتكاريته، حيث يحتوي على فكرة مهمة غ

االستشارة لألشخاص عبر االستفادة من خبرة اآلخرين، حيث تم االستفادة من هذه الخبرة التي يتميز بها هؤالء المستخدمين

هذا الموقع يتميزووضعها ضمن فائدة مستخدمين آخرين وبالتالي فإن هذه الفائدة تعمم ويستفاد منها من قبل أناس أخرين، أيضا

بالبناء القوي الذي تم بنائه عليه بحيث تصبح عملية تطويره ويانته أمرا ممكنا.

عملية البحث عن مكتبات النظم الخبيرة ومعايير تمثيل المعارف كانت مثمرة وبها تعلمت العديد من االمور التي كانت تشكل أمرا

رؤية مع الحصول على تطبيق متكامل لنظام خبير.مبهما بالنسبة لي، تم جالء هذا اإلبهام، ووضحت ال

كان هذا البحث فخرا لي، بذلت فيه من وقتي الكثير وأتمنى لو كان هناك وقتا إضافيا لكي أستمر بالعمل عليه، بحيث يظهر عند

لصيفية.عطلة اتسليمه بشكله الكامل، إال أن هذه ليست بالمشكلة الكبيرة، حيث سيتم العمل على المشروع بشكل أكبر في ال

أتمنى أن يكون هناك دعم أكبر في قسمنا لمواضيع عالم الويب، فهو مجال واسع ال نتطرق إليه في الجامعة أبدا، أيضا مواضيع

النظم الخبيرة يتم إغفالها في الجامعة على الرغم من قيمتها الكبيرة، وأهميتها في العالم التنكولوجي الحديث.

والمقترحات التطويرية:األعمال المستقبلية 7-2

إن الموقع لن يقف عند حدود الجامعة، بل سيتم العمل على تطويره ووضعه قيد العمل على شبكة الويب بحيث يحقق أكبر

المتخصصة AtomLabإفادة للمستخدمين، أيضا سيكون هناك استفادة عملية منه حيث سيكون عبارة عن موقع خاص لشركة

رية، وتقديم كورسات تدريبية ضمن هذه المجاالت.في تصميم وبناء لوحات تطوي

إن مجال الذكاء الصنعي في عالم الويب مجال واسع يمكن الدخول على العديد من المجاالت فيه ولك يبقى التكامل بين هذه العلوم

يصبح قويا الموقع بحيثككل هي القوة األساسية ألي تطبيق، لذلك سيتم العمل إلى إدخال تقنيات إضافية من الذكاء الصنعي إلى

ويتسم بلمسة واضحة من الذكاء، تجعل عملية تطويره والتفاعل معه أمرا جميال ومميزا، تختلف عن بقية المواقع، واألهم من هذا

بأنه سيكون قد بني بأيدي عربية.

Page 93: Graduation project documentation

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

Page 94: Graduation project documentation

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


Recommended