پنج‌شنبه ۹ فروردین ۱۴۰۳ |  عضویت / ورود

آنتولوژی چیست؟ XML چیست؟ RDF چیست؟


بحث را با یک مثال آغاز می‌کنم. تصور کنید در یک صفحه روی وب، نوشته شده است:

کتاب «چگونه یک تجارت الکترونیک راه اندازی کنم» نوشته «حمید رضا نیرومند» در سال ۱۳۹۳ توسط انتشارات آفتابگردان منتشر شد.

دقت کنید که این جمله چقدر پرمحتواست! نام یک کتاب، نویسنده‌ی آن، سال انتشار و انتشارات آن کتاب در این جمله وجود دارد، اما متأسفانه موتورهای جستجو این جمله را فقط یک سری «کلمه» می‌بینند ولاغیر‍! یعنی این جمله از نگاه موتورهای جستجو هیچ بار معنایی ندارد در حالی که حداقل چهار نکته مهم در آن بود!

برای اینکه بهتر متوجه شوید، به من بگویید من اینجا چه نوشته‌ام؟

 我爱神

همانطور که شما این متن را فقط یک عبارت (احتمالاً) سه کلمه‌ای می‌بینید، موتور جستجو هم جمله‌ی اول را یک عبارت چند کلمه‌ای می‌بیند!

عبارت بالا که به زبان چینی است، معادل «من خدا را دوست دارم» است. این می‌توانست به عنوان یکی از علاقه‌مندی‌های من معرفی شود اما فقط یک عبارت شامل سه کلمه دیده شد.

 

همانطور که می‌دانید ما تا به حال دو نسل از وب را پشت سر گذاشته‌ایم:

۱- وب ۱ یا وب سنتی: همان وبی که آقای «تیم برنرزلی» اختراع کرد و حاوی یک سری صفحات ساده که در آن‌ها متن و عکس بود، همین!

۲- وب ۲ یا اشتراکی: وبی که ظهور شبکه‌های اجتماعی (Social Networks) را شاهد بودیم و کاربران با استفاده از اشتراک هر نوع داده، یک لذت خاصی از وب بردند و می‌برند.

اما یک وب دیگر در راه است به نام «وب ۳ یا وب معنایی» (Semantic Web):

در وب ۳ ما به دنبال این هستیم که صفحات به طور کامل برای موتورهای جستجو و هر نوع موتور تحلیل‌گر دیگر، شناخته شده باشد و همان جمله که در بالا گفتم فقط یک سری کلمه‌ی ساده در نظر گرفته نشود!

خوب، حالا می‌شود آنتولوژی و RDF را بهتر معرفی کرد!

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

دانلود کتاب نمایه‌سازی؛ گردآوری شده توسط حمید رضا نیرومند

آنتولوژی چیست؟

آنتولوژی در لغت از دو کلمه onto به معنی «هستی» و logy به معنی «مطالعه» تشکیل شده است. ریشه آنتولوژی در فلسفه است و به ارسطو نسبت داده می‌شود. در علوم کامپیوتر و در حوزه وب معنایی، آنتولوژی مفهوم کلمات و ارتباط بین آن‌ها در حوزه‌ای که مورد استفاده قرار می‌گیرند را نشان می‌دهد. امروزه با حجم عظیمی از اطلاعات مواجه هستیم. به منظور دستیابی مؤثر به اطلاعات، به سیستمی نیاز است که بتواند به طور مناسبی، اطلاعات را از وب استخراج کرده و به طور مناسبی به کاربران ارائه دهد، اما این کار به سادگی میسر نمی‌باشد. آنتولوژی به وجود آمده است تا این مشکلات را مرتفع سازد.

روش‌های معنا بخشیدن به صفحات وب

  1. XML
  2. URI
  3. RDF

XML چیست؟

XML مخفف Extensible Markup Language و به معنی «زبان نشانه‌گذاری قابل توسعه» است.
فایل XML یک فایل متنی ساده و یک پایگاه داده قابل حمل به حساب می‌آید.
در این زبان تگ‌ها توسط برنامه‌نویس تعریف می‌شود و خود زبان، تگ‌های مشخصی ندارد. (پس یعنی دیگران هستند که زبان را «توسعه» می‌دهند. پس این، یک «زبان قابل توسعه» است)
معمولاً هر تگِ والد، نمادِ یک موجودیت و تگ‌های داخلی، صفات آن موجودیت یا همان سرستون‌ها در پایگاه داده هستند.
این زبان امروزه در تمامی نرم‌افزارها برای انتقال اطلاعات یا تنظیمات از یک محل به محل دیگر کاربرد دارد.

توضیحی در مورد تفاوت پسوند doc با docx:

خیلی‌ها سؤال می‌کنند که این پسوند x که انتهای پسوندهای آفیس از نسخه ۲۰۰۷ به بعد اضافه شد (docx و xlsx و pptx و...) به چه معناست؟

برای اینکه بهتر درک کنید، یک مثال از تستا بزنم:

ما در تستا ۲ در مقطعی نیاز پیدا کردیم که مدرس از یک آزمون در تستایی که روی سیستمش نصب کرده، خروجی بگیرد و آن خروجی را به تستایی که روی سایتش نصب کرده بارگذاری کند. من در آن زمان هر چند نام XML را شنیده بودم، اما درکش برایم سخت بود. بنابراین به سراغ XML نرفتم و خودم یک سری قوانین کلی در نظر گرفتن و مشخصات و سؤالات آزمون را با آن قواعد در یک فایل متنی ساده ذخیره کردم. مثلاً خروجی تستا ۲ را ببینید.

https://img.aftab.cc/news/93/testa_xml.png

اگر به این فایل نگاه کنید، خواهید دید که یک سری عدد آنجا خط به خط هست. فرض کنید شما بخواهید یک نرم افزار بنویسید که خروجی تستا را بگیرد و آزمون آن‌را برگزار کند. از من می‌پرسید آن اعداد چیست؟ مثلاً عدد ۱ که در خط چهارم است، نماد فعال بودن آزمون است یا نماد نمایش داده شدن نمرات بعد از آزمون یا...؟ اگر بگویم من خودم هم یادم نمی‌آید شاید باور نکنید! باید بروم کدها را تحلیل کنم بعد به شما بگویم... اگر من یک نرم افزار دیگر هم می‌نوشتم و شما از آن سؤال می‌کردید باید می‌رفتم کدهای نرم افزار دوم را هم بررسی می‌کردم بعد به شما آموزش می‌دادم که هر خط برای چیست... دقت کنید: به خاطر معنا نداشتن کلمات، نه تنها خود برنامه‌نویس ممکن است به اشتباه بیفتد، کسی هم که می‌خواهد با آن فایل کار کند بدتر به اشتباه می‌افتد و از آن بدتر اینکه این قوانین ممکن است در یک نرم افزار دیگر فرق کند!! دقیقاً مشکلی که برنامه‌نویسان با آفیس داشتند! فرض کنید مثلاً نرم افزار OpenOffice که یک آفیس رایگان است می‌خواست فایل‌های doc را بخواند. باید می‌رفت از برنامه‌نویس Word می‌پرسید آقا این اعداد که نوشته‌اید هر کدام چه ویژگی‌ای از این فایل ورد است؟ تعداد صفحاتش؟ تعداد لغاتش؟ برنامه‌نویس مثل من ممکن بود یادش برود اعداد هر خط نماد چیست... حالا فکر کنید می‌خواست پسوند xls (اکسل) را هم پشتیبانی کند! باید می‌رفت سراغ برنامه‌نویس Excel می‌پرسید: آقا! این اعداد در فایل شما چه معنی‌ای دارد؟ او هم احتمالاً یادش نمی‌آمد و باید می‌رفت کدها را تحلیل می‌کرد...

این شد که XML که زبان مشترک برای فایل‌های پایگاه‌داده‌ای قابل حمل است به وجود آمد.

برای درک تفاوت فایل قبلی با فایلی که با XML نوشته شده، به خروجی تستا ۳ نگاه کنید. این همان آزمون بالاست، اما ببینید همه چیز چقدر قشنگ با تگی که آن‌را معنا می‌بخشد احاطه شده‌اند! حالا آن عدد ۱ که در خط چهارم است را شما هم می‌توانید بفهمید که چیست! احسنت، نماد رندوم بودن سؤالات آزمون است...

حالا می‌فهمید این x در انتهای docx نماد چیست... بله، نماد XML. یعنی خروجی‌های آفیس هم از آن نسخه به بعد با XML نوشته شد تا درک و کار با آن بسیار بسیار آسان‌تر از یک فایل با قوانین نامشخص باشد.

 

مثال: جداول موجود در پایگاه داده‌ی یک کتابخانه به شکل زیر است، از داده‌های آن یک خروجی XML بگیرید.

Books

bidCodeISBNtitleauthorpublisherpubDate
11001978-964-531-102-3Learn InternetHamid Reza NiroomandAftabgardan2015
21002978-964-531-302-1C# in 24 HoursQomiNaqous2010
       

Members

midCodeFirstNameLastName
1100AliHasani
2101HojjatRahimi
    
خروجی XML:

           
                       
                                    1
                                    1001
                                    978-964-531-102-3
                                    Learn Internet
                                    Hamid Reza Niroomand
                                    < publisher >Aftabgardan
                                    2015
                       

                       
                                    2
                                    1002
                                    978-964-531-302-1
                                    C# in 24 Hours
                                    Qomi
                                    < publisher >Naqous
                                    2010
                       

           

           
                       
                                    ..
                                    به همین صورت، مانند بالا ادامه دهید...
                       

 
           

            …
 
همانطور که می‌بینید، تمام کلماتی که در XML هستند، کاملاً مشخص است که چه هستند. مثلاً می‌شود به راحتی فهمید که Learn Internet یک عنوان (title) برای یک کتاب (book) در بین کتاب‌های (books) یک کتابخانه (library) است.

URI چیست؟

مخفف Uniform Resource Identifier و به معنی «شناسه یک‌شکل منابع» و شناسه یا آدرسی است که از روی اجزای آن می‎توان اطلاعات کافی در مورد آن منبع از جمله رده یک شی و رده‌های بالاتر آن به دست آورد.

مثالی از یک URL بدون به‌کارگیری مفاهیم وب معنایی:

http://aftab.cc/linkestan/showlink.php?id=1400

از روی این آدرس نمی‌توان فهمید که این لینک در مورد چه چیزی است.

همان لینک با به‌کارگیری مفاهیم وب معنایی:

http://aftab.cc/linkestan/link/pdf/learn-c-sharp-in-24-hours

از روی این لینک می‌توان فهمید که لینک به یک pdf در مورد آموزش C#‎ است.

 URL چیست؟

مخفف Uniform Resource Locator و به معنی «مشخص‌کننده‌ی موقعیت منبع به صورت یک‌شکل» است که یک نوع URI به شمار می‎آید. منظور از URL همان آدرس عکس‌ها و ویدئوها و صفحات (منابع) روی اینترنت است.
 

RDF چیست؟

مخفف Resource Description Framework و به معنی «چهارچوب توصیف منابع» است.

زبانی است که به لغات یک صفحه برای موتورهای جستجو معنا می‎بخشد و ارتباط بین لغات را مشخص می‎کند.

با استفاده از XML می‌توانیم موجودیت‌های مختلف و صفات آن‌ها را تگ‌گذاری کنیم اما معنای آن‌ها را نمی‌توانیم بیان کنیم به عنوان مثال: اگر کسی برچسب قیمت را با PRICE نشانه‌گذاری کند و شخص دیگری با COST نشانه‌گذاری کند هیچ راهی برای فهم مترادف بودن این دو عبارت به وسیله XML وجود ندارد، اینجاست که RDF به کار می‌آید.

هر عبارت RDF به صورت یک سه-تایی (Tripple) بیان می‌شود: فاعل،گزاره، مفعول.

۳ موضوع اصلی در RDF      

https://img.aftab.cc/news/93/rdf_1.png 

1-    Subjects: فاعل جمله

2-    Predicates: گزاره یا فعلی که فاعل انجام می‌دهد.

3-    Objects: مفعول یا اسمی که جانشین مفعول شده است و کار، روی آن انجام می‌شود.

مثال:

https://img.aftab.cc/news/93/rdf_2.png 

مزایای RDF نسبت بهXML :

1- RDF یک فهم مشترک از یک مفهوم واحد را ارائه می‌دهد زیرا گاهی اوقات ما برای یک مفهوم از دو لغت متمایز استفاده می‌کنیم یا بلعکس از یک لغت برای دو مفهوم متفاوت استفاده می‌کنیم.

2-RDF بین مفاهیم در وب و دنیای واقعی ارتباط برقرار می‌کند.

مثال: جمله «آقای تیم برنزلی، وب را اختراع کرد» را به صورت RDF نمایش دهید.

<وب><اختراع کرد><آقای تیم برنزلی>

روش اعمال RDF به یک صفحه با HTML5

مثال: عبارت [نام من حمید رضا نیرومند است. من ایران را دوست دارم. کتاب مورد علاقه من «آینده خود را خلق کنید» نوشته «برایان تریسی» است] را به صورت HTML5+RDFa بنویسید؟

https://img.aftab.cc/news/93/rdf_3.png

 1-    در تگ html با استفاده از صفت prefix نسخه rdf ای که استفاده می‌کنید را تعیین کنید. (این آدرس در حقیقت آدرس یک Vocabulary است و به موتور جستجو می‌فهماند که کلماتی که شما برای معنا بخشیدن به عبارات استفاده کرده‌اید از آن «فرهنگ لغات» یا «فضای نام» انتخاب شده. مثلاً وقتی می‌خواهید بگویید «ایران»، یک علاقه‌مندی برای «حمید رضا نیرومند» است، از چه کلمه‌ای استفاده کرده‌اید و کجا تعریف شده که این کلمه به معنی علاقه‌مندی است؟ مثلاً دیکشنری که من در کد بالا معرفی کرده‌ام را ببینید)

2-    در تگ body (یا هر تگ کلیِ دیگر) یک صفت about اضافه کرده و نام فاعل (یا یک آدرس اینترنتی در مورد فاعل) که این صفحه در مورد آن است را بیان کنید.

3-    در صفحه، کلمات مهم مانند نام شخصیت، نام کتاب، .. که با فاعل رابطه‌ای دارند را با تگی مانند احاطه کنید و به این تگ یک صفت rel (مخفف relation به معنی رابطه) اضافه کنید و در مقدارِ آن، رابطه‌ی آن کلمه با فاعل را بنویسید. (مثلاً «کتاب آینده خود را خلق کنید» به عنوان interest یعنی علاقه مندی برای صاحب این صفحه معرفی شده)

4-    اگر کلمه‌ای در صفحه بود که صفت فاعل بود، آن‌را با تگ span احاطه کنید و یک صفت property به آن اضافه کرده و بگویید که این کلمه چه صفتی برای فاعل است. (مثلاً «حمید رضا نیرومند» یک nickname یا اسم و فامیل برای فاعل به حساب می‌آید)

نکته: توجه کنید که نام صفات و ارتباطات باید حتماً در vocabulary که در ابتدای صفحه به آن آدرس داده‌اید وجود داشته باشد.
 
سخن پایانی:
اگر یک طراح وب هستید، سعی کنید شما هم تا حدی که می‌توانید، با استفاده از نکات بالا، به «وب معنایی» و «معنا بخشیدن به وب» کمک کنید.
 
موفق باشید؛
حمید رضا نیرومند


[ارسال شده در مورخه : چهارشنبه، 24 دی، 1393 توسط Hamid]
[ #برنامه‌ نويسي]



بازدیدها از این مطلب: 21174 بار   امتیاز متوسط :   تعداد آراء: 4   امتیاز دهید:

نظرات طرح شده

نام: [ کاربر جدید ]
ایمیل:

نظر:


اجازه استفاده از تگهای HTML را ندارید


جمع عدد 15 با 5 را در كادر زیر وارد نمایید:
(این كار برای جلوگیری از فعالیت موتورهای اسپمر است)


* توجه: نظر شما بعد از بررسی، نمایش داده خواهد شد.

imanmoodi                توسط imanmoodi در مورخه : چهارشنبه، 24 دی، 1393(لینک نظر)
سلام؛ واقعاً عالی بود؛

همیشه برام سوال بود rdf چیه :)))

ممنون


[ ارسال جوابیه ]


msdn                توسط msdn در مورخه : پنجشنبه، 25 دی، 1393(لینک نظر)
مهندس یه سوال!!!

خوب اون کسی که داره وبلاگ نویسی می کنه و مثلا به اندازه یه صفحه A4 متن می نویسه بی چاره میشه که بخواد همه اون ها رو هم تگ گذاری کنه و اینکه اکثر مردم عادی اطلاعاتی درباره برنامه نویسی ندارند. آیا هیچ راهی هست مثلا ادیتوری چیزی که بشه خیلی راحت تگ گذاری کرد و خودش هم اتوماتیک بعضی چیز ها رو تشخیص بده و پیشنهاد بده؟؟؟؟؟


[ ارسال جوابیه ]

    Hamid (امتیاز : 1)
    توسط Hamid در مورخه : جمعه، 26 دی، 1393
    سلام.

    قرار نیست همه کلمات صفحه تگ‌گذاری بشه. فقط جملاتی که پرمحتواست...

    ظاهراً نرم افزار زیاده. جستجو کنید RDF Software

    یکی‌ش این:

    http://www.linkeddatatools.com/rdf-pro-semantic-web

    اما من کار نکردم.


    [ ارسال جوابیه ]


Ali (امتیاز : 0)(لینک نظر)
توسط Ali در مورخه : جمعه، 26 دی، 1393
سلام



مثل همیشه پرمحتوا و ناب



کتاب نمایه سازی هم فوق العاده هست مثل جزوه های دیگتون .



خیلی ممنون


[ ارسال جوابیه ]


سید مرتضی (امتیاز : 0)(لینک نظر)
توسط سید مرتضی در مورخه : شنبه، 24 بهمن، 1394
سلام استاد دستتون درد نکنه ممنون از مطالب نابتون .

ببخشید این سوالو میپرس

آیا منظور از وب معنایی (semantic web ) همین میشه که گفتید ؟

اگه این میشه پس اگه اینو رعایت کنیم تو برنامه هامون تمومه ؟


[ ارسال جوابیه ]

    Hamid (امتیاز : 1)
    توسط Hamid در مورخه : شنبه، 24 بهمن، 1394
    سلام.

    وب معنایی با رعایت کردن من و شما محقق نمی‌شه...

    اصل ماجرا، موتورهای جستجو هستن.

    به هر حال، بحثش گسترده‌ست.


    [ ارسال جوابیه ]


مهدی طربی (امتیاز : 0)(لینک نظر)
توسط مهدی طربی در مورخه : چهارشنبه، 7 مهر، 1395
سلام استاد

من سوال در مورد owl و swrl دارم میشه بگین چه کاربردی دارن و چه ربطی به rdf



ممنون


[ ارسال جوابیه ]


بابادی                توسط بابادی در مورخه : یکشنبه، 14 آذر، 1395(لینک نظر)
عالی بود مرسیییی


[ ارسال جوابیه ]


ریحانه حیدری (امتیاز : 0)(لینک نظر)
توسط ریحانه حیدری در مورخه : جمعه، 1 اردیبهشت، 1396
سلام آقای نیرومند
چقدر عالی و ساده و روان rdf و آنتولوژی رو توضیح دادیم

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


واقعا زکات علم خود رو دادید

خدا به شما جزای خیر بدهد

ریحانه حیدری
دانشجوی ارشد علم اطلاعات و دانش شناسی


[ ارسال جوابیه ]


محمد                توسط محمد در مورخه : پنجشنبه، 23 فروردین، 1397(لینک نظر)
سلام. ممنون از مطالب ارزشمند شما


[ ارسال جوابیه ]


[بدون موضوع]                توسط در مورخه : چهارشنبه، 12 اردیبهشت، 1397(لینک نظر)
توضیحات عالی بود :)


[ ارسال جوابیه ]


داود (امتیاز : 0)(لینک نظر)
توسط داود در مورخه : سه شنبه، 4 خرداد، 1400
آقا دمت گرم خیلی خوب بود...
هر چند که بحث خیلی طولانی هست و هزاران خط میشه درموردش نوشت.
شما خیلی خوب خلاصه توضیح دادین...


[ ارسال جوابیه ]


[بدون موضوع]                توسط در مورخه : پنجشنبه، 9 دی، 1400(لینک نظر)
perfect


[ ارسال جوابیه ]


مریم                توسط مریم در مورخه : پنجشنبه، 22 دی، 1401(لینک نظر)
سلام
من داشتم واسه امتحان درس وب معنایی می خوندم که رسیدم به سایت شما.
عالی توضیح داده بودید خیلی بهتر از استاد ما!!!!
خدا عوض خیر بهتون بده انشالله


[ ارسال جوابیه ]