با سلام.

امروز با قسمت آخر موضوع آنتولوژی در خدمت شما هستم.

برای طراحی آنتولوژی بوسیله نرم افزار protégé مراحل زیر را پیش رو داریم:

•    شناسایی دامنه آنتولوژی
•    تعریف کلاسها و ساختار آنها
•    تعیین مشخصه ها
•    تعیین محدودیت ها
•    ساخت نمونه اولیه


 


حال به سراغ مثال خودمان (آبهای آزاد) می رویم و قصد داریم آنتولوژی مربوط به آن را پیاده سازی کنیم.
نرم افزار protégé را باز کرده و از قسمت classes با استفاده از دکمه ای که با کادر قرمز رنگ کوچک نمایش داده شده است، اقدام به ایجاد class میکنیم. در تعریف کلاس، دو نوع Role وجود دارد. کلاس در نوع abstract نمی تواند بطور مستقیم عضوی داشته باشد. اما در نوع Concrete میتواند به طور مستقیم عضو داشته باشد.
برای هر کلاس میتوان، زیرکلاسهای متفاوتی تولید کرد:



در اینجا، زیر کلاسها را تعریف کرده و نوع آنها را concrete میگذاریم.
حال به تعریف slot می پردازیم. Slot ها بیانگر ویژگی ها و روابط کلاسها می باشند. برخی slot ها عمومی هستند که باید در کلاس اصلی قرار بگیرند. به عنوان مثال مشخصه «نام» یک مشخصه ی عمومی است که همه نمونه ها آن را دارا می باشند. بنابراین ما این slot را در کلاس اصلی WaterSource ایجاد می کنیم. برای اینکار ابتدا بر روی دکمه ای که با کادر قرمز رنگ در سمت راست تصویر نمایش داده شده است کلیک کرده تا پنجره ی مربوط باز شود و از طریق آن به تنظیم نوع اسلات می پردازیم.

 



برای آبهای جاری دو اسلات تعریف میکنیم. «from_where» و «to_where». که به ترتیب مشخص کننده مبدا و مقصد آبهای جاری هستند.


 



برای آبهای ساکن نیز یک اسلات با عنوان «حجم» تعریف میکنیم.

 



حال که نقشه ی کار را طراحی کردیم، زمان ایجاد نمونه هاست. برای اینکار به قسمت instances می رویم.

 



با کلیک بر روی دکمه ی «ایجاد نمونه» صفحه ای برای درج مقادیر اسلاتهای تعریف شده برای این کلاس نمایش داده می شود. به عنوان مثال برای ایجاد نمونه برای کلاس stream (که کلاس آبهای جاری است) سه اسلات نمایش داده می شود: name, from_where, to_where که باید این مقادر را وارد کنیم. به عنوان مثال میخواهیم، رود ارس را تعریف کنیم. بنابراین مقادیر را مشابه تصویر زیر وارد میکنیم:

 

در ادامه به تعریف نمونه های «آبهای ساکن» نیز می پردازیم. و برای مثال دریاچه ی خزر و خلیج فارس را تعریف میکنیم.

 


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




امیدوارم هر سه قسمت برای دوستانم مفید بوده باشه.

موفق باشید.





طبقه بندی: برنامه نویسی، نرم افزار، مقالات، آموزشی،
برچسب ها: آنتولوژی، آنتولوژی چیست، آشنایی با آنتولوژی، Ontology، پیاده سازی یک Ontology، مهندس کوچکی، احمد مؤمنی،

تاریخ : یکشنبه 3 آبان 1394 | 01:05 بعد از ظهر | نویسنده : مهندس مؤمنی | نظرات

پیاده سازی یک 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  می تواند مجزا بودن دو کلاس را نشان دهد.


 

 

 

 

 


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


 

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


 

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



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




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


 قسمت سوم رو انشالا بعد از تعطیلات محرم روی سایت قرار میدم.




طبقه بندی: برنامه نویسی، نرم افزار، مقالات، آموزشی،
برچسب ها: آنتولوژی چیست، آنتولوژی، آشنایی با آنتولوژی، Ontology، پیاده سازی یک Ontology، مهندس مؤمنی، آپدیت آنتی ویروس،

تاریخ : سه شنبه 28 مهر 1394 | 09:51 قبل از ظهر | نویسنده : مهندس مؤمنی | نظرات

  • paper | فروش بک لینک | بک لینک
  • ابزار هدایت به بالای صفحه