آنتو — مهندسی‌دانش، آنتولوژی و سیستم‌های خبره


خانه - بلاگ - ابزار - آنتولوژی‌ها فرهنگِ واژگان
۱۱ آپریل ۲۰۱۴

پروفایل‌های OWL


‫استاندارد زبان آنتولوژیِ وب (OWL)، خود شامل چند نوع مختلف است. به هر یک از این نوع‌های OWL معمولا پروفایل (سابق بر این زیرمجموعه) می‌گویند. پروفایل‌های OWL 2 زیرمجموعه‌ای syntactic (در لایه‌ی syntax زبان OWL 2) هستند، که ویژگی‌های مهمی را برای کاربردهای خاص فراهم می‌سازند. بعضی از آن‌ها ساده‌تر هستند و برای استنتاج نیاز به محاسبات ساده‌تر، بهینه‌تر و مشخص‌تری از استاندارد کامل OWL معروف به OWL Full دارند.‬

در نسخه‌ی دوم ‫این زبان ‬(OWL 2)‫،‬ سه پروفایل جایگزین سه زیرمجموعه در نسخه‌ی یک OWL شده‌اند. در ادامه به بررسی مختصر این پروفایل‌ها و کاربردهای آن‌ها می‌پردازیم. در نهایت مشخص خواهد شد که از هر پروفایل باید در چه جایی استفاده نمود.

‫>نکته: مستقل از این‌که با کدام نوع از OWL برای ساخت آنتولوژی یا پایگاه‌دانش یا هر منظور دیگری استفاده می‌کنید، در نهایت همه‌ی آن‌ها در زبان OWL معتبر هستند، و در اغلب ابزارهای مرتبط با OWL قابل استفاده خواهند بود. لازم به یادآوری‌ست اسناد RDF به زبان OWL Full بودند، مگر این‌که مشخصاً در زیرمجموعه‌ی OWL DL یا OWL Lite ساخته می‌شدند.‬

‫از زبان OWL می‌توان برای دو کاربرد متفاوت استفاده نمود:‬ ‫۱. به عنوان زبانی قدرت‌مند برای مدل‌سازی داده (آنتولوژی‌های کاربرد-گرا).‬ ‫۲. به عنوان روشی برای افزودن قابلیت استنتاج خودکار (آنتولوژی‌های معنا-گرا).‬

‫پروفایل‌های متفاوت در OWL 2 تنها در صورتی برای شما اهمیت خواهد داشت که از این زبان برای انجامِ استنتاج خودکار استفاده نمایید، چرا که اصولن پروفایل‌های مختلفِ OWL 2 تنها برای trade-off میان قدرت مدل‌سازی توصیفی، در برابر نیاز به قدرت محاسباتی بیشتر برای استنتاج خودکار به این زبان اضافه شده‌اند. در نتیجه اگر شما از OWL برای قابلیت استنتاج خودکارِ آن استفاده نمی‌کنید، اصلا نیازی به پروفایل‌های ساده‌تر ندارید و می‌توانید از پروفایل OWL2/Full بدون توجه به قابلیت استنتاج پایین آن، استفاده کنید.‬

مقدمه

قبل از اینکه به پروفایل‌های رسمی OWL بپردازیم، اینکه چگونه درباره‌ی آن‌ها فکر کنیم مهم است.

در بطن قضیه، هر پروفایل OWL به یک مدل کاربرد اشاره می‌کند و روش استفاده از OWL برای کاری را نشان می‌دهد. در اغلب موارد، به روشنی مشخص است که چه پروفایلی برای چه کاری مناسب است.

OWL 2 / Full

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

پروفایل OWL 2 / Full کامل‌ترین و جامع‌ترین پروفایل این زبان است. یعنی همه‌ی امکانات آن را در خود دارد. اگر شما مشکلی با پرفرمنس و کارایی استنتاج‌گر ندارید و نیازی اصلا به استنتاج‌گر خودکار ندارید، این پروفایل شاید برای شما مناسب باشد.

اگر شما از استنتاج‌گر خودکار (مانند Pellet) استفاده می‌کنید، بهتر است مراقب باشید. این پروفایل یک سری از قواعد استنباط و منطق را شامل می‌شود که به حدی پیچیده هستند که در بهترین حالت بسیار کُند بر روی اَبَرکامپیوترهای امروزی اجرا می‌شوند. در بدترین حالت ممکن است با استفاده از پروفایل OWL 2 / Full هرگز توسط هیچ ماشین محاسباتی حل نشود. به زبان دیگر، استنتاج بر روی این پروفایل یک مسله غیرقابل تصمیم‌گیری است (https://en.wikipedia.org/wiki/Undecidable_problem).

بنابراین اگر شما از یک استنتاج‌گر خودکار مانند Pellet یا HermiT استفاده می‌کنید، و نمی‌خواهید استنتاج‌گر برای همیشه در حال اجرا باشد یا جواب‌های غیرکامل بدهد (به هر حال استخراج دانش پله‌پلسه صورت می‌گیرد و در هر مرحله‌ای جوابی وجود دارد؛ مانند الگوریتم‌های Anytime)، بهتر است از پروفایلی محدودتر استفاده کنید تا دچار مشکل نشوید.

OWL 2 / EL

به جز پروفایل قبلی (OWL 2 / Full) پروفایل OWL 2 / EL رساترین و باامکانات کامل برای مدل‌سازی و توصیف حوزه‌ی مورد نظر آنتولوژی است. این پروفایل برای کاربردهایی که تعداد کلاس‌ها و ویژگی‌ها زیاد و رابطه‌ها بین آن‌ها زیاد است و گراف پیچیده‌ای را تشکیل می‌دهد، و شما می‌خواهید به کمک استنتاج‌گر خودکار روابط و فَکت‌های بیشتری را از دل دانش ِ موجود پیدا کنید.

اگر شما خود را محدود به این پروفایل نمایید، تمام رابطه‌های بین کلاس‌ها در آنتولوژی نسبتا سریع استنتاج می‌شوند، مثل این پرسش که کدام instance عضو یک کلاس است یا خیر (سریع در اینجا زمان یا اُردِر نمایی است. برای اطلاعات بیشتر در این‌باره به بخش ۵ سند w3 برای پروفایل‌های OWL که ویژگی‌های محاسباتی پروفایل‌های آن را بررسی می‌کند مراجعه کنید. همچنین برای اطلاعات بیشتر درباره‌ی پروفایل OWL 2 / EL می توانید به آدرس‌های زیر مراجعه کنید:

پروفایل OWL 2 / QL

هم‌چنان که پروفایل (یا زیرمجموعه‌ی زبان OWL 2) برای تعدادِ زیاد کلاس و ویژگی‌های آن‌ها و روابط در هم‌پیچیده‌ی بین آن‌ها طراحی شده است، پروفایل OWL 2 / QL نیز برای پردازش بهینه‌ی مقدار زیادی از instanceها یا individualها یا همان نمونه‌های کلاس‌ها طراحی شده است. تبرای نمونه فرض کنید شما دیتابیسی پر از نمونه‌ها (همان instanceها) دارید، و شما می‌خواهید آنتوالوژی‌ای برای آن بنویسید به زبان OWL 2 در پروفایل QL. هرچند پروفایل OWL 2 / QL هم مانند زیرمجموعه‌های قبلی زبان OWL 2 بسیار قوی است، هر پرس‌وجو (Query) که در پروفایل OWL 2 / QL نوشته شود می ةواند تماما و با جزیات کامل به زبان محدودی دیتابیسی SQL تبدیل شود و روی آن دیتابیس عمل پرس‌وجو را از طریق آنتولوژی صورت داد.

به خاطر این قابلیت تبدیل زیرمجموعه‌ی زبان OWL 2 / OL می‌تواند به عنوان زیرمجموعه‌ای زبان آنتولوژی OWL برای مواردی که شما نیاز به تعداد زیاد داده‌ی instance دارید (همانند ‌Big Data) و بهتر است دیتابیس‌های سنتی که با سال‌ها مطالعه برای حجم زیاد داده بهینه شده‌اند را به‌کار ببرید، استفاده کنید.

خارج از این پروفایل و زبان OWL می‌توان از SPARQL که زبانِ پرس‌وجویِ آنتولوژی و RDF است نیز می‌تواند با محدودیت‌هایی برای دسترسی به دیتابیس‌های سنتیِ بهینه‌شده برای حجم بالای داده (مانند NoSQL‌ها و موارد دیگر) که کارایی بالایی دارند، استفاده شود که خارج از موضوع این مقاله است.

برای اطلاعات بیشتر درباره‌ی این پروفایل به بخش‌هایی از استاندارد کنسرسیوم وب (W3) مراجعه کنید که پیوند‌های آن در زیر مشخص شده است:

پروفایل OWL 2 / RL

باز همانند پروفایل قبلی (OWL 2 / OL) که به سمت اجرای بهینه‌ بر روی دیتابیس‌های سنتی (رابطه‌ای یا relational) سوق پیدا می‌کرد و بیشتر برای آن منظور بهینه شده بود، پروفایل OWL 2 / RL نیز برای اجرای بهینه و دسترسی بر روی موتورهای قواعد سنتی (Rule Engines) بهینه شده است. در حالت عادی از زبان‌های SWRL و نسخه جدید SPARQL برای تزیق قوانین به آنتوالوژی استفاده می‌شود، اما این پروفایل برای سازگاری با دیتابیس‌های قدیمی و موتورهای قواعد سنتی و ارتباط آن‌ها با آنتولوژی بهینه شده است. اگر نرم‌افزار یا کاربردی که برای آنتولوژی در نظر گرفتید به نوعی به موتورهای قواعد سنتی مانند Drools یا موتور قواعد Oracle وابستگی دارد، این پروفایل و زیرمجموعه از زبان OWL 2 بهینه‌ترین و مناسب‌ترین انتخاب برای شماست.

این پروفایل، بالاخص خیلی با داده‌هایی که به فرمت RDF (سه‌گانه‌های مشهور در وب‌معنایی) تبدیل شده‌اند سازگار است و با هر قواعدی (Rule) که ممکن است منطق کسب‌وکار خاصی (Bussiness Logic) را نمایش دهد سازگار است.

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

موارد دیگر و قدیمی

پروفایل‌های یا زیرمجوموعه‌های زبانی‌ای که در بالا معرفی شده در استاندارد OWL 2 (نسخه‌ی دوم زبان) معرفی گردیده‌اند. نسخه‌ی اول OWL که در سال ۲۰۰۴ نسخه‌ی نهایی استاندارد آن ارائه شد پروفایل‌های دیگری داشت که شامل OWL/DL، OWL/Lite و OWL/Full می‌شده است.

از انجا که نسخه‌های قدیمی‌تر به نوعی توسط OWL2/RL، OWL2/EL و OWL2/QL جایگزین شده‌اند و امکانات هر یک از پروفایل‌های نسخه‌ی قبل را دارند، نیازی به توصیف نسخه‌ی قدیمی‌تر نیست. نسخه‌ی قدیمی OWL در مقاله‌ها و صفحه‌های قدیمی بررسی شده‌اند و شاید یکی از نشانی‌های قدیمی بودن مطلبی که درباره‌ی OWL می‌خوانید، همین اشاره به پروفایل‌های نسخه‌ی سال ۲۰۰۴ باشد. اغلب مقالات معتبر و جدید به نسخه جدید OWL 2 ارجاع داده‌اند و پوشش تمام و کمال نسخه‌ی یک توسط نسخه‌ی دو هرگونه نگرانی از بابت اطلاع از چگونگیِ آن نسخه‌ها را برطرف می‌سازد.

انتخاب بهترین پروفایل برای کاربردی خاص

انتخاب بهترین زیرمجموعه از زبان OWL بیشتر به انتظار شما از زبان OWL بستگی دارد.

  • اگر شما به استنتاج منطعف و پرسرعت و کارآمد بر روی کلاس‌های درهم‌پیچیده و ویژگی‌های زیاد آن در آنتولوژی خود نیاز دارید، از OWL 2 / EL استفاده کنید.

  • اگر شما داده‌های زیادی دارید (Big Data و القابی مثل این مانند بانک‌های و سیستم‌های انترپرایز) و هدف اصلی شما از استفاده از آنتولوژی برای پرس‌وجو (Query) هست و ساختار کلاس‌های شما کمی پیچیده است (نه زیاد) از OWL / QL 2 استفاده کنید.

  • اگر ساختار کلاس‌های آنتولوژی شما کمی پیچیده‌تر است و برنامه‌ی خود را بر روی یک موتور قواعد سنتی پیداسازی می‌کنید، از پروفایل OWL 2 / RL استفا کنید.

در پیاده‌سازی‌های واقعی از زبان OWL (همانند کتابخانه‌های OWL-API یا Jenna یا نسخه‌های تجاری اراکل و IBM) اغلب بخش کمی از زیرمجموعه‌های ذکر شده پیاده‌سازی شده است، و حتی شاید آن را به میل خود از استاندارد کنسرسیوم وب تغییر داشته باشند. خواندن راهنمای کتابخانه‌ای که برای دسترسی به آنتولوژی استفاده می‌کنید، در این موارد بسیار مفید خواهد بود.

در نهایت اگر شما از استنتاج‌گر اصلا استفاده نمی‌کنید، و از زبان OWL 2 فقط برای مدل‌سازی استفاده می‌کنید و اصلا استناج بر روی داده (بخش اعظم استفاده از آنتولوژی) برای شما کاربردی ندارد، بهتر است خیال خود را راحت کنید و از پروفایل OWL 2 / Full استفاده کنید و از تمام امکانات این زبان لذت ببرید.

‫سیستم دیتابیس اُراکل ۱۱جی هم قابل به ذکر است که از مجموعه قواعد OWL 2 RL/RDF پشتیبانی می‌کند.‬

در فضای وب مقاله‌های زیادی برای مقایسه‌ی این پروفایل‌ها برای کاربردهای خاص وجود دارد، با این حال در نهایت تفاوت این زیرمجوعه‌ها به صورت خلاصه در همین حدود این مقاله‌ی کوتاه است.


بازگشت