آنتولوژی

20:36, 03/05,2017

به نام خدا

 

سلام به همه ی دوستان!!!

 

در این پست قرار است تا با یکی از مفاهیم مهم به نام Ontology (آنتولوژی) یا هستان­ شناسی یا هستان نگار آشنا بشویم.

با توجه به پست­ های گذشته که XML را معرفی کردیم و سپس از Xpath برای استفاده از XML کمک گرفتیم، می­ توان فهمید که این دو و شمای XML و ... که معرفی شدند به تنهایی برای ایجاد معنای عمومی قایل فهم برای همگان و البته قابل فهم برای ماشین که بتواند با استفاده از آن ها، به طور خودکار استنتاج انجام دهد کافی نیستند. در واقع ما به دنبال ایجاد ساختاری با روابط بین مفاهیم آن هستیم که یک ماشین بتواند از آن استفاده کند و استنتاج خوبی را ارائه دهد. پس ما مجبور هستیم تا به سراغ امکانات دیگری برویم که قابلیت های ذکر شده را داشته باشند.

در اینجا زبانی به نام OWL معرفی می شود. با استفاده از این زبان می توانید مفاهیم، روابط بین آنها، ویژگی ها و در آخر نمونه ها را تعریف کنید. برای تعریف یک مفهوم آن را با کلید واژه کلاس می توانید بیان کنید. مثلا مفهوم موجود جاندار، مرد، گیاه و ... . روابط بین کلاس ها به دو دسته تقسیم می شوند : 1. روابط سلسله مراتبی مانند اینکه بگوییم مرد زیر کلاسی از جاندار است. 2. روابط منطقی مانند اینکه بگوییم پدر دارای فرزند است، یا اینکه بگوییم انسان از گیاه تغذیه می کند  یا بگوییم انسان با انسان دیگری دوست است. در واقع در روابط نوع اول مانند دسته بندی به کلاس ها (مفاهیم) نگاه می کنیم. مثلا می گوییم جاندار به دسته های انسان، حیوان، گیاه تقسیم می شود. سپس می گوییم انسان به زن و مرد تقسیم می شود و ... . اما در روابط منطقی، از روابطی غیر از این دسته بندی ها صحبت می کنیم. روابط از نوع 1 را با کلید واژه subClassOf معرفی می کنند.

ویژگی ها را با تگ xxxProperty نمایش می دهند که خود شامل انواعی هستند. ویژگی ها هم برای بیان روابط بین نمونه ها کاربرد دارند. انواع ویژگی ها عبارتند از

owl: ObjectProperty که خود شامل owl: SymmetricProperty و owl: TransitiveProperty می باشد.

owl: DatatypeProperty

owl: FunctionalProperty

owl:InverseFunctionalProperty

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

موفق باشید...

 


 

XPath چیست؟

20:59, 02/17,2017

دوستان سلام!

در این پست می­ خواهم در ادامه مطلب قبلی خود نکاتی تکمیلی در مورد XML را بیان کنم. من می ­خواهم XPath را معرفی کنم.

Xpath یا XML Path Language همانطور که از نام آن پیداست یک زبان مسیر بر روی XML است. این زبان برای انتخاب بخشی از کل فایل XMLاستفاده می­ شود.

فرض کنید که در فایل XML خود اطلاعات زیادی را با ساختاری خاص که توسط DTD یا XSD توصیف شده است، ذخیره کرده ­اید. حال می ­خواهید از این فایل استفاده کنید. مثلا می­ خواهید بدانید که آیا رکوردی به نام آقای xxx در فایل خود  دارید یا نه؟ یا اینکه اگر فایل شما نمرات دانشجویان را در خود دارد، می خواهید ببینید کدام یک از دانشجویان در درس xxx نمره ­ی زیر 15  کسب کرده ­اند. هر کدام از دو مورد ذکر شده یک پرس و جو (query) محسوب می ­شوند.

برای پاسخ به سوالات خود نیاز به Xpath دارید تا بتوانید اطلاعات مد نظر خود را از کل فایل XML ای که در اختیار دارید استخراج کنید. یکی از دلایل استفاده از این زبان این است که با توجه به حجیم بودن فایل XML خود، نمی­ توانید به صورت دستی (manual) خودتان کل فایل را جستجو کنید. زیرا در این روش احتمال بروز خطا وجود دارد.

این زبان همانند سایر زبان­ ها دارای نحوی خاص است. در ادامه یک مثال ارائه می ­شود. اما قبل از مشاهده مثال فرض کنید یک فایل XML مانند زیر وجود دارد. این فایل حاوی دستورات آشپزی برای تعدادی غذاست. در این فایل هر غذا شامل مواد تشکیل دهنده آن و نحوه پخت آن به صورت زیر  وجود دارد.

  

حال می­ خواهید بدانید که نام اولین ماده تشکیل ­دهنده ­ی اولین غذای موجود در این فایل چیست. برای این کار باید کد زیر را بنویسید:

string(doc ("recipes.xml" )//recipe[1]/ingredient[1]/@name)

اجرای این 1 خط کد، به شما خروجی روبرو را می ­دهد:                                  "beef cube steak"  

البته امکانات Xpath بسیار زیاد است و اینجا برای سادگی به ارائه همین مثال اکتفا می­­ کنم. اما برای کاربردهای واقعی باید با توابع مختلف و همچنین نحو آن کامل آشنا شوید. برای آشنایی کامل با Xpath از لینک زیر می­ توانید استفاده کنید.

https://www.w3schools.com/xml/xml_xpath.asp

موفق باشید...

 


 

مروری بر XML

18:55, 02/10,2017
 
به نام خدا
 
در این پست مروری مختصر بر روی XML خواهیم داشت. البته در همان ابتدا این نکته را بگویم که برای به کار گیری این زبان و تسلط بر تمام امکانات موجود در آن نیاز به مطالعه دقیق منابع دیگر وجود دارد.
 
یکی از زبان های مدل سازی داده که در مباحث وب معنایی استفاده می شود، زبان  XML است. این زبان حالت نمایشی خاصی ندارد. در واقع مانند HTML رندر نمی شود. برای همین است که زبان XML را زبانی برای مدل سازی داده می شناسند.
با به کار گیری این زبان می توانیم:
1- نحوه نمایش داده را از ذخیره سازی آن جدا کنیم. یعنی خود داده را در فایل خود نگهداری کنیم و در صورت نیاز از ابزارهای دیگری برای نمایش مناسب آن استفاده کنیم.
2- برای تبادل داده بین چند سیستم استفاده کنیم.
3- حتی زبان خاصی با گرامر مورد نظر خود را توسعه دهیم! (مانند WML که سال ها پیش توسعه یافت) 
اما برای ایجاد مدلی از داده های خود نیاز به فایلی داریم تا بتوانیم قالب کلی مدل را بیان کنیم. در اینجا دو نوع زبان مطرح می شوند که به ما در ایجاد ساختار کلی مدل خود کمک می کنند. همانطور که گفته شد ما نیاز به یک فایل توصیف کننده ساختار مدل خود داریم و در نتیجه می برای اینکار کافی است یا از مورد اول و یا دوم استفاده کنیم:
 1- DTD
 2- XML Schemas که با عنوان XSD نیز شناخته می شوند.
البته مورد دوم از مورد اول قوی تر بوده و جایگزینی برای مورد اول محسوب می شود. در اینجا به ارائه دو دلیل می پردازیم:
در مورد اول نحوی غیر از آنچه در XML وجود دارد استفاده می شود که این باعث می شود تا پارسری را داشته باشیم تا بتوانیم با این فایل کار کنیم. همچنین امکانات تعریف تگ در مورد اول نسبت به مورد دوم کمتر است. 
 
شاد باشید ...  

 

سلام

22:05, 10/19,2016
سلام دوستان!!