آنتولوژی چیست؟ (قسمت دوم)

پیاده سازی یک ontology


برای آشنایی دقیق تر با نحوه پیاده سازی آنتولوژی، یک مثال را دنبال میکنیم.
فرض کنید میخواهیم یک آنتولوژی برای «منابع آبی جهان» تعریف کنیم. همانگونه که در شکل زیر مشاهده میکنید، منابع آبی به دو دسته ی اصلی «آبهای جاری» و «آبهای ساکن» تقسیم شده است  که هر کدام از آنها نیز ، خود، دسته بندی ها و زیرگروه هایی دارند.

 


اکنون میخواهیم یک آنتولوژی برای آنها تعریف و پیاده سازی کنیم.
اما قبل از ادامه ی پیاده سازی، کمی در مورد خصیصه های «PROPERTIES» صحبت میکنیم و در ادامه مثال بالا را پیاده سازی میکنیم.

  • Symmetric Properties


این خصیصه ، رابطه تقارن را تعریف می کند. به این معنی که مثلا اگر رود «یانگ تسه» به دریاچه ی «وو» متصل است، دریاچه ی «وو» نیز به رود «یانگ تسه» متصل است. این مطلب را اگر بخواهیم تعریف کنیم، به صورت زیر خواهیم داشت:

 

  • Transaction Properties

با رابطه ی «تعدی» آشنایی دارید. اینکه «اگر a با b در رابطه باشد و b با c، آنگاه a با c در ارتباط است». این مطلب را به صورت زیر تعریف میکنیم:


در آنتولوژی خصیصه های مختلفی وجود دارد که در بالا با دو نمونه از این خصیصه ها آشنا شدید. و نحوه تعریف آنها را مشاهده نمودید.

 

 

 

  • Syntax ontology

آنتولوژي OWL از Syntax مبتني بر XML  استفاده مي¬کند. عنصر ريشه OWL، عنصر rdf:RDF  است که همانند RDF  تعدادي حوزه نام را تعريف مي کند و اجازه مي¬دهد از واژه¬های تعريف شده در آنها در سند خود استفاده نمود.
ساختار اساسی آن به این صورت است که اگرریشه به صورت :
•    rdfs:resource   باشد،  این ساختار به دو زیر شاخه  rdf:class و  rdf:property  تقسیم می شود. سپس rdf:class  به زیر شاخه owl:class  و rdf:property  به owl:objectProperty  و owl:DataTypeProperty  تقسیم می شود.

•    عنصر بعدی این زبان OWL:Ontology است که مجموعه ای از اعلانها در آن جای میگیرد. در اين عنصر مي¬توان توضيحات، کنترل ورژن، و اعلان آنتولوژيهاي ديگر را قرار داد.







•    کلاسها با استفاده از عنصر owl:class تعريف مي شوند. براي مثال، کلاس يک استاديار به صورت زير تعريف مي شود

 

 

 

 

•    در يک آنتولوژي OWL مي توان دو کلاس را به صورت مجزای از هم تعريف کرد.
برای مثال در يک آنتولوژی دانشگاه می¬تواند دو کلاس استاديار و پرفسور را جدای از همديگر تعريف کرد. تگ owl:disjointWith  مي تواند مجزا بودن دو کلاس را نشان دهد.

 

 

 

 

 

تعامل آنتولوژی های مختلف با یکدیگر: [8]
سیستم های مختلف می توانند آنتولوژی ها مختص خود را تولید کنند. در این صورت به روشی نیاز داریم که بتوانیم کاری کنیم که آنتولوژی ها بتوانند زبان هم را بفهمند. در اینجا مباحثی مانند merging , matching  و alignment مطرح میشود.
•    Alignment
اگر دو آنتولوژی o1 و o2 داشته باشیم، وظیفه ی alignment یافتن تناظر بین اجزای موجود (کلاس ها، خصیصه ها، روابط ، قید ها، نمونه ها) در دو آنتولوژی است. پس alignment نوبت به mapping می رسد. یعنی اینکه باید تناظرهای یافت شده را باید ثبت نماییم.[8]
به عنوان مثال در شکل زیر، دو نمونه از آنتولوژی های یک حوزه را که بصورت متفاوتی تعریف شده اند را نمایش داده و اجزای متناظر آنها را با نقطه چین به هم متصل کرده ایم:

 

•    Matching
برای اینکه بتوانیم عمل alignment را انجام دهیم از matching استفاده میکنیم. که از طریق آن می توانیم، تشابه های بین دو آنتولوژی را تعیین نماییم.
•    Merging
حال که تشابه و تناظر های موجود در دو آنتولوژی را پیدا کردیم، نوبت به ادغام این دو آنتولوژی و ایجاد یک آنتولوژی جامع می شود. این کار را merging می گویند.
برای مثال، میخواهیم این عمل را بر روی مثال بالا پیاده سازی کنیم.[8]

 

تناظرهای بین دو آنتولوژی را با نقطه چین نمایش داده

و نهایتا عمل merging را پیاده میکنیم:

در قسمت بعد با استفاده از نرم افزار protege به طراحی یک آنتولوژی می پردازیم.

 

 

نظرات   

 
#2 سعید 1394-12-22 11:14
مرس تشکر فراوان
نقل قول
 
 
#1 میلاد 1394-07-28 06:17
سلام مهندس واقعاممنون
من تعریف جامع و سبک در مورد آنتولوژی رو جستجو میکردم تو سایتتون پیدا کردم ممنون
اگه میشه در مورد فاکسونوهی ، تاکیونوهی ،سییتم های مفهومی هم تعریف و مثالی بزارین ممنون
نقل قول
 

اضافه کردن نظر


کد امنیتی
تغییر کد امنیتی