DBpedia

01:35, 06/08,2017

به نام خدا

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

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

طبق تعریف، دیبی پدیا یک گراف دانش است که ویژگی های زیر را دارد:

قابل فهم

رایگان برای دانلود و استفاده

باز : به این مفهوم که توسط مجامع جهانی و بزرگ می تواند گسترش یابد و ارتقا پیدا کند.

پروژه دیبی پدیا از سال 2006 شروع شد و در اکثر استفاده های ممکن، این پایگاه دانش (یا گراف دانش) به عنوان دانش پیش زمینه برای کار های دیگری مانند: رتبه بندی مستندات و فهم زبان طبیعی استفاده می شود. در حال حاضر در این پایگاه دانش، دانش به 120 زبان مختلف دنیا وجود دارد. دیبی پدیا از مجموعه ای از حقایق تشکیل شده است. در واقع از دیبی پدیا برای پاسخ به پرسش های مربوط به حقایق استفاده می شود. هر حقیقت شامل 3 جزء است:

Subject , predicate , object

مثلا جمله ی "علی لیوان را شکست" را درنظر بگیرید. این جمله یک حقیقت را نشان می دهد. در این مثال علی همان subject و شکستن لیوان همان predicate و لیوان همان object است.

دیبی پدیا مشتریان زیادی دارد که به چند نمونه آن اشاره می کنم:

شرکت های بزرگی مانند Wolters Kluwer

کتابخانه ها

محققین

توسعه دهندگان وب

 

حال کمی عمیق تر به دیبی پدیا می پردازیم:

منابع عمده دیبی پدیا از دو جا تامین می شود : ویکی پدیا و ویکی دیتا

در واقع هر صفحه در ویکی پدیا، یک منبع (resource) در دیبی پدیا محسوب می شود. مثال زیر را در نظر بگیرید:

URL روبرو را درنظر بگیرید که نشان دهنده ی یک صفحه در ویکی پدیا است. http://en.wikipedia.org/wiki/Monty_Python حال متناظر با این صفحه، منبع زیر را در دیبی پدیا داریم که با URL زیر نمایش می دهیم

http://dbpedia.org/resource/Monty_Python

 

همانطور که می دانید، ویکی پدیا یک دانشنامه آنلاین و رایگان است که مطالب آن به صورت داوطلبانه ایجاد و یا اصلاح می شود.

اما ویکی دیتا، که یک پایگاه دانش رایگان و باز است. مطالب این پایگاه دانش می تواند هم توسط انسان و هم توسط ماشین خوانده و یا نوشته شود.

اما سوال مهم در این جا این است که برای جواب دادن به سوالاتمان با وجود موتورهای جستجوی قوی که شرکت هایی مانند شرکت بزرگ گوگل ارائه داده، چه نیازی به استفاده از پایگاه دانش وجود دارد. برای جواب دادن به این سوال بهتر است مثالی واقعی ارائه دهیم:

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

Which films starred John Cleese without any other members of Monty Python?

اما پاسخ گوگل مجموعه ای از صفحات است که هر صفحه تکه ای از اطلاعات را در خود دارد. مثلا صفحه ای که فقط راجع به گروه مانتی پایتون اطلاعاتی را در اختیار ما می گذارد و یا صفحه ای راجع به خود جان کلیز و یا صفحه ای راجع به خود فیلم  و ... . در اینجا ما (به عنوان یک عامل انسانی) با اتصال اطلاعات این چند صفحه می توانیم به پرسش خود، پاسخ دهیم. در حالی که هدف این است که این اتصال به صورت خودکار و توسط ماشین انجام شود. ضمنا نکته دیگری نیز وجود دارد: این که در جمله مورد پرسش به جای کلمه ی film میتوان از کلمات مترادف مانند movie,.. استفاده کرد. همین نکته برای سایر واژه های موجود در جمله ما نیز صادق است.

اما راه حل، استفاده از یک پایگاه دانش مانند دیبی پدیا است. البته برای استفاده از این پایگاه دانش باید گرامر مربوط به نوشتن کوئری های معتبر را بدانیم. در دیبی پدیا می توانیم کوئری SPARQL اجرا کنیم. به عنوان مثال کوئری زیر می تواند مشکل ما را حل کند! در شکل زیر در قسمت بالا کوئری مربوطه را مشاهده می کنید و در قسمت پایین خروجی حاصل از اجرای این کوئری را می بینید:

 

 

همانطور که می بینید با یک کوئری 15 خطی توانستیم مشکل را حل کنیم. البته همان طور که گفته شد، برای نوشتن این کوئری باید زبان SPARQL را  بیاموزیم.

 

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

 

شاد باشید..