RDFLib کتابخانه ای به زبان پایتون، برای کار با مدل داده RDF و برای ارائه اطلاعات است. RDFLib دارای کلاس هایی برای کار و پدید آوردن گراف RDF است. با RDFLib می توانید فرمت های RDF/XML و N3 و NTriples و N-Quads و Turtle و TriX و RDFa را پردازش و آماده کنید. همچنین درون کتابخانه زبان پرس و جوی Sparql نیز فراهم شده است که در نوشته های پیش رو به آن اشاره شده است.

برای نصب، من پیشنهاد می کنم، نخست یک دایرکتوری (فولدر) پدید بیاورید و سپس با دستور virtualenv یک محیط مجازی توسعه پایتون ایجاد کنید. سپس محیط مجازی را فعال کرده و در پایان با دستور pip کتابخانه RDFLib را نصب کنید. در کدهای زیر چگونگی نصب آن بر پایه نسخه پایتون ۳ نشان داده شده است.

گام نخست در به کار گیری RDFLib

در کدهای کلاس های گوناگونی از ماژول rdflib به فایل پیوست شده اند و آنها را می خواهیم برای پدید آوردن یک گراف RDF به کار ببریم. گراف RDF، گرافی است که از چندین سه تایی پدید می آید. نخست یک نمونه از کلاس ()Graph را پدید می آوریم. سپس با کلاس ()BNode یک گره خالی را پدید می آوریم. گفتیم که گره های خالی به گونه محلی پ در همان RDF به یک منبع اشاره می کنند، بدون آنکه بخواهیم یک URI را برای شناسته آن منبع به کار ببریم.

در شکل بالا و بدست متد ()add از کلاس Graph می خواهیم چهار تا سه تایی را به گراف بی افزاییم. هر سه تا به گونه یک تاپل پایتون نشان داده می شود که هر کدام از عنصرهای سه تایی با ویرگول از دیگری جدا شده است. در همه سه تایی های بالا، Subject به گونه BNode یا گره خالی هستند. بنابراین یک Subject می تواند گره خالی یا یک URI باشد.

Object گره های دوم و سوم با کمک کلاس Literal به گونه های مقداری (نا URI) هستند. در چهارمین گره Object به کمک کلاس URIRef از گونه URI است، پس Objecet ها می توانند گره خالی، Literal و URI باشند. Predict ها نیز از واژگان خواهند بود. برای نمونه در دومین، سومین و چهارمین گره، می خواهیم واژگان FOAF (یا Friend Of A Friend) را به کار ببریم تا یک نفر را توصیف کنیم. برای این، کلاس FOAF و ویژگی های nick و name و mbox (یا mail box) را به کار می بریم تا URI های فضای نام هر یک را در Predict داشته باشیم.

FOAF یکی از واژگان RDF است که رابطه های اجتماعی میان افراد، سازمان ها و گروه ها را توصیف می کند. واژگان RDF، شامل کلاسی از چیزها و ویژگی های آن چیز هستند. این چیزها (Things) می توانند نفر (FOAF.Person در گره نخست)، کتاب، پروژه نرم افزاری یا هر چیز دیگری باشند. همچنین انگیزه از RDF و واژگان، این است که ماشین ها بتوانند اطلاعات را پردازش کنند. در گره نخست، در Object از ویژگی Person از کلاس پایتونی FOAF کمک گرفته شده است، تا گونه چیزی را که می خواهیم توصیف کنیم را نفر (Person) بشناسانیم. واژگان FOAF دیگر کلاس های زیر را نیز توصیف می کنند.

  • Person
  • Organization
  • Group
  • Agent
  • Image

همچنین FOAF داری ویژگی های برای توصیف هر کدام از نمونه کلاس ها است. برای نمونه یک نفر دارای نام، رایانامه، نشانی تارنما (سایت) و علاقه مندی هایش است. در کد بالا سه ویژگی nick و name و mbox را به کار برده ایم و در ادامه فهرستی از این وژگی ها را نشان داده ایم.

  • nick
  • name
  • weblog
  • mbox
  • intrest
  • know

در پایان و در یک حلقه for نخست هر سه مولفه سه تایی درون متغیرهای subj و pred و obj ریخته شده و سپس به گونه یک تاپل همراه هم نمایش داده می شوند. شکل زیر برگشتی تابع ()print را نشان می دهد. هر Subject دارای یک گونه (Type) است که با RDF.type نشان داده شده است. در شکل زیر می بینید که ویژگی های کلاس های RDF و FOAF به URI ها نگاشت داده شده اند.

دانلود کد RDFLib Part 1

در کدهای زیر، متد ()parse از کلاس Graph، به کار رفته تا بتوانیم یک منبع داده RDF را از روی وب بخوانیم. همچنین در پایان از متد ()serialize کمک گرفتیم تا بتوانیم درون مایه RDF را به فرمت دلخواه ببریم. پارامتر type می تواند n3 یا xml برای RDF/XML یا nt برای N-Triple یا turtle برای Turtle است. همچنین در این پیوند یک فایل به نام demo.nt از رایانه خواندن شده که درون مایه آن مدل داده RDF است.

آگاهی بیشتر

آغاز کار با RDF در RDFLib

بارگذاری و ذخیره سازی RDF

پدید آورن سه تایی RDF