W3C

ساختار XML نتایج جستجوی SPARQL

توصیه W3C در 15 ژانویه 2008

این نسخه:
http://www.w3.org/TR/2008/REC-rdf-sparql-XMLres-20080115
آخرین نسخه منتشر شده:
http://www.w3.org/TR/rdf-sparql-XMLres
نگارش قبلی:
http://www.w3.org/TR/2007/PR-rdf-sparql-XMLres-20071112
ویراستارها:
Dave Beckett, Institute for Learning and Research Technology (ILRT), University of Bristol
Jeen Broekstra, Information Systems Group, Eindhoven University of Technology

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

همچنین ترجمه ها را ببینید.

كليه ‌ی حقوق چاپ و نشر 2007 W3C كه شامل تعهدات، علامت تجاری و استفاده از سند می‌ باشد، برای (MIT, ERCIM, Keio) محفوظ است.


چکیده

RDF شیوه ای انعطاف پذیر و توسعه پذیر جهت ارایه ی اطلاعات در مورد منابع وب جهانی است. که جهت نمایش چیزهای دیگر، اطلاعات شخصی، شبکه های اجتماعی، فرا داده ها راجع به مصنوعات دیجیتالی موسیقی و تصاویر مورد نظر استفاده شده است، همچنین امکان مجتمع سازی بر روی منابع اطلاعات را فراهم می نماید. یک زبان جستجوی استاندارد شده برای داده های RDF با تحقق پذیری های چندگانه عرضه ی توسعه دهنده ها و کاربران نهایی شیوه ای جهت نوشتن و مصرف نتایج کلیه ی جستجوها را در عرض این دامنه ی اطلاعات به مصرف می رساند.

این سند یک ساختار XML برای مقید سازی متغیر و ساختارهای نتایج بولی را بصورت مشروط توسط زبان جستجوی SPARQL برای RDF تشریح می نماید، که توسط کار گروه دسترسی داده های DAWG) W3C RDF)، بخش فعالیت وب معنایی چنانچه در دستور فعالیت تشریح شده، توسعه یافته است.

وضعیت این سند

این بخش وضعیت این سند را در زمان انتشارش تشریح می نماید. اسناد دیگری ممکن است جانشین این سند شوند. لیستی از انتشارات موجود W3C و نسخه ی اخیر این گزارش تخصصی می تواند در فهرست گزارشهای تخصصی W3C در /http://www.w3.org/TR یافت شود.

این یک توصیه ی W3C است.

این سند توسط اعضای W3C، توسط توسعه دهندگان نرم افزار و بوسیله ی دیگر گروههای W3C و افراد علاقه مند مرور شده است و توسط مدیریت بعنوان یک توصیه ی W3C تایید شده است. این سندی پایدار است و می تواند بعنوان مرجع مناسب یا ذکر شده از سندی دیگر مورد استفاده قرار گرفته باشد. وظیفه ی W3C در ساخت توصیه جهت جلب توجه به خصوصیات و در راستای توسعه ی گسترش کاربرد همه جانبه ی آنها می باشد. این کاربرد گرایی و یکپارچگی وب را تسهیل و افزایش می دهد.

نکات روی این سند می بایستی به public-rdf-dawg-comments@w3.org، یک لیست پستی با یک آرشیو عمومی ارسال شده باشد. پرسشها و نکات راجع به SPARQL که مربوط به این خصوصیات نیستند، شامل گسترشات و ویژگیها، ممکن است در لیست پستی public-sparql-dev@w3.org، (آرشیو عمومی) مطرح شده باشند.

این سند توسط کار گروه دسترسی داده های RDF، که بخش فعالیت وب معنایی W3C است، ارایه شد. انتشار نخست این سند بعنوان پیش نویس کار در 21 دسامبر 2004 بود و کار گروه نکات دریافت شده ی بسیاری را نشانی داده است و از آن روز به بعد منتشر نموده است. نوع رسانه ی application/sparql-results+xml پس از انتشار توصیه ی پیشنهاد شده ی نوامبر 2007 مورد تایید قرار گرفت.

گزارش عملیات ساختار XML نتایج جستجوی SPARQL متعلق به کار گروه نشان می دهد که اهداف برای پیاده سازیهای قابلیت عمل بینابینی، مجموعه در توصیه ی داوطلب سپتامبر 2007 ، به نتیجه رسید.

کار گروه دسترسی داده ها 12 انتشار، شامل توابع جمعی, و یک زبان بروز رسانی را به تعویق انداخته است.

این سند توسط یک گروه عملیاتی تحت سیاست حق انحصاری W3C در 5 فوریه 2004 ایجاد شد. W3C از یک لیست عمومی از آشکار سازهای هر حق امتیاز  ساخته شده در ارتباط با تحویل گروه، پشتیبانی می نماید؛ آن صفحه همچنین شامل دستور العمل هایی برای آشکار سازی یک حق انتخاب است. فردی که از یک حق امتیاز بدرستی مطلع است که فرد محتوای ادعا(ها)ی ضروری را باور دارد بایستی اطلاعات مطابق با بخش 6 از سیاست حق امتیاز W3C را آشکار سازد.


جدول محتویات

1. مقدمه

 زبان جستجوی SPARQL برای SPARQL-QUERY] RDF] ساختارهای نتایج جستجوی جداگانه (بخش 10جستجوی SPARQL) را تعیین می نماید. این سند یک سند نتایج SPARQL که نتایج جستجوی متغیر را مطابق جستجوهای SELECT کد گذاری می نماید (بخش 10.2 جستجوی SPARQL) و نتایج جستجوی بولی را بر اساس جستجوهای  ASK (بخش 10.5 جستجوی SPARQL) در XML] XML]  تعیین می کند.

2. تعریف

تعریف:  سند نتایج SPARQL  

یک سند نتایج SPARQL یک سند XML است که نسبت به هر یک از شمای RELAX NG XML یا شمای W3C XML در بخش 4 معتبر است.

2.1. عنصر سند

 سند نتایج SPARQL با عنصر سند sparql در فصای نامی #http://www.w3.org/2005/sparql-results، مکتوب بصورت ذیل آغاز می شود:

<?xml version="1.0"?>
<sparql xmlns="http://www.w3.org/2005/sparql-results#">
 ...
</sparql>

درون عنصر sparql عنصر زیر گروه head و یک عنصر نتایج (هر دوی results یا boolean) وجود دارند که بایستی بترتیب در آن ظاهر شوند.

2.2. سر صفحه

عنصر head نخست عنصر کودک از عنصر sparql است.

برای یک نتیجه جستجوی مقید سازی متغیر، head بایستی دربر دارنده ی رشته ای از توصیف عناصر مجموعه ی نام های متغیر جستجو در رشته راه حل (اینجا نتیجه جستجوی فراخوانی شده) باشد.

ترتیب نامهای متغیر در رشته، ترتیب نامهای متغیر معلوم به شناسه ی دستور SELECT در جستجوی SPARQL است. اگر SELECT * استفاده شده باشد، ترتیب نامها تعریف نشده است.

درون عنصر head، رشته ی مرتب نامهای متغیر منتخب جهت ساختن عناصر کودک تهی variable با نام متغیر استفاده شده است بطوریکه مقدار یک ویژگی name یک سند را بدین صورت نشان می دهد:

<?xml version="1.0"?>
<sparql xmlns="http://www.w3.org/2005/sparql-results#">

  <head>
    <variable name="x"/>
    <variable name="hpage"/>
    <variable name="name"/>
    <variable name="mbox"/>
    <variable name="blurb"/>

  </head>
...
</sparql>

برای یک نتیجه جستجوی بولی، هیچ عنصری لازم نیست حتما درون head و variable وجود داشته باشد.

برای هر نتیجه ی جستجو، head همچنین می تواند محتوی عناصر کودک link با یک ویژگی href شامل یک  URI منسوب باشد که لینک به برخی فرا داده های افزوده در مورد نتایج جستجو را نشان می دهد. URI منسوب در برابر مبنای in-scope  URI که معمولا ساختار نتایج جستجوی سند URI است، استوار می باشد. عناصر link بایستی پس از هر عنصر ارایه شده ی variable ظاهر شوند.

<?xml version="1.0"?>
<sparql xmlns="http://www.w3.org/2005/sparql-results#">

  <head>
    ...
    <link href="metadata.rdf"/>
  </head>

...
</sparql>

2.3. نتایج

دوم عنصر کود ک sparql بایستی پس از head و هر یک از results یا boolean ظاهر شود. آن نوشته شده است حتی اگر نتایج جستجو تهی باشند.

2.3.1. نتایج مقید سازی متغیر

عنصر results دارای رشته ی کامل نتایج جستجو است.

برای هر راه حل جستجو در نتایج جستجو یک عنصر کودک result از results یک سند مورد نظر ارایه شده افزوده شده است:

<?xml version="1.0"?>
<sparql xmlns="http://www.w3.org/2005/sparql-results#">
  ...  head ...

  <results>

    <result>...
    </result>
    <result>...
    </result>
    ...
  </results>

</sparql>

هر عنصر result مطابق با یک راه حل جستجو در یک نتیجه و دارای عناصر کودک (نه در یک سفارش ویژه) برای هر متغیر جستجو است که بعنوان راه حل ظاهر می شود. این جهت ثبت چگونگی متغیرهای جستجو بسته به  شرایط RDFها استفاده شده است.

هر مقید سازی درون یک راه حل بصورت یک عنصر binding بعنوان یک کودک result با نام متغیر جستجو بصورت مقدار ویژگی name نوشته شده است. همچنین برای یک مقید سازی نتیجه ی دو متغیر x و hpage این بایستی بنظر برسد:

<?xml version="1.0"?>
<sparql xmlns="http://www.w3.org/2005/sparql-results#">
  <head>
    <variable name="x"/>
    <variable name="hpage"/>
  </head>

  <results>
    <result>
      <binding name="x"> ... </binding>
      <binding name="hpage"> ... </binding>

    </result>

    <result>
      <binding name="x"> ... </binding>
      <binding name="hpage"> ... </binding>

    </result>
    ...
  </results>

</sparql>

مقدار یک مقید سازی متغیر جستجو، که یک RDF Term است، بصورت محتوای binding به شرح ذیل قرار داده شده است:

RDF URI مرجع U
<binding><uri>U</uri></binding>
RDF لفظ S
<binding><literal>S</literal></binding>
 language L با RDF لفظ S 
<binding><literal xml:lang="L">S</literal></binding>
URI D با نوع داده ی RDF لفظ تایپ شده ی S
<binding><literal datatype="D">S</literal></binding>
برچسب  I گره ی فضای خالی
<binding><bnode>I</bnode></binding>

اگر، برای یک راه حل ویژه، یک متغیر نامحدود است، عنصر binding برای آن متغیر در عنصر result قرار داده شده است.

نکته: برچسب / گره ی فضای خالی به نتیجه ی مجموعه ی سند XML محدود شده و لازم نیست هیچ وابستگی ای جهت برچسب گره ی فضای خالی برای آن RDF Term در گراف جستجو داشته باشد.

نمونه ای از یک راه حل جستجوی رمزی شده به این شکل، بصورت زیر می باشد:

<?xml version="1.0"?>
<sparql xmlns="http://www.w3.org/2005/sparql-results#">

  <head>
    <variable name="x"/>
    <variable name="hpage"/>

    <variable name="name"/>
    <variable name="age"/>
    <variable name="mbox"/>
    <variable name="friend"/>
  </head>

  <results>

    <result> 
      <binding name="x">
	<bnode>r2</bnode>
      </binding>
      <binding name="hpage">

	<uri>http://work.example.org/bob/</uri>
      </binding>
      <binding name="name">
	<literal xml:lang="en">Bob</literal>
      </binding>

      <binding name="age">
	<literal datatype="http://www.w3.org/2001/XMLSchema#integer">30</literal>
      </binding>
      <binding name="mbox">
	<uri>mailto:bob@work.example.org</uri>

      </binding>
    </result>

    ...
  </results>

</sparql>

2.3.2. نتایج بولی

یک نتیجه ی بولی بعنوان عنصر محتوای یک عنصر کودک boolean از عنصر sparql مستقیما پس از یک  head، شامل هر یک از  true یا false بصورت ذیل نوشته شده است:

<?xml version="1.0"?>
<sparql xmlns="http://www.w3.org/2005/sparql-results#">
  ...  head ...

  <boolean>true</boolean>

</sparql>

3. مثالها

3.1. مثالهای نتایج مقید سازی متغیر

نمونه ای از جستجوی SELECT SPARQL در عملیات example.rq بر روی گراف جستجوی داده ی Turtle/N3 در data.n3 مشروط بر مقید سازی متغیر نتایج جستجوی نوشته شده در XML در output.srx مرتب شده است.

این XML می تواند جهت استفاده ی XHTML نمونه ی جستجوی XML اسکریپت result-to-html.xq ارایه شده ی output-xquery.html یا با ورق XSLT  result-to-html.xsl ارایه شده ی output-xslt.html تبدیل شده باشد

3.2. مثالهای نتایج بولی

یک مثال جستجوی ASK SPARQL در عملیات example2.rq بر روی گراف جستجوی داده ی Turtle/N3 در data.n3 یک نتیجه ی جستجوی بولی نوشتاری را در XML در output2.srx تهیه می نماید.

این XML می تواند جهت استفاده ی XHTML نمونه ی جستجوی XML اسکریپت result-to-html.xq ارایه شده ی output-xquery2.html یا با ورق XSLT result-to-html.xsl ارایه شده ی output-xslt2.html تبدیل شده باشد

4.  شماهای XML

در صورتی که در قالبهای زیر باشند، آنجا شماهای اصولی XML وجود دارند:

  1. رها RELAXNG] NG] فشرده [RELAXNG-COMPACT] در result.rnc
  2. رها NG XML در result.rng
  3. W3C XML طرح [XMLSCHEMA-1] در result.xsd
    نکته: این طرح تولید شده ی دستگاه مطابق شمای RELAX NG XML است.

اگر شمای W3C XML استفاده شده است، یک ویژگی xsi:schemaLocation می تواند جهت نقطه گذاری طرح بصورت ذیل استفاده شده باشد:

<?xml version="1.0"?>
<sparql xmlns="http://www.w3.org/2005/sparql-results#"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.w3.org/2007/SPARQL/result.xsd">

  ...

</sparql>

5. نوع رسانه اینترنت، فایل الحاقی و نوع فایل مکینتاش

نوع رسانه اینترنت / نوع MIME برای نتایج جستجوی SPARQL شکل application/sparql-results+xml" XML" است.

آن توصیه شده تا فایل های حاصل امتداد ".srx" (کاملا حروف کوچک) بر روی همه ی پایگاهها داشته باشند.

آن توصیه شده تا فایل های حاصل بر روی سیستم های مکینتاش فایل HFS یک نوع فایل از "TEXT" انباشته شده باشد.

این اطلاعات موجود ذیل جهت مرور، تایید و ثبت با IANA  به IESG ارایه شده است. IESG از تاریخ انتشار داده ی این سند پاسخ نداده است.

فرم ثبت نام نوع رسانه های اینترنت

به: ietf-types@iana.org
موضوع: ثبت کاربرد نوع رسانه ها

نام نوع:
برنامه کاربردی
نام نوع زیر گروه:
sparql-results+xml
پارامترهای مورد نیاز:
هیچ
پارامترهای اختیاری:
"charset": این پارامتر دارای معانی یکسانی با پارامتر charset از نوع رسانه های "application/xml" بصورت مشخص شده در        [RFC3023], بخش 3.2 می باشد.
ملاحظات رمزگذاری:
برابر با آنها از "application/xml" بصورت معین در [RFC3023]، بخش 3.2.
ملاحظات امنیت:

نتایج جستجوی URI های مورد استفاده ی SPARQL. بخش 7 از [RFC3986] را ببینید.

نتایج جستجوی IRI های مورد استفاده ی SPARQL. بخش 8 از [RFC3987] را ببینید.

بطوریکه این نوع رسانه قرارداد "+xml" را مورد استفاده قرار می دهد، که همان الزامات امنیت را بصورتی که در [RFC3023]، بخش 10تعیین شده، سهم برد.

الزامات یکپارچگی عملیات:
آنجا توزیع یکپارچگی عملیات نامعلوم است.
مجموعه مشخصات منتشر شده:
این خصوصیات.
برنامه های کاربردی که این نوع رسانه ها را مورد استفاده قرار می دهند:
برنامه های کاربردی نامعلوم فعلی از این نوع رسانه استفاده می نمایند.
اطلاعات افزوده:
عدد(های) جادویی:
بطوریکه برای "application/xml" در [RFC3023]، بخش 3.2 تعیین شده است.
فایل(های) الحاقی:
".srx"
شناسه های تکه ای:
همچون آن از "application/xml" بصورتی که در  RFC3023] RFC 3023]، بخش 5 توصیف شده است.
URI ی مبنا:
بطوریکه در [RFC3023]، بخش 6 تعیین شده است.
کد نوع فایل مکینتاش(ها):
"TEXT"
شخص و نشانی پست الکترونیکی جهت تماس برای کسب اطلاعات بیشتر:
دیو بکت، اریک پریدهاموکس <public-rdf-dawg-comments@w3.org>
استفاده ی مورد نظر:
COMMON
محدودیتها در استفاده:
هیچ
 کنترل کننده ی Author/Change:
خصوصیات SPARQL یکی از نتایج فعالیت کار گروه دسترسی داده های RDF متعلق به کنسرسیوم وب جهانی می باشد. W3C بر روی تغییر این خصوصیات کنترل دارد.

منابع

[RFC3023] Murata, M., St. Laurent, S., and D. Kohn, "XML Media Types", RFC 3023, January 2001.

[RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform Resource Identifier (URI): Generic Syntax", STD 66, RFC 3986, January 2005.

[RFC3987] Duerst, M. and M. Suignard, "Internationalized Resource Identifiers (IRIs)", RFC 3987, January 2005.

6. منابع

[XML]
Extensible Markup Language (XML) 1.0, Third Edition, T. Bray, J. Paoli, C.M. Sperberg-McQueen, E. Maler, F. Yergeau, Editors, W3C Recommendation, 4 February 2004. This document is http://www.w3.org/TR/2004/REC-xml-20040204 . The latest version is available at http://www.w3.org/TR/REC-xml .
[SPARQL-QUERY]
SPARQL Query Language for RDF, E. Prud'hommeaux, A. Seaborne, Editors, W3C Recommendation, 15 January 2008. This document is http://www.w3.org/TR/2008/REC-rdf-sparql-query-20080115/ . The latest version is available at http://www.w3.org/TR/rdf-sparql-query/ .
[RELAXNG]
RELAX NG Specification, James Clark and MURATA Makoto, Editors, OASIS Committee Specification, 3 December 2001. This document is http://www.oasis-open.org/committees/relax-ng/spec-20011203.html . The latest version is available at http://www.oasis-open.org/committees/relax-ng/spec.html .
[RELAXNG-COMPACT]
RELAX NG Compact Syntax, James Clark, Editor. OASIS Committee Specification, 21 November 2002. This document is http://www.oasis-open.org/committees/relax-ng/compact-20021121.html .
[XMLSCHEMA-1]
XML Schema Part 1: Structures Second Edition, D. Beech, N. Mendelsohn, M. Maloney, H. S. Thompson, Editors, W3C Recommendation, 28 October 2004. This document is http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/ . The latest version is available at http://www.w3.org/TR/xmlschema-1/ .