حالا که تعدادی کلاسهای اولیه را ایجاد کرده ایم اجازه دهید تعدادی  pizza topping  هم ایجاد کنیم .برای آنکه بدن هم بتوانیم از این اطلاعات استفاده  کنیم topping ها در دسته های متفاوتی گروه بندی خواهند شد - meat toppings, vegetable toppings, cheese toppings و seafood toppings.

 

 

شکل 4.9 : ساختار toppingها

  

تمرین ۷: ایجاد تعدادی زیر کلاس برای PizzaTopping

1.     کلاس PizzaTopping را انتخاب کنید

2.     ابزار 'Create class hierarchy...' را  به همان طریقی که در تمرین قبلی اجرا کردیم  باز کنید .

3.     مطمئن شوید که PizzaTopping  انتخاب شده است و سپس بر روی دکمه Next  کلیک کنید .

4.     ما می خواهیم نام تمام کلاس های topping به کلمه topping ختم شود ,بنابر این در فیلد Suffix all in list with کلمه Topping را  وارد می کنیم .این ابزار با الصاق خودکار Topping به تمام کلاس های ما کارمان را راحت خواهد کرد .

5.     این ابزار همچنین به ما اجازه می دهد که با استفاده از کلید tab درخت های سلسله مراتبی را ایجاد کنیم .با استفاده از فضای متنی ابزار نام کلاس ها را همانند شکل 4.9  وارد کنید. توجه داشته باشید که نام کلاس ها باید با استفاده ازtab  تو رفتگی داشته باشد.برای مثال کلاس SpicyBeef که ما میخواهیم یک زیر کلاس از Meat باشد در زیر Meat نوشته می شود و با tab یک تو رفتگی به آن می دهیم .همچنین Pepperoni در زیرMeat  نوشته می شود و با یک tab به آن تو رفتگی می دهیم .

6.     اکنون با ایجاد لیستی از کلاسهای سلسله مراتبی که توسط tab ایجاد شده اند , بر روی Next کلیک کنید و مطمئن شوید که Make all primitive siblings disjoint تیک خورده است بدین صورت کلاس های جدید هم نسل  از یکدیگر گسسته خواهند بود .

7.     بر روی دکمه Finish کلیک کنید مجدداً بر روی Finish  کلیک کنید تا ابزار بسته شود .

 

سلسله مراتب کلاس ها باید شبیه شکل 4.10  باشد (البته  ترتیب کلاس ها ممکن است کمی متفاوت  باشد).

 

 

شکل 4.10 : ساختار سلسله مراتبی کلاس

 

 

تا اینجای کار ما تعدادی کلاس ایجاد کردیم که برخی از آنها زیر کلاس برای  کلاس های دیگر هستند.ساختار سلسله مراتبی کلاس ها ممکن است به نظر شهودی و بدیهی بیاید.اما زیر کلاس بودن واقعاً چه مفهوم و معنایی در OWL می‌تواند داشته باشد؟

برای مثال اینکه VegetableTopping  زیر کلاس PizzaTopping باشد چه معنایی دارد  ؟ و یا اینکه TomatoTopping  زیر کلاس VegetableTopping باشد ؟

در OWL زیر کلاس به معنی استنباط قطعی است. به بیانی دیگر,اگر VegetableTopping زیرکلاس   PizzaTopping باشد آنگاه همه نمونه‌های VegetableTopping  بدون استثنا نمونه های PizzaTopping نیز هستند - اگر چیزی یک VegetableTopping  است  می توان دلالت کرد که آن چیز همچنین یک PizzaTopping  باشد , همانطور که در شکل 4.11  نشان داده شده است .

 شکل 4.11 : مفهوم زیرکلاس – تمام نمونه هایی که اعضای کلاس TomatoTopping هستند , اعضای کلاس VegetableTopping   و کلاس PizzaTopping می باشند , چراکه ما تعیین کرده ایم که TomatoTopping زیرکلاسی از VegetableTopping است که آن هم به نوبه خود زیرکلاس PizzaTopping است .

 

 به همین دلیل است که اما تمام topping را با پسوند Topping نوشتیم , برای مثال HamTopping .برخلاف این واقعیت که نام کلاسها  درOWL  مفهومی ندارند ( و همچنین در سایر زبان های آنتولوژی), اگر ما به جای HamTopping ازHam  استفاده کرده بودیم , آنگاه این طور به نظر می رسید که هر چیزی که نوعی از ham  باشد همچنین نوعی از MeatTopping ونیز PizzaTopping هست.


برچسب ها: