سرویس پرس و جو ویکی داده (Wikidata Query Service یا WQS) که از اینجا در دسترس است، ابزاریست که به کمک زبان پرس و جو Sparql می توانیم به روی داده های ویکی داده دسترسی داشته باشیم. البته چون زبان دسترسی به داده های ویکی داده، Sparql است، می توانیم همانند SQL و از زبان های بیرونی مانند پایتون، جاوا، سی شارپ، پی اچ پی و … نیز با به کار گیری ماژول در آن زبان، پرس و جوها را بیرون از WQS نیز انجام دهیم.

همانطور که در نوشته آشنایی با ویکی داده – داده های پیوندی آزاد ویکی پدیا گفته شد، هر چیز (موضوع یا Subject) در ویکی داده توصیف شده است یک آیتم با شناسه یکتا، برچسب، توصیف از آن آیتم و یک تا چندین نام مستعار است که به هر آیتم نیز تا چندین ویزگی انتساب داده شده است و هر ویژگی دارای یک یا چندین مقدار است. بنابراین در WQS به دنبال پیدا کردن آیتم ها بر پایه ویژگی آن هستیم که برای این، از شناسه های یکتا کمک می گیریم.

در کد زیر سه نشانی URI برای سه مولفه SPO (یا Subject Property Object) از یک سه تایی RDF نشان داده شده است. بی توجه به Sparql ما به دنبال چه هستیم؟ کد زیر نشات می دهد که ما به دنبال مقداری (Object) با شناسه Q61 از ویژگی (Property) با شناسه P36 برای موضوع (Subject) با شناسه Q30 هستیم. همچنین یادآوری می کنیم در پایان هر سه تایی باید یک نقطه نوشته شود. بنابراین در نوشته متعیرها و عبارت SELECT چند الگو سه تایی SPARQL گفتیم که در پرس و جوهای Sparql، در پایان سه تایی ها باید نقطه نوشته شود. همچنین در ویکی داده شناسه Subject و Object با Q و شناسه Property با P آغاز می شود.

یک سه تایی Subject Property Object در ویکی داده به عنوان یک Statement درباره داده شناخته می شوند.

پیشوندها در ویکی داده

در نوشته های پیش رو خواهید دید که برای انجام پرس و جوها بر روی داده های ویکی داده، URI ها را به کار نخواهیم برد و به جای آنها، پیشوندهایی (Prefix) را که در ویکی داده شناسانده شده اند را به کار می بریم. در کد زیر به جای به کارگیری URI ها از پیشوندهایی به نام wd و wdt کمک گرفته شده است.

در نوشته نخستین گام در زبان پرس و جوی SPARQL – عبارت SELECT گفته شد که Prefix ها برای بالا بردن خوانایی پرس و جوها و کوتاه سازی پرس و جو ها با دادن نام مستعار به یک URI به کار می روند. از این رو در ویکی داده و با داشتن نام دامنه ریشه /http://www.wikidata.org پیشوند wd به زیر دامنه /entity/ و به نشانی یک Subject یا Object اشاره دارد و پیشوند wdt به زیر دامنه /prop/direct/ و به نشانی یک Property اشاره دارد. بنابراین در پرس و جوهای ویکی داده برای اشاره به یک Subject یا Object باید شناسه آنها که با حرف Q آغاز می شود را پس :wd بنویسیم و همچنین برای اشاره به یک Property باید شناسه آن را که با حرف P آغاز می شود را پس از :wdt بنویسینم.

در کد زیر نمونه ساده ای از یک پرس و جوی در ویکی داده ها را نشان می دهد که در آغاز آن پیشوندها شناسانده شده اند. سپس SELECT WHERE آمده است که درون بدنه WEHRE به دنبال داده هایی بر پایه یک سه تایی s wdt:P279 wd:Q7725634? هستیم. s? یک متغیر است که پیش روی عبارت SELECT شناسانده شده است. P279 شناسه یک ویزگی به نام subclass of است. Q7725634 شناسه ای است که به یک Object اشاره دارد که مقداری برای Subject بر پایه ویژگی P279 خواهد بود.

پرس و جوهای Sparql بر روی ویکی داده را کجا انجام دهیم

سایت https://query.wikidata.org ابزار آنلاینی برای انجام پرس و جوهای Sparql بر روی داده های RDF ویکی داده است. پس از آن که شما شناسه های مورد نظر خود را از صفحه های مربوط به هر ایتم بدست آوردید، می توانید پرس و جویی را درون سایت آماده و انجام دهید. شکل زیر برآیند پرس و جوی بالا را نشان می دهد. همانگونه که می بینید دگمه آبی رنگ برای اجرای پرس و جو و پایین صفحه نمایش برآیند پرس و جو است.

همچنین از پایین و سمت چپ، می توانید فرمت نمایش برآیند را نیز مشخص کنید. در پایین سمت راست می توانید از بخش Code، کد ساخته شده برای زبان های گوناگون مانند پایتون را بدست آورید. البته برای به کار گیری این کدهای خودکار ساخته شده، باید ماژول یا فریم ورک مورد نظر را درون سیستم خود نصب کنید. همچنین در بالا و از پنل Example می توانید فهرستی از نمونه کدهای Sparql را ببینید و اجرا کنید.

در کد بالا در واقع متغیر دلخواه s? به یک Subject اشاره دارد و s wdt:P279 wd:Q7725634? اینگونه تفسیر می شود که فهرست Subject هایی را پیدا کن که مقدار ویژگی P279 آنها برابر با Q7725634 باشد یا به گفته دیگر Subjects Subclass of literary work باشد زیرا مقدار literary work دارای شناسه Q7725634 و ویژگی subclass of دارای شناسه P279 هستند.

  • هر Subject و Property حتما دارای یک URI هستند
  • هر Object می تواند دارای URI یا مقدار باشد.
  • در برآیند شکل بالا می بینید که ستون s? که مقدارهای یافت شده برای آن است یک URI هستند.
  • ستون دیگر desc که در واقع مقدار متغیر desc? در پیش روی SELECT هست، توصیف هر Subject (یا ایتم) پیدا شده در ویکی داده است.
  • برای پیدا کردن شناسه هر آیتم و فهرست ویژگی های آن می توانید در برگه های WikiPedia از پنل سمت راست یا چپ گزینه Wikidata Item یا آیتم ویکی داده را کلیک کنید.