تبلیغات
گروه نرم افزاری باران - مطالب ابر آنتولوژی چیست

با سلام.

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

برای طراحی آنتولوژی بوسیله نرم افزار 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 قبل از ظهر | نویسنده : مهندس مؤمنی | نظرات


با سلام خدمت دوستان گرامی. امروز میخوام در مورد آنتولوژی واستون مطلب بنویسم. مطلبی که در ادامه میاد، سمینار درس سیستم های خبره پروفسور کاهانی هست که این ترم ارائه دادم و در اختیار دوست عزیزم مهندس احمد مؤمنی قرار میدم. امیدوارم براتون مفید باشه.

 

 

 

چکیده:

 امروزه با حجم عظیمی از اطلاعات مواجه هستیم.به منظور دستیابی موثر به اطلاعات، به سیستمی نیاز است که بتواند به طور مناسبی، اطلاعات را از وب استخراج کرده و به طور مناسبی به کاربران ارائه دهد. اما این کار به سادگی میسر نمی باشد.

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

 پایه و اساس آنتولوژی بر اساس RDF,XML و OWL می باشد.که هریک از این موارد در ادامه تشریح خواهد شد.

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

 

·         آشنایی با آنتولوژی

 آنتولوژی در لغت از دو کلمه onto به معنی هستی و logy به معنی مطالعه تشکیل شده است. ریشه آنتولوژی در فلسفه است و به ارسطو نسبت داده می شود. در علوم کامپیوتر و در حوزه وب معنایی ،آنتولوژی مفهوم کلمات و ارتباط بین آنها، در حوزه ای که مورد استفاده قرار میگیرند را نشان میدهد. برای آشنایی با موضوع بگذارید مثالی از دنیای واقعی داشته باشیم.[3]

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

 

 

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

 گوگل در حال حاضر در پروژه ای که در صفحه ی WWW.GOOGLE.COM/insidesearch  قابل دسترسی است، در حال کار بر روی وب معنایی و فهم روابط بین لغات و ایجاد یک رابطه بین دنیای مجازی با دنیای واقعی است .[6]

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

 به عنوان مثال در این تصویری از «لئوناردو داوینچی» ، به تصویر کشیده شده است و ارتباط آن با واژه هایی مانند «مونالیزا»، «ایتالیا»، «میکلانژ» و.... بصورت بصری به نمایش در آمده است.

 

 

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

 اگر بخواهیم تعریف علمی «وب معنایی» را بدانیم، بهتر است نگاهی به دیدگاه آقای Time Berners Lee بیندازیم. شخصی که به «پدر وب» شهرت دارد. از دیدگاه وی، آینده ی وب به سمتی می رود که علاوه بر انسانها، ماشین ها نیز قادر به درک و فهم وب باشند.

 در ادامه، دیدگاه آقای «لی» را در مورد «وب» ملاحظه میکنید.[2]

 معماری «وب معنایی» از هفت لایه تشکیل شده است.

 

 

·         URI: که یک شناسه ی وب است. به اینصورت که هر چیزی که بر روی وب قرار دارد دارای یک URI خواهد بود و URL اساس «وب معنایی» را پی ریزی میکند

 ·         XML: زبان و Syntax وب معنایی است.  تگ های xml نوع موجودیت ها را بیان میکنند (نه معنای آنها را) .

با استفاده از XML میتوانیم، موجودیت های مختلف را تگ گذاری کنیم. اما همانطور که گفتیم، معنای آنها را بیان نمی کنند. به عنوان مثال اگر کسی برچسب قیمت را با <price>12500</price>  نشانه گذاری کند و شخص دیگری با <cost>12500</cost> نشانه گذاری کند، هیچ راهی برای فهم مترادف بودن این دو عبارت بوسیله xml وجود ندارد.

 اینجاست که «آنتولوژی» مفهوم پیدا میکند.

 ·         RDF: این زبان بر پایه XML و به منظور تشریح مفاهیم و ایجاد اسناد در وب معنایی بوجود آمده است.

هر عبارت RDF به صورت یک «سه تایی» بیان می شود: فاعل، گزاره و مفعول

اگر بخواهیم مثال از این «سه تایی» ها بزنیم، می توانیم فرض کنیم عبارات زیر موجود است.

 

Buddy Belden owns a business.

 The business has Web site accessible at http://www.c2i2.com/~budstv

 Buddy is the father of Lynne

 

حال می خواهیم این عبارات را به صورت «سه تایی» مرتب کنیم. خواهیم داشت:

 <#Buddy> <#owns> <#business>

 <#Business> <#has-website> http://www.c2i2.com/~budstv

 <#Buddy> <#father-of> <#Lynne>

 

·         RDF schema : به کمک RDF Schema می توان در مورد معنای کلمات ارائه شده در RDF توضیح داد..

 بطور کلی، به وسیله آنتولوژی دو کار صورت می پذیرد:

          آنتولوژی یک فهم مشترک از یک مفهوم واحد را ارائه میدهد. زیرا بعضی وقتها ما برای یک مفهوم از دو لغت متمایز استفاده میکنیم. یا بالعکس از یک لغت برای دو مفهوم متفاوت استفاده میکنیم

          آنتولوژی بین مفاهیم در وب و دنیای واقعی ارتباط برقرار میکند

 

پیاده سازی آنتولوژی:

 زبانهای پیاده سازی آنتولوژی عبارتند از :

 

• RDF (S) (Resource Description Framework (Schema))

 • OIL (Ontology Interchange Language)

 • DAML+ OIL (DARPI Agent Markup Language + OIL)

 • OWL (Ontology Web Language)

 • XOL (XML- based Ontology exchange Language)

 • SHOE (Simple HTML Ontology Extension)

 • OML (Ontology Markup Language)

 

که به صورت کلی به دو دسته تقسیم می شوند:

 ·         زبان های گزاره ای : Rules (RuleML, LP/Prolog), Description Logic (OIL, DAML+ OIL, OWL)

·         زبان هایی که از گراف استفاده میکنند : RDF,UML,.....

 

ما در این مکتوب به تشریح زبان OWL به عنوان یکی از زبانهای رایج مورد استفاده در آنتولوژی اشاره ای خواهیم کرد.[5]

 

 

OIL در اتحادیه اروپا و DAML در آمریکا ساخته شد.

 کمی بعد W3C از روی این دو، زبان استانداردی که نقاط ضعف این دو زبان را برطرف کند را ایجاد کرد و نام آن را OWL گذاشت.

 

 

زبان OWL دارای سه نسخه مختلف است.WOL Lite سادگی بیشتر اما قدرت بیان کمتری دارد. OWL DL از لحاظ قدرت بیان ، نسبت به OWL Lite قوی تر است اما از همه ی این نسخه ها قوی تر، نسخه OWL FULL است.

 هدف OWL ارائه یک دایره المعارف XML برای تعیین کلاس ها، مشخصات آنها و روابط بین این کلاس هاست.

 RDF Schema ما را قادر میسازد تا روابط ابتدایی را بیان کنیم .(قابلیت استنتاج محدودی دارد)

 Owl ما را قادر میسازد که روابط پیچیده تری را بیان کرده و به همین جهت، توانایی استنتاج بالاتر خواهد رفت.

 برای پیاده سازی OWL ابزار های مختلفی وجود دارد که در زیر لیست این ابزارها را مشاهده می کنید:

 

          RDF Instance Creator (RIC)

             http://www.mindswap.org/~mhgrove/RIC/RIC.shtml

             Limited OWL capabilities

           OilEd:

             http://oiled.man.ac.uk/

             Editor for ontologies

             Mostly for DAML+OIL, exports OWL but not a current representation

           OWL Validator:

             http://owl.bbn.com/validator/

             Web-based or command-line utility

             Performs basic validation of OWL file

           Dumpont:

             http://www.daml.org/2001/03/dumpont/

             a simple class and hierarchy property viewer, which also works with OWL, e.g.,

             http://www.daml.org/cgi-bin/dumpont?http://www.w3.org/2002/07/owl

           daml.org/tools/

           OWL Ontology Validator:

             http://phoebus.cs.man.ac.uk:9999/OWL/Validator

            a "species validator" that checks use of OWL Lite, OWL DL, and OWL Full constructs

           Euler:

             http://www.agfa.com/w3c/euler/

            an inference engine which has been used for a lot of the OWL Test Cases

           Chimaera:

             http://www.ksl.stanford.edu/software/chimaera/

             Ontology evolution environment (diagnostics, merging, light editing)

             Mostly for DAML+OIL,  being updated to export and inport current OWL

 


ما در ادامه، شیوه استفاده از نرم افزار PROTEGE را که یکی از رایج ترین ابزارهای کار OWL می باشد را شرح خواهیم داد.

 

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

قسمت دوم بزودی روی سایت قرار میگیرد.




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

تاریخ : چهارشنبه 22 مهر 1394 | 12:36 بعد از ظهر | نویسنده : مهندس مؤمنی | نظرات

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