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

در این پروژه قصد داریم روش‌های مختلف ادغام و نگاشت هستان‌شناسی ها را بررسی نموده و یکی از آن‌ها را پیاده‌سازی کنیم.

۱. مقدمه

هستان شناسی در اصل یک مفهوم فلسفی بود که طبیعت مفاهیم را توصیف می‌کرد. [2]امروزه هستان شناسی به عنوان یک مشخصه صریح صوری از ادراک مشترک تعریف می‌شود که یک درک مشترک از یک حوزه که می تواند در میان انسان‌ها و سیستم‌های کاربردی ارتباط ایجاد کند را فراهم می‌آورد. [1]
اجزای هستان شناسی، مفاهیم1، روابط 2، نمونه‌ها 3 و بدیهیات 4 است. یک مفهوم، یک مجموعه یا کلاس از موجودیت‌ها در یک زمینه را نمایش می دهند. روابط، ارتباط متقابل مفاهیم یا ویژگی‌ها یک مفهوم را نمایش می‌دهند که به دو دسته رده بندی و انجمنی تقسیم می‌شود. نمونه‌ها چیزهایی هستند که توسط مفاهیم نمایش داده می‌شوند. هستان شناسی به تنهایی دارای نمونه نیست بلکه هستان شناسی به همراه نمونه‌ها یک پایگاه دانش را تولید می‌کند. بدیهیات مقادیر اجباری برای کلاس‌ها یا نمونه‌ها هستند و معمولاً شامل قوانین کلی هستند، مثلاً یک دوره آموزشی حتماً یک مدرس دارد. [3]
بخاطراینکه هیچ معیار مشترکی برای ساخت هستان شناسی وجود ندارد، هستان‌شناسی‌های ناهمگن مختلفی در یک حوزه مشابه ساخته شده است. [2]
هستان شناسی ها دارای دو نوع ناهمگنی هستند: ناهمگنی metadata و ناهمگنی نمونه. موجودیت‌ها (مفهوم، رابطه یا نمونه)ممکن است با معنای یکسان در هستان‌شناسی‌های مختلف برچسب اسم متفاوت داشته باشند و برچسب اسم یکسان ممکن است برای دو موجودیت با معانی متفاوت در دو هستان شناسی به کار رفته باشد؛ نمونه‌ها در هستان شناسی های مختلف دارای نمایش‌های مختلف هستند و هستان شناسی‌های مختلف ممکن است دارای ساختار رده بندی متفاوت باشند. [3]
وب معنایی 5 امکان به اشتراک گذاری مطالب مرتبط به یک زمینه خاص را فراهم آورده است. هدف اصلی آن گسترش تکنیک‌های بازیابی اطلاعات به صورت هوشمند است. در تکنیک‌های وب معنایی RDF 6 برای بازگرداندن داده غیرساختیافته به داده ساختیافته مورد استفاده قرار می‌گیرد . هستان شناسی نقش مهمی در استخراج دانش ایفا می‌کند. در سال‌های گذشته استفاده از هستان شناسی در سیستم‌های بازیابی اطلاعات در زمینه‌های تحقیقاتی مختلف مانند بازیابی اطلاعات مرتبط 7، تکنولوژی‌های وب، پردازش زبان طبیعی8، سیستم‌های مدیریت اطلاعات و غیره گسترش یافته است.[5]
شبکه معنایی از چارچوب چندلایه‌ای استفاده می کند و هستان شناسی در سطحی که از توصیف اسنادی به استنتاج دانش ارتباط ایجاد شده، قرار دارد، پس ساختار هستان شناسی کلید شناسایی وب معنایی است.هستان شناسی برای توصیف مفاهیم و ارتباط بین آنها در یک زمینه یا حتی طیف وسیع‌تری که این مفاهیم و ارتباطات تنها یک تعریف در حیطه مشترک دارند، استفاده می‌شود، بنابراین انسان و ماشین می‌تواند بین آنها ارتباط برقرار کند [4]. امروزه ما می‌توانیم تعداد روزافزونی هستان شناسی داشته باشیم و ساختار هستان شناسی ها متفاوت باشد و از متدهای مختلفی استفاده کنند. به این منظور که هستان شناسی هایی که توسط خبره‌های 9 متفاوت ساخته شده‌اند، برای هم قابل فهم باشد، نگاشت هستان شناسی 10 شکل گرفت. نگاشت هستان شناسی برای استفاده مجدد از هستان شناسی موجود، و توسعه و ترکیب آنها با یک متد خاص است که هستان شناسی‌های مختلف را برای دستیابی به یک پیکره اطلاعات و پایگاه دانش بزرگتر مخلوط می‌کند. [2]
در سال‌های اخیر نگاشت و ادغام هستان شناسی‌ها یک مسئله پیچیده برای محققین شده است و مسایل و نکات زیادی در این رابطه مطرح شده است. نگاشت و ادغام هستان شناسی یک رویه برای ساخت یک انباره مشترک با یک پایگاه دانش از دو یا چند هستان شناسی است. هدف اصلی ادغام هستان شناسی، حذف ناسازگاری‌ها است و ممکن است منجر به از دست رفتن برخی اطلاعات ارزشمند شود.
ایده پشتیبان ادغام هستان شناسی برای تولید یک هستان شناسی جدید، تقسیم هستان شناسی به کلاس‌ها یا مفاهیم و پیدا کردن روابط ممکن بین مفاهیم و کلاس‌ها است. دو هستان شناسی مختلف برای یک زمینه، روی هم افتادگی‌های زیادی دارد.
ادغام هستان شناسی، هستان شناسی‌های مختلف را که متعلق به یک موضوع مشابه هستند را ترکیب می‌کند و یک هستان شناسی جدید تولید می‌کند. [5]
نگاشت هستان شناسی یک روش کارآمد برای شناخت ارتباط بین عملکرد هستان‌شناسی های ناهمگن است.نکته مهم در نگاشت هستان شناسی، محاسبه میزان مشابهت میان مفاهیم است. [2]
تفاوت عمده روش‌های مختلف موجود در ادغام و نگاشت هستان شناسی عموماً در روش و تکنیک‌های به کار رفته برای محاسبه مشابهت است. ما در این پژوهش به دنبال مطالعه روش‌های مختلف در نگاشت هستان‌شناسی هستیم.

در شکل زیر دو نمونه از هستان‌شناسی‌های متفاوت برای یک زمینه خاص (در مورد airline reservation ) را نمایش می‌دهیم که مشاهده می‌شود این دو هستان شناسی با هم تفاوت دارند.[6]

هستان شناسی 1

هستان شناسی 2

۲. کارهای مرتبط

در این بخش به مطالعه و بازنگری مقالاتی می‌پردازیم که به مقوله ادغام و نگاشت هستان شناسی پرداخته‌اند.
در مقاله[5] با تکیه بر تحلیل معنایی روی هستان شناسی مشابه در یک زمینه خاص عمل ادغام انجام می‌پذیرد.این الگوریتم به صورت کاملاً اتوماتیک است که از معنای کلاس‌ها و خصوصیات 11 با استفاده از[8] Wordnet بهره می‌برد. رویکرد مورد نظر در این مقاله، الگوریتم ادغام هستان شناسی معنایی 12 است که یک الگوریتم ادغام و نگاشت خودکار هستان شناسی است و هستان شناسی را به دو بخش تقسیم می‌کند ابتدا کلاس‌ها را ادغام می‌کند و سپس ویژگی‌های دو هستان شناسی را ادغام می‌کند. الگوریتم‌های ادغام هستان شناسی در یک زمینه خاص، سعی می‌کنند معنای مشابه بین دو هستان شناسی مختلف را پیدا کنند تا یک هستان شناسی منسجم ایجاد کنند.ادغام معنایی هستان شناسی این مراحل را طی می‌کنند: اول، دو هستان شناسی روی یک زمینه مشترک را بارگذاری می‌کنند سپس پیش پردازش را با استفاده از ریشه یابی 13 اجرا می‌کنند، گام بعدی، تحلیل معنایی با استفاده از Wordnet است که در آن، مترادف کلاس‌ها در هستان شناسی های مختلف پیدا می‌شود. [5]
در مقاله[2] یک متد برای نگاشت هستان شناسی با چند استراتژی 14 معرفی شده است. شباهت مفاهیم از روی جنبه‌های اسم ، ویژگی و ارتباط مفهوم محاسبه می‌شود. شبیه سازی نشان می‌دهد این رویکرد ، یک الگوریتم کارامد است. چارچوب نگاشت هستان شناسی چند استراتژی، چند ماژول دارد: 1- یک هستان شناسی کاربردی: که شامل هستان شناسی سطح بالای موجود است که برخی مترادف کلمات را در خود دارد. 2- لایه مرجع: شامل جدول تطابق انواع داده و اطلاعات مرتبط با آنها است. جدول تطابق انواع داده یک درجه نگاشت بین همه انواع را توصیف می‌کند.اگر دو نوع داده مشابه هستند دیگر نیاز نیست جدول را چک کنیم. اگر دو نوع داده متفاوتند، باید در جدول جستجو شود. درجه مشابهت بین انواع مختلف داده بین صفر تا یک است. 3- لغات مشترک دامنه: یک اصطلاح واژگانی عمومی در ناحیه مشترک است که براساس Wordnet رده بندی می‌شود. هر خط در جدول برای یک مفهوم، مترادف و نزدیک مترادف است. هنگام محاسبه مشابهت مفاهیم، با واژگان به عنوان مرجع، تنها مشابهت میان مترادف و نزدیک مترادف‌ها محاسبه می‌شود که براساس سیستم Wordnet تعریف می‌شوند. 4- هستان شناسی محلی: توسط کاربران مختلف متناسب با نیازشان ساخته شده است. [2]
در مقاله [9] رویکرد نگاشت هستان شناسی ها مبتنی بر گرامر ساختار درخت بررسی شده است. از آنجاییکه هستان شناسی به صورت سلسله مراتبی طراحی شده است، ما به سادگی می‌توانیم با یک ساختار سلسله مراتبی درختی آن را نمایش بدهیم. جالب است که این رویکرد هم مشابهت ساختار داخلی مفاهیم در هستان شناسی های متفاوت را ترکیب می‌کند و هم مشابهت زبانی مفاهیم را. در این راستا، روابط قویتری بین مفاهیم می‌توان یافت و اعتبار محاسبات تشابه افزایش می‌یابد. در این روش که مبتنی بر ساختار مفاهیم است، درباره سلسله مراتب مفاهیم مانند روابط آنها و معنای همسایگی هنگام عمل نگاشت مطالعه شده است. [9]
در مقاله[3] نگاشت هستان شناسی به عنوان یک مسئله تصمیم گیری درنظر گرفته شده است. تصمیم گیری با کمترین ریسک باید صورت بگیرد و رویکرد Risk Minimization based Ontology Mapping 15 مورد نظر است که به صورت اتوماتیک پردازش کشف روی نگاشت‌های 1:1، 1:n ، null:1 و 1:null را انجام می‌دهد. استفاده از قانون بیز با همان فرمول‌های رایج برای محاسبه ریسک و احتمالات شرطی در نظر گرفته شده است. Xیک نمونه است که احتمال تعلق آن به یک کلاس مانند Y را به صورت P(X|Y) تعریف میکنیم. در این متد نگاشت، p(ei2|ei1) را به این صورت حساب میکنیم که چقدر احتمال دارد که یک نمونه از هستان شناسی اول با یک نمونه از هستان شناسی دوم نگاشت شود. با محاسبه این احتمالات و محاسبه ریسک تصمیم گیری صورت می‌گیرد. نتایج آزمایش‌ها حاکی از این بودند که روش مورد نظر نتایج بهتری را نسبت به روش های پایه برای کشف نگاشت عمل می‌کند. [3]

۳. شرح پیاده سازی

در فاز سوم این پروژه، برنامه‌ای پیاده سازی شده است که بتواند دو هستان شناسی را به عنوان ورودی بگیرد و آنها را ادغام کرده و در یک آنتولوژی جدید به عنوان خروجی تحویل دهد. این برنامه به زبان جاوا پیاده سازی شده است و در آن از پروژه متن باز 16 به نام Inria کمک گرفته شده است. از این رو، کدهای پیاده‌سازی این پروژه نیز متن باز بوده و استفاده از آن آزاد است تا حق کپی رایت رعایت شود.

هنگام اجرای این برنامه لازم است که به اینترنت وصل باشید، زیرا از یک Alignment serverآنلاین استفاده شده است. مزیت استفاده از این سرور این است که هم زبان انگلیسی و هم زبان فرانسوی را پشتیبانی می‌کند. برای اطلاع از نحوه عملکرد این سرور می‌توانید به این لینک [http://alignapi.gforge.inria.fr/rest.html] مراجعه بفرمایید.

این پیاده سازی فاقد محیط گرافیکی است و با کنسول کار می‌کند. لازم است که محل ذخیره دو فایل آنتولوژی که با فرمت owl هستند را در کد قرار دهید و سپس برنامه را اجرا نمایید. در گام اول، به صورت محلی دو هستان‌شناسی با هم match شده و سپس باهم merge می‌شوند و در فایل خروجی به فرمتowl ذخیره می‌شود. محل فایل ذخیره شده در کنسول نمایش داده می‌شود.
در تصویر زیر نمایی از خروجی برنامه را مشاهده می‌نمایید.

نمایی از خروجی برنامه

۴. آزمایش‌ها

برای مشاهده و مقایسه خروجی برنامه پیاده سازی شده، لازم بود تا دو هستان شناسی را به عنوان نمونه مورد تست قرار گیرند. از این رو ابزار دیگری برای ادغام هستان شناسی که در دسترس باشد، نیاز داشتیم.
نرم افزار متن باز protegeé نیز امکان ادغام دو هستان شناسی را فراهم آورده است. برای آشنایی بیشتر و دانلود این نرم افزار به لینک [http://protege.stanford.edu/] مراجعه نمایید. نحوه کار در آن به این صورت است که در ابتدا دو فایل آنتولوژی موردنظر را در محیط باز کرده و سپس از مسیر "Refactor > Merge Ontologies"می‌توان خروجی را به صورت یک فایل آنتولوژی جدید حاصل از ادغام دو آنتولوژی اولیه ذخیره کرد.

برای آزمایش دو آنتولوژی، یکی به زبان فرانسوی و دیگری به زبان انگلیسی را به دو طریق با هم ادغام کردیم و نتیجه را در شکل زیر مشاهده می‌نمایید.
در دو تصویر زیر، نمای درختی از دو هستان شناسی که برای تست درنظر گرفتیم در محیط گرافیکی protegeé را ملاحظه می‌کنید.

هستان شناسی 1

هستان شناسی 2

در تصویر زیر نتیجه ادغام دو هستان شناسی با ابزار ادغام در protegeé را ملاحظه می‌نمایید.
پروتژ

در این تصویر نیز خروجی کد پیاده سازی شده را می‌بینید که در محیط گرافیکی به نمایش درآمده است.

خروجی کد

همانطور که مشاهده می‌نمایید خروجی کد پیاده سازی شده نسبت به خروجی محیط protege قابل فهم‌تر است و ادغام منطقی‌تر صورت گرفته است و توانسته بین انگلیسی و فرانسوی، مفاهیم مشابه را پیدا کند.
در آخر برای دسترسی به کد جاوای این برنامه به همراه دو فایل هستان شناسی که مورد تست قرار گرفته است، می‌توانید به این لینک [https://github.com/fahiiim3/ontology-merging] مراجعه نمایید.

۵. کارهای آینده

۶. مراجع

[1] Ding, Ying, and Schubert Foo. "Ontology research and development. Part 2-a review of ontology mapping and evolving." Journal of information science 28.5 (2002): 375-388.
[2] Luo, Fuqiang, and Yongfu Xiong. "The method of multi-strategy ontology mapping." Computational and Information Sciences (ICCIS), 2011 International Conference on. IEEE, 2011.
[3] Tang, Jie, et al. "Using Bayesian decision for ontology mapping." Web Semantics: Science, Services and Agents on the World Wide Web 4.4 (2006): 243-262.
[4] Fensel D.The Semantic Web and its languages[J].IEEE Computer Society,2003,pp:67-73.
[5] Vidyarthi, Ankit, et al. "Domain specific ontology merging using semantics."Confluence The Next Generation Information Technology Summit (Confluence), 2014 5th International Conference-. IEEE, 2014.
[6] Noy, Natalya F. "Ontology mapping." Handbook on ontologies. Springer Berlin Heidelberg, 2009. 573-590.
[7] Ehrig, Marc, and York Sure. "Ontology mapping–an integrated approach." The Semantic Web: Research and Applications. Springer Berlin Heidelberg, 2004. 76-91.
[8] http:// en.wikipedia.org/ wiki/WordNet
[9] Li, Sheng, Heping Hu, and Xian Hu. "An ontology mapping method based on tree structure." 2006 Semantics, Knowledge and Grid, Second International Conference on. 2006.

۷. پیوندهای مفید


  1. concept

  2. relation

  3. instance

  4. axiom

  5. Semantic web

  6. Resource Description Framework

  7. Relevant Information Retrieval

  8. Natural Language Processing

  9. expert

  10. ontology mapping

  11. property

  12. Semantic Ontology Mapping = SOM

  13. stemming

  14. multi strategy mapping

  15. RiMOM

  16. open source

علیرضا نوریان

این بد نیست که شما از یک سرویس تحت وب استفاده کردید و با کمک اون دو هستان‌شناسی رو ادغام کردید. منتها انتظار ما اینه که شما هم کاری انجام بدید!
یعنی کد شما باید عمل ادغام رو انجام بده و اگر یک سرویس این کار رو می‌کنه مثلا شما باید ارزش‌افزوده‌ای روی اون ایجاد کنید. مثلا خودتون خروجی رو با استفاده از چیزهایی که در مقالات خوندید، بهتر کنید. توجه کنید که اگرچه ما گفتیم در مرحله بعد انتظار ارتقا داریم، خواسته واضح و روشن ما این بوده که شما خودتون از چیزهایی که خوندید استفاده کنید و به خروجی برسید.