لطفا برای این سند به اشتباهات مراجعه نمایید، که می تواند شامل برخی از اشکالات اساسی باشد.
همچنین ترجمه ها را ببینید.
كليه ی حقوق چاپ و نشر 2006-2007 W3C كه شامل تعهدات، علامت تجاری و استفاده از سند می باشد، برای (MIT, ERCIM, Keio) محفوظ است.
Copyright © 2006-2007 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark and document use rules apply.
پروتکل SPARQL و زبان پرس و جوی RDFا (SPARQL) یک زبان پرس و جو و پروتکلی برای RDF است. این سند پروتکل SPARQL را مشخص می کند؛ که جهت توصیف وسیله ای برای انتقال جستجوهای SPARQL به سرویس پردازش جستجو و برگشت نتایج جستجو به آنچه درخواست شده، از WSDL 2.0 استفاده می نماید. این پروتکل توسط کار گروه دسترسی داده های W3C RDFا (DAWG) توسعه داده شده بود، بخشی از فعالیت وب معنایی بطوریکه در دستور فعالیت تشریح شده است.
این بخش وضعیت این سند را در هنگام انتشارش، توصیف می کند. اسناد دیگر ممکن است جانشین این سند شوند. لیستی از انتشارات موجود W3C و آخرین بازبینی این گزارش تخصصی می تواند در فهرست گزارشهای تخصصی واقع در http://www.w3.org/TR یافت شود.
این یک توصیه W3C است.
این سند توسط اعضای W3C، توسط توسعه دهندگان نرم افزار و توسط گروههای دیگر W3C و نیز توسط اشخاص علاقه مند و ذینفع مورد بازبینی قرار گرفته است، و توسط مدیریت بعنوان یک توصیه W3C مورد تایید قرار گرفته است. که سندی پایدار است و می تواند بصورت مرجع مهم یا نقل شده از سند دیگر استفاده شده باشد. نقش W3C در ایجاد توصیه در راستای جلب توجه به مشخصات و جهت ترویج توسعه همه جانبه اش می باشد. این کاربرد گرایی و یکپارچگی عملیات را در وب می افزاید.
نکاتی در مورد این سند می بایستی به [email protected]، لیستی از نامه های فرستاده شده به آرشیو عمومی ارسال شده باشد. پرسشها و نکاتی راجع به SPARQL که ربطی به این خصوصیات ندارند، شامل الحاقات و خصیصه هایی هستند که می تواند در لیست ایمیلهای ارسالی به [email protected]، (آرشیو عمومی) مورد بحث قرار گرفته باشند.
این سند توسط کار گروه دسترسی داده های RDF ارایه شد، که بخشی از فعالیت وب معنایی W3C می باشد. نشر نخست این سند بعنوان پیش نویس کار در 14 ژانویه 2005 به اتمام رسید و کار گروه دارای شماری از نکات دریافت شده نشانی داده شده و انتشارهای پس از آن است. در آنجا سرمقاله تغییر یافته پس از توصیه پیشنهاد شده نوامبر 2007 موجود است.
گزارش کاربرد پروتکل SPARQL کار گروه نشان دهنده اهدافی برای کاربردهای قابلیت عمل بینابینی مجموعه در کاندید توصیه آوریل 2006 به نتیجه رسیده می باشد.
کار گروه دسترسی داده ها دارای 12 برآمد به تعویق انداخته شده می باشد که شامل توابع جمع شده و یک زبان بهنگام درآوری است.
این سند توسط یک گروه عملیاتی تحت سیاست آشکار 5 فوریه 2004 W3C تهیه شد. W3C یک لیست عمومی از هرگونه آشکارسازهای مجاز در رابطه با قابلیتهای تحویل از گروه ساخته است؛ که آن صفحه همچنین دربردارندهی دستورالعمل ها برای آشکارسازی مجاز است. فردی که دارای شناخت واقعی از حق امتیازی است که فرد بر این باور است که دارای اداعا(ها)ی ذاتی می باشد بایستی اطلاعات مطابق با قسمت 6 از سیاست آشکار W3C را آشکار سازد.
SparqlQuery
query
query
در پیغامquery
خارج از پیغام query
SELECT
با
سرویس تهیه شدهی مجموعه داده یRDFSELECT
با
مجموعه داده یRDFCONSTRUCT
با
مجموعه داده ی سادهی RDF و انتقال محتوای HTTPASK
با
مجموعه داده ی سادهی RDFDESCRIBE
با
مجموعه داده ی سادهی RDFSELECT
با
مجموعه داده ی پیچیدهی RDFSELECT
با
جستجوی تنهای مجموعه داده ی RDFSELECT
با
مجموعه داده ی مبهم RDFSELECT
با
جستجوی معیوب ناقصSELECT
با
درخواست جستجوی رد شدهی معیوبSELECT
کاربرد الزام آور POSTSELECT
با
بین المللی کردنSELECT
با queryHttpPost الزام آور ورودی XMLاین سند (که بخودش به عنوان " پروتکل SPARQL برای RDF" اشاره می نماید) پروتکل SPARQL، وسیله ای از انتقال جستجوهای SPARQL بنابر جستجوی کاربران را به پردازشگر جستجوها توصیف می کند. پروتکل SPARQL جهت سازگاری با زبان پرس و جوی SPARQL برای RDF طراحی شده است [SPARQL]. پروتکل SPARQL به دو صورت تشریح شده است: نخست، بصورت یک واسط مختصر صرف نظر از هر تحقق محسوس، اجرا یا اتصال به پروتکل دیگری؛ دوم، همچون مقید سازی HTTP و SOAP از این واسط. این سند، بخوبی به اسناد WSDL و طرح W3C XML مرتبط شده است، در درجه نخست برای توسعه دهنده های نرم افزار ذینفع در اجرای سرویس های جستجو و سمت کاربران طراحی شده است.
هنگامی که در این سند از واژه های must, must not, should, should not, may و recommended، و واژه های ظاهر شده بصورت متن پیچیده استفاده میشود، آنها بایستی همچون آنچه در RFC2119] RFC 2119] تشریح شده، تفسیر شده باشند.
هنگامی که گزیده های محتویات این سند از دیگر اسناد، شامل واسط های WSDL و طرح XML است، از پیشوندهای فضای نامی و URI های فضای نامی استفاده مینماید:
پیشوند | URI فضای نامی |
---|---|
st |
http://www.w3.org/2005/09/sparql-protocol-types/# |
xs |
http://www.w3.org/2001/XMLSchema |
vbr |
http://www.w3.org/2005/sparql-results# |
rdf |
http://www.w3.org/1999/02/22-rdf-syntax-ns# |
whttp |
http://www.w3.org/2006/01/wsdl/http |
wsoap |
http://www.w3.org/2006/01/wsdl/soap |
soap |
http://www.w3.org/2003/05/soap-envelope |
wsdlx |
http://www.w3.org/2005/08/wsdl-extensions |
tns |
http://www.w3.org/2005/08/sparql-protocol-query/# |
این مجموعه ای از اسنادی است که شامل خصوصیات پروتکل SPARQL می باشند:
محتویات پروتکل SPARQL یک واسط ، SparqlQuery
،
که در گردش محتویات یک عملیات
query
است. پروتکل SPARQL
بطور مطلق تشریح
شده با WSDL 2.0 [WSDL2] برحسب وب سرویسی که
واسط کاربردهایش، انواع، نواقص و عملیات، بخوبی با HTTP و SOAP مقید سازی شده
است. یادداشتی که در حین استفاده این سند از WSDL 2.0 به تشریح
پروتکل
SPARQL می پردازد، در آن بدون تعهد روی هر بخش از تحقق پذیری جهت هر راهبرد
اجرای ویژه ای، شامل استفاده از هر کتابخانهWSDL یا چارچوب زبان برنامه نویسی
بهره می گیرد.
query
SparqlQuery
تنها واسط متعلق به پروتکل است. آن شامل عملی
همچون query
است که جهت انتقال یک
رشته
جستجوی SPARQL استفاده شده و بطور اختیاری، توصیفی از یک
مجموعه داده
ی
RDF را می رساند.
عملیات query
بصورت یک
نمونه تبادل پیغام
In-Out توصیف شده است [WSDL-Adjuncts]. محدودیتهای نمونه تبادل پیغام In-Out
بصورت ذیل موجود است:
این نمونه شامل دو پیغام صحیح، بترتیب زیر می باشد:
یک پیغام:
بوسیله یک جزء مرجع پیغام واسط متعلق به {message label} نشان داده شده است "In" و {direction} است "in"
مطابق برخی گره N دریافت شده است
یک پیغام:
بوسیله یک جزء مرجع پیغام واسط متعلق به {message label} نشان داده شده است "Out" و {direction} است "out"
فرستاده شده به گره N
این نمونه از دستور استفاده می نماید 2.2.1 پیغام جایگزین های نقص.
این واسط و عملکردش در جزء زیرین WSDL 2.0 توصیف شده اند (مطابق protocol-query.wsdl که شامل اعلانهای فضای نامی مربوطه می باشد):
<!-- Abstract SparqlQuery Interface --> <interface name="SparqlQuery" styleDefault="http://www.w3.org/2006/01/wsdl/style/iri"> <!-- the Interface Faults --> <fault name="MalformedQuery" element="st:malformed-query"/> <fault name="QueryRequestRefused" element="st:query-request-refused"/> <!-- the Interface Operation --> <operation name="query" pattern="http://www.w3.org/2006/01/wsdl/in-out"> <documentation>The operation is used to convey queries and their results from clients to services and back again.</documentation> <input messageLabel="In" element="st:query-request"/> <output messageLabel="Out" element="st:query-result"/> <!-- the interface faults are out faults --> <outfault ref="tns:MalformedQuery" messageLabel="Out"/> <outfault ref="tns:QueryRequestRefused" messageLabel="Out"/> </operation> </interface>
query
در پیغام کاملا، محتویات موجود در پیغام از عملیات query
متعلق به SparqlQuery
واسطی از یک نوع پیچیده طرح XML است، st:query-request
درExcerpt 1.0 ترکیبی بیشتر از دو قسمت فراخوانده شده است: یک
رشته جستجوی
SPARQL؛ و توصیفهای صفر یا یک
مجموعه
داده RDF. رشته جستجوی SPARQL، توسط یک نوع query
شناسایی شده، توسط [SPARQL]
تعریف شده
است بطوریکه "رشته ای از کاراکترها در زبان مشخص شده توسط دستور زبان
[SPARQL] با ایجاد جستجو آغاز شود". توصیف مجموعه داده های RDF ترکیبی از
صفر یا یکی از رسم های ترکیبی پیش فرض RDF با ترکیب RDF
از رسم های مشخص شده ی RDF توسط صفر یا انواع بیشتر default-graph-uri
—
است و توسط صفر یا رسم های نام برده ی RDF، بوسیله صفر یا انواع بیشتر named-graph-uri
شناسایی شده اند. اینها بترتیب مطابق با کلیدواژه های
FROM
و FROM NAMED
در [SPARQL] هستند.
انواع اینها در طرح گسسته XML ذیل، مطابق protocol-types.xsd:
<xs:element name="query-request"> <xs:complexType> <xs:sequence> <xs:element minOccurs="1" maxOccurs="1" name="query" type="xs:string"> <xs:annotation> <xs:documentation>query is an xs:string constrained by the language definition, http://www.w3.org/TR/rdf-sparql-query/#grammar, as "a sequence of characters in the language defined by the [SPARQL] grammar, starting with the Query production".</xs:documentation> </xs:annotation> </xs:element> <xs:element minOccurs="0" maxOccurs="unbounded" name="default-graph-uri" type="xs:anyURI"/> <xs:element minOccurs="0" maxOccurs="unbounded" name="named-graph-uri" type="xs:anyURI"/> </xs:sequence> </xs:complexType> </xs:element>
مجموعه داده RDF هر یک می تواند در یک جستجوی تعیین شده [SPARQL] کلید واژه
های FROM
و FROM NAMED
را مورد استفاده قرار دهد؛ یا می تواند در پروتکل تشریح شده در این سند تعیین
شده؛ یا می تواند در هر دو رشته ی جستجو و در پروتکل تعیین شده باشد.
در مورد جای هر دوی جستجو و پروتکل یک مجموعه داده ی RDF
تعیین میشود، اما یکسان با مجموعه داده ی RDF نیست، مجموعه داده ی تعیین شده
در پروتکل می بایستی مجموعه داده ی RDF مورد استفاده ی عملیات query
متعلق به SparqlQuery
باشد.
یک سرویس پروتکل اعطای SPARQL
می تواند یک مجموعه داده ی پیش فرض RDF را در برابر هر یک از
درخواستهای جستجوی SPARQL اگر در آنجا اجرا نشده باشند مجموعه داده تعیین شده ی RDF
را در پروتکل یا در درخواست جستجو تهیه نماید. یک
سرویس پروتکل اعطای SPARQL
می تواند پردازش هر درخواست جستجویی که قادر به تعیین مجموعه داده RDF
نباشد را نپذیرد. سرانجام، یک سرویس
پروتکل اعطای SPARQL می تواند پردازش هر درخواست جستجوی مغایر
با هر مجموعه داده تعیین شده ی RDF را نپذیرد. پیغامهای نقص 2.1.4 query
، QueryRequestRefused
را ببینید.
کلید واژه ی BASE
در رشته ی جستجو Base
IRI استفاده شده جهت رفع خویشاوندی IRIs را با
شناسه ماخذ یکسان (URI): ترکیب نحوی
کلی [RFC3986] بخش 5.1.1 تعیین می نماید، "مبنای جاسازس
شده ی URI
در محتوا". بخش 5.1.2, "مبنای URI مطابق هویت مختصر"چگونگی مبنای IRI را که می
تواند ناشی از سند مختصر باشد را تعیین می نماید، همچون یک پوشش SOAP با یک
رهنمود xml:base. پروتکل URI SPARQLهای غیر مرجع را مورد جستجو قرار نمی دهد
بنابراین بخش 5.1.3 را درخواست نمی کند. سرانجام، مطابق بخش 5.1.4, سرویس های
پروتکل SPARQL می بایستی مبنای مالکیت URI خوشان را تعیین کنند، که
می تواند سرویس invocation URI باشد.
query
در کل، محتویات پیغام خروجی عملیات query
متعلق به SparqlQuery
نمونه ای از یک نوع پیچیده ی XML Schema است، query-result
فراخوانده
شده در گزیده ی 1.2, ترکیب هر دو:
نوع query-result
در این W3C XML
Schema گسسته، مطابق protocol-types.xsd
تعیین شده است:
<xs:element name="query-result"> <xs:annotation> <xs:documentation>The type for serializing query results, either as XML or RDF/XML.</xs:documentation> </xs:annotation> <xs:complexType> <xs:choice> <xs:element maxOccurs="1" ref="vbr:sparql"/> <xs:element maxOccurs="1" ref="rdf:RDF"/> </xs:choice> </xs:complexType> </xs:element>
query
[WSDL2- اضافات] دستورات انتشار اشکالات مجزا که چگونگی نواقص عملیات و فعل و
انفعال پیامها را تعریف مینمایند را مشخص میکند. عمل query
دستور
پیغام تغییرات
نقص را بکار می برد:
هر پیام بعدی نخست در نمونه میتواند با یک پیغام نقص جایگزین شده باشد، که میبایستی جهت یکسانی داشته باشد. پیغام نقص بایستی به مقصد اتصال مشابهی تحویل داده شده باشد بطوریکه جایگزین آن پیغام شود، جز در صورتی که به شکل دیگری با یک توسعه یا گسترش معتبر تعیین شده باشد. اگر در آنجا مسیری به این اتصال موجود نیست، اشکال بایستی از میان رفته باشد.
بدین گونه، عملیات query
نگهداشته شده در واسط SparqlQuery
میتواند بازگردد، بجای پیغام Out، هر یک از
پیغامهای MalformedQuery
یا
QueryRequestRefused
، که در این شکل گسسته ی XML Schema از protocol-types.xsd
تعیین شده اند:
<xs:element type="xs:string" name="fault-details"> <xs:annotation> <xs:documentation> This element contains human-readable information about the fault returned by the SPARQL query processing service.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="malformed-query"> <xs:complexType> <xs:all><xs:element minOccurs="0" maxOccurs="1" ref="st:fault-details"/></xs:all> </xs:complexType> </xs:element> <xs:element name="query-request-refused"> <xs:complexType> <xs:all><xs:element minOccurs="0" maxOccurs="1" ref="st:fault-details"/></xs:all> </xs:complexType> </xs:element>
هنگامی که مقدار نوع query
یک رشته از کاراکترهای مجاز در زبان
تعریف شده توسط دستور زبان
SPARQL نیست، MalformedQuery
یا پیغام نقص QueryRequestRefused
بایستی برگشته باشد. مطابق دستور
پیغام تغییرات نقص، اگر یک نقص WSDL برگشته باشد، شامل MalformedQuery
،
یک پیغام Out نبایستی
برگشته باشد.
هنگامی که پیغام نقص MalformedQuery
برگشته باشد، سرویس های
پردازش جستجو بایستی بیانگر، اشکال زدایی یا دیگر اطلاعات
افزوده برای مصرف انسانی از طریق نوع تعیین شدهی
fault-details
در گلچین 1.3 باشند.
این پیغام نقص WSDL میبایستی هنگامی که یک سرویس گیرنده
درخواستی را ارایه مینماید که سرویس جهت پردازش نپذیرفته؛ برگشته باشد. پیغام
نقص QueryRequestRefused
هیچ یک را نشان نمی دهد خواه سرور بتواند
یا نتواند در آینده درخواست یا درخواستهایی را پردازش کند، آن همچنین تحمیل یک
سرویس اعطای SPARQL مطابق
برگشت دیگر کدهای وضعیت HTTP یا هدرهای HTTP
را ملزم نمی سازد بطوریکه مناسب معناشناسی معین [HTTP] باشد.
هنگامی که پیغام خطای QueryRequestRefused
برگشته، سرویس های
پردازش جستجو بایستی توضیح، اشکال زدایی یا اطلاعات دیگر مورد
نظر برای استفاده انسان را از طریق نوع مشخص شده ی
fault-details
در گلچین 1.3شامل شوند.
عملیات واسط SparqlQuery
توصیف شده ی query
بقدر
چکیده ی عملیاتی است؛ که مقید سازی پروتکل درخواستها جهت مناسب بودن یک عملیات invocable
می باشد. این دو بخش دیگر این سند مقید سازی های HTTP و SOAP
را تشریح می کند. یک سرویس پروتکل
conformant SPARQL بایستی واسط SparqlQuery
را
پشتیبانی نماید؛ اگر یک سرویس پروتکل SPARQL مقید سازی های HTTP را پشتیبانی می
نماید، که آن بایستی مقید سازی ها را بطوریکه که در protocol-query.wsdl
توصیف شده، پشتیبانی نماید. یک سرویس پروتکل SPARQL بایستی دیگر
واسط ها را پشتیبانی کند. جهت کسب اطلاعات بیشتر مقید
سازی های 2.3 SOAP را ببینید.
[WSDL2 - اضافات] تعاریف یک وسیله از عملیات واسط چکیده مقید سازی به HTTP. مقید
سازی های HTTP برای عملیات
query
(مطابق protocol-query.wsdl)
بصورت ذیل هستند:
<!-- the HTTP GET binding for query operation --> <binding name="queryHttpGet" interface="tns:SparqlQuery" type="http://www.w3.org/2006/01/wsdl/http" whttp:version="1.1"> <fault ref="tns:MalformedQuery" whttp:code="400"/> <fault ref="tns:QueryRequestRefused" whttp:code="500"/> <operation ref="tns:query" wsdlx:safe="true" whttp:method="GET" whttp:faultSerialization="*/*" whttp:inputSerialization="application/x-www-form-urlencoded" whttp:outputSerialization="application/sparql-results+xml, application/rdf+xml, */*" /> </binding> <!-- the HTTP POST binding for query operation --> <binding name="queryHttpPost" interface="tns:SparqlQuery" type="http://www.w3.org/2006/01/wsdl/http" whttp:version="1.1"> <fault ref="tns:MalformedQuery" whttp:code="400"/> <fault ref="tns:QueryRequestRefused" whttp:code="500"/> <operation ref="tns:query" wsdlx:safe="true" whttp:method="POST" whttp:faultSerialization="*/*" whttp:inputSerialization="application/x-www-form-urlencoded, application/xml" whttp:outputSerialization="application/sparql-results+xml, application/rdf+xml, */*" /> </binding>
در آنجا دو مقید سازیqueryHttpGet
HTTP و queryHttpPost
،
هر دو که بصورت مقید سازیهای واسط SparqlQuery
توصیف شده اند. در هر
یک از این مقید سازی ها، دو نقص در واسط SparqlQuery توصیف شده، MalformedQuery
و QueryRequestRefused
بترتیب مقید به
کدهای وضعیت HTTP 400 Bad Request
و
500 Internal Server Error
هستند [HTTP].
مقید سازی queryHttpGet
می بایستی استفاده شده
باشد، جز در مواردی که در آنجا جستجوی رمزی شده ی - URL از محدوده ی مورد استفاده
تجاوز نماید، که در این مورد مقید سازی queryHttpPost
می
بایستی استفاده شده باشد.
نکته ای آموزنده در مورد ترتیب محدودیتها. سریال سازی خروجی
مقید سازی های
queryHttpGet
و queryHttpPost
عمدا بنابر ضرورت به
ترتیبی است که انواع سریال سازی رسم های RDF را منعکس می نمایند. سریال سازی اشکال queryHttpGet
و
queryHttpPost
همچنین آگاهانه ضروری شده اند. یک
سرویس پروتکل conformant SPARQL
می تواند واسط های تناوبی WSDL و مقید سازی ها را با محدودیتهای متفاوت تهیه می
نماید.
این مقید سازی عملیات query
از HTTP] GET
]
با محدودیتهای نوع سریال سازی ذیل استفاده می نماید: مقدار whttp:faultSerialization
بصورت */*
است؛ دوم، مقدار
whttp:inputSerialization
بصورت application/x-www-form-urlencoded
با رمزگذاری UTF-8 می باشد؛ و سوم whttp:outputSerialization
بصورت application/sparql-results+xml
با رمزگذاری UTF-8 و
application/rdf+xml
با رمزگذاری UTF-8 و */*
است.
این مقید سازی عملیات query
از HTTP] POST
]
با محدودیتهای نوع سریال سازی ذیل استفاده می نماید: مقدار whttp:faultSerialization
بصورت */*
است؛ دوما مقدار
whttp:inputSerialization
بصورت application/x-www-form-urlencoded
با رمزگذاری UTF-8 و
application/xml
با رمزگذاری UTF-8 است؛ و سوما whttp:outputSerialization
بصورت
application/sparql-results+xml
با رمزگذاری UTF-8 ، application/rdf+xml
با رمزگذاری UTF-8 و
*/*
است.
مثال های پیگیری HTTP چکیده ی ذیل درخواست عملیات query
را
بصورت سناریوهای متفاوت جداگانه توضیح می دهد. اینها پیگیری مثالهای مجزایی مطابق
پیگیریهای HTTP
به سه شیوه است: (1) در هر مثال رشته
"EncodedQuery" رشته ی برابر URL- رمزگذاری شده ی افزوده ی جستجوی SPARQL را
در اول بلوک هر مثال ارایه می نماید؛ (2) تنها اجزای پاسخ ناتمام، شامل نتایج جستجو
نمایش داده شده اند؛
(3) مقادیر URI از default-graph-uri
و named-graph-uri
همچنین URL- رمزی نشده است.
این جستجوی SPARQL
PREFIX dc: <http://purl.org/dc/elements/1.1/> SELECT ?book ?who WHERE { ?book dc:creator ?who }
به سرویس جستجوی http://www.example/sparql/،SPARQL ، بصورت برجسته در این پیگیری HTTP هدایت شده است:
GET /sparql/?query=EncodedQuery HTTP/1.1 Host: www.example User-agent: my-sparql-client/0.1
آن جستجو در برابر مجموعه داده ی service-supplied RDF، توسط آن سرویس جستجوی SPARQL، برگشتهای نتیجه ی جستجوی ذیل اجرا شده است:
HTTP/1.1 200 OK
Date: Fri, 06 May 2005 20:55:12 GMT
Server: Apache/1.3.29 (Unix) PHP/4.3.4 DAV/1.0.3
Connection: close
Content-Type: application/sparql-results+xml
<?xml version="1.0"?>
<sparql xmlns="http://www.w3.org/2005/sparql-results#">
<head>
<variable name="book"/>
<variable name="who"/>
</head>
<results distinct="false" ordered="false">
<result>
<binding name="book"><uri>http://www.example/book/book5</uri></binding>
<binding name="who"><bnode>r29392923r2922</bnode></binding>
</result>
...
<result>
<binding name="book"><uri>http://www.example/book/book6</uri></binding>
<binding name="who"><bnode>r8484882r49593</bnode></binding>
</result>
</results>
</sparql>
این جستجوی SPARQL
PREFIX dc: <http://purl.org/dc/elements/1.1/> SELECT ?book ?who WHERE { ?book dc:creator ?who }
به سرویس جستجوی http://www.other.example/sparql/،SPARQL ، بصورت برجسته در این پیگیری HTTP هدایت شده است:
GET /sparql/?query=EncodedQuery&default-graph-uri=http://www.other.example/books HTTP/1.1 Host: www.other.example User-agent: my-sparql-client/0.1
آن جستجو — در برابر شناسایی مجموع داده ی RDF توسط مقدار پارامتر default-graph-uri
، http://www.other.example/books — توسط آن سرویس جستجوی SPARQL،
برگشتهای نتیجه ی جستجوی ذیل اجرا شده است:
HTTP/1.1 200 OK
Date: Fri, 06 May 2005 20:55:12 GMT
Server: Apache/1.3.29 (Unix) PHP/4.3.4 DAV/1.0.3
Connection: close
Content-Type: application/sparql-results+xml
<?xml version="1.0"?>
<sparql xmlns="http://www.w3.org/2005/sparql-results#">
<head>
<variable name="book"/>
<variable name="who"/>
</head>
...
<results distinct="false" ordered="false">
<result>
<binding name="book"><uri>http://www.example/book/book2</uri></binding>
<binding name="who"><bnode>r1115396427r1133</bnode></binding>
</result>
<result>
<binding name="book"><uri>http://www.example/book/book3</uri></binding>
<binding name="who"><bnode>r1115396427r1133</bnode></binding>
</result>
<result>
<binding name="book"><uri>http://www.example/book/book1</uri></binding>
<binding name="who"><literal>J.K. Rowling</literal></binding>
</result>
</results>
</sparql>
این جستجوی SPARQL
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX myfoaf: <http://www.example/jose/foaf.rdf#> CONSTRUCT { myfoaf:jose foaf:depiction <http://www.example/jose/jose.jpg>. myfoaf:jose foaf:schoolHomepage <http://www.edu.example/>. ?s ?p ?o.} WHERE { ?s ?p ?o. myfoaf:jose foaf:nick "Jo". FILTER ( ! (?s = myfoaf:kendall && ?p = foaf:knows && ?o = myfoaf:edd ) && ! ( ?s = myfoaf:julia && ?p = foaf:mbox && ?o = <mailto:[email protected]> ) && ! ( ?s = myfoaf:julia && ?p = rdf:type && ?o = foaf:Person)) }
به سرویس جستجوی http://www.example/sparql/،SPARQL، بصورت برجسته در این پیگیری HTTP هدایت شده است:
GET /sparql/?query=EncodedQuery&default-graph-uri=http://www.example/jose-foaf.rdf HTTP/1.1 Host: www.example User-agent: sparql-client/0.1 Accept: text/turtle, application/rdf+xml
با پاسخگویی برجسته اینجا:
HTTP/1.1 200 OK
Date: Fri, 06 May 2005 20:55:11 GMT
Server: Apache/1.3.29 (Unix)
Connection: close
Content-Type: text/turtle
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix foaf: <http://xmlns.com/foaf/0.1/>.
@prefix myfoaf: <http://www.example/jose/foaf.rdf#>.
myfoaf:jose foaf:name "Jose Jimeñez";
foaf:depiction <http://www.example/jose/jose.jpg>;
foaf:nick "Jo";
...
foaf:schoolHomepage <http://www.edu.example/>;
foaf:workplaceHomepage <http://www.corp.example/>;
foaf:homepage <http://www.example/jose/>;
foaf:knows myfoaf:juan;
rdf:type foaf:Person.
myfoaf:juan foaf:mbox <mailto:[email protected]>;
rdf:type foaf:Person.
نکته: ثبت برای نوع رسانه ی text/turtle شروع شده بود اما در زمان این انتشار کامل نشده است. لطفا http://www.w3.org/TeamSubmission/turtle را برای نوع رسانه ی ثبت شده ی نهایی زبان Turtle ببینید.
این جستجوی SPARQL
PREFIX dc: <http://purl.org/dc/elements/1.1/> ASK WHERE { ?book dc:creator "J.K. Rowling"}
به سرویس جستجوی http://www.example/sparql/،SPARQL، بصورت برجسته در این پیگیری HTTP هدایت شده است:
GET /sparql/?query=EncodedQuery&default-graph-uri=http://www.example/books HTTP/1.1 Host: www.example User-agent: sparql-client/0.1
با پاسخگویی برجسته اینجا:
HTTP/1.1 200 OK Date: Fri, 06 May 2005 20:48:25 GMT Server: Apache/1.3.29 (Unix) PHP/4.3.4 DAV/1.0.3 Connection: close Content-Type: application/sparql-results+xml <?xml version="1.0"?> <sparql xmlns="http://www.w3.org/2005/sparql-results#"> <head></head> <boolean>true</boolean> </sparql>
این جستجوی SPARQL
PREFIX books: <http://www.example/book/> DESCRIBE books:book6
به سرویس جستجوی http://www.example/sparql/،SPARQL، بصورت برجسته در این پیگیری HTTP هدایت شده است:
GET /sparql/?query=EncodedQuery&default-graph-uri=http://www.example/books HTTP/1.1 Host: www.example User-agent: sparql-client/0.1
با پاسخگویی برجسته اینجا:
HTTP/1.1 200 OK
Date: Wed, 03 Aug 2005 12:48:25 GMT
Server: Apache/1.3.29 (Unix) PHP/4.3.4 DAV/1.0.3
Connection: close
Content-Type: application/rdf+xml
<?xml version="1.0"?>
<rdf:RDF ...
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:books="http://www.example/book/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
<rdf:Description rdf:about="http://www.example/book/book6">
<dc:title>Example Book #6 </dc:title>
</rdf:Description>
</rdf:RDF>
این جستجوی SPARQL
PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX dc: <http://purl.org/dc/elements/1.1/> SELECT ?who ?g ?mbox WHERE { ?g dc:publisher ?who . GRAPH ?g { ?x foaf:mbox ?mbox } }
به سرویس جستجوی http://www.example/sparql/ ،SPARQL، بصورت برجسته ی اینجا (با تفکیکهای سطر برای خوانایی) هدایت شده است:
GET /sparql/?query=EncodedQuery&default-graph-uri=http://www.example/publishers &default-graph-uri=http://www.example/morepublishers&named-graph-uri=http://your.example/foaf-alice &named-graph-uri=http://www.example/foaf-bob&named-graph-uri=http://www.example/foaf-susan &named-graph-uri=http://this.example/john/foaf Host: www.example User-agent: sparql-client/0.1
با پاسخگویی برجسته اینجا:
HTTP/1.1 200 OK
Date: Wed, 03 Aug 2005 12:48:25 GMT
Server: Apache/1.3.29 (Unix) PHP/4.3.4 DAV/1.0.3
Connection: close
Content-Type: application/sparql-results+xml
<?xml version="1.0"?>
<sparql xmlns="http://www.w3.org/2005/sparql-results#">
<head>
<variable name="who"/>
<variable name="g"/>
<variable name="mbox"/>
</head>
...
<results ordered="false" distinct="false">
<result>
<binding name="who">
<literal>Alice</literal>
</binding>
<binding name="g">
<uri>http://your.example/foaf-alice</uri>
</binding>
<binding name="mbox">
<uri>mailto:[email protected]</uri>
</binding>
</result>
<result>
<binding name="who">
<literal>Bob</literal>
</binding>
<binding name="g">
<uri>http://www.example/foaf-bob</uri>
</binding>
<binding name="mbox">
<uri>mailto:[email protected]</uri>
</binding>
</result>
<result>
<binding name="who">
<literal>Susan</literal>
</binding>
<binding name="g">
<uri>http://www.example/foaf-susan</uri>
</binding>
<binding name="mbox">
<uri>mailto:[email protected]</uri>
</binding>
</result>
<result>
<binding name="who">
<literal>John</literal>
</binding>
<binding name="g">
<uri>http://this.example/john/foaf</uri>
</binding>
<binding name="mbox">
<uri>mailto:[email protected]</uri>
</binding>
</result>
</results>
</sparql>
این جستجوی SPARQL
PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX dc: <http://purl.org/dc/elements/1.1/> SELECT ?who ?g ?mbox FROM <http://www.example/publishers> FROM NAMED <http://www.example/alice> FROM NAMED <http://www.example/bob> WHERE { ?g dc:publisher ?who . GRAPH ?g { ?x foaf:mbox ?mbox } }
به سرویس جستجوی http://www.example/sparql/،SPARQL، بصورت برجسته در این پیگیری HTTP هدایت شده است:
GET /sparql/?query=EncodedQuery HTTP/1.1 Host: www.example User-agent: sparql-client/0.1
با پاسخگویی برجسته اینجا:
HTTP/1.1 200 OK
Date: Wed, 03 Aug 2005 12:48:25 GMT
Server: Apache/1.3.29 (Unix) PHP/4.3.4 DAV/1.0.3
Connection: close
Content-Type: application/sparql-results+xml
<?xml version="1.0"?>
<sparql xmlns="http://www.w3.org/2005/sparql-results#">
...
<head>
<variable name="who"/>
<variable name="g"/>
<variable name="mbox"/>
</head>
<results ordered="false" distinct="false">
<result>
<binding name="who">
<literal>Bob Hacker</literal>
</binding>
<binding name="g">
<uri>http://www.example/bob</uri>
</binding>
<binding name="mbox">
<uri>mailto:[email protected]</uri>
</binding>
</result>
<result>
<binding name="who">
<literal>Alice Hacker</literal>
</binding>
<binding name="g">
<uri>http://www.example/alice</uri>
</binding>
<binding name="mbox">
<uri>mailto:[email protected]</uri>
</binding>
</result>
</results>
</sparql>
این جستجوی SPARQL
PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX dc: <http://purl.org/dc/elements/1.1/> SELECT ?who ?g ?mbox FROM <http://www.example/publishers> FROM NAMED <http://www.example/john> FROM NAMED <http://www.example/susan> WHERE { ?g dc:publisher ?who . GRAPH ?g { ?x foaf:mbox ?mbox } }
به سرویس جستجوی http://www.example/sparql/،SPARQL، بصورت برجسته در این پیگیری HTTP هدایت شده است:
GET /sparql/?query=EncodedQuery&default-graph-uri=http://www.example/morepublishers &named-graph-uri=http://www.example/bob&named-graph-uri=http://www.example/alice HTTP/1.1 Host: www.example User-agent: sparql-client/0.1
این عملیات پروتکل حاوی یک مجموعه داده ی RDF است: مجموعه داده ی مشخص شده در
جستجو نسبت به یک نوع مشخص در پروتکل (از طریق پارامترهای default-graph-uri
و named-graph-uri
) متفاوت است. یک سرویس پروتکل
conformant SPARQL باید با اجرای جستجو در برابر مجموعه داده ی مشخص شده ی RDF در
پروتکل، این ابهام را رفع نماید:
HTTP/1.1 200 OK Date: Wed, 03 Aug 2005 12:48:25 GMT Server: Apache/1.3.29 (Unix) PHP/4.3.4 DAV/1.0.3 Connection: close Content-Type: application/sparql-results+xml <?xml version="1.0"?> <sparql xmlns="http://www.w3.org/2005/sparql-results#"> <head> <variable name="who"/> <variable name="g"/> <variable name="mbox"/> </head> <results ordered="false" distinct="false"> <result> <binding name="who"> <literal>Bob Hacker</literal> </binding> <binding name="g"> <uri>http://www.example/bob</uri> </binding> <binding name="mbox"> <uri>mailto:[email protected]</uri> </binding> </result> <result> <binding name="who"> <literal>Alice Hacker</literal> </binding> <binding name="g"> <uri>http://www.example/alice</uri> </binding> <binding name="mbox"> <uri>mailto:[email protected]</uri> </binding> </result> </results> </sparql>
این جستجوی بی اعتبار SPARQL از نظر نحوی
PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT ?name WHERE { ?x foaf:name ?name ORDER BY ?name }
به سرویس جستجوی http://www.example/sparql/،SPARQL، بصورت برجسته در این پیگیری HTTP هدایت شده است:
GET /sparql/?query=EncodedQuery&default-graph-uri=http://www.example/morepublishers HTTP/1.1 Host: www.example User-agent: sparql-client/0.1
با پاسخ — MalformedQuery
تغییر اشکال پیغام خروجی، مطابق 2.1
SparqlQuery — برجسته شده در اینجا:
HTTP/1.1 400 Bad Request Date: Wed, 03 Aug 2005 12:48:25 GMT Server: Apache/1.3.29 (Unix) PHP/4.3.4 DAV/1.0.3 Connection: close Content-Type: text/plain; charset=UTF-8 4:syntax error, unexpected ORDER, expecting '}'
این جستجوی SPARQL
PREFIX bio: <http://bio.example/schema/#> SELECT ?valence FROM <http://another.example/protein-db.rdf> WHERE { ?x bio:protein ?valence } ORDER BY ?valence
به سرویس جستجوی http://www.example/sparql/،SPARQL، بصورت برجسته در این پیگیری HTTP هدایت شده است:
GET /sparql/?query=EncodedQuery&default-graph-uri=http://another.example/protein-db.rdf HTTP/1.1 Host: www.example User-agent: sparql-client/0.1
با پاسخ — QueryRequestRefused
تغییر اشکال پیغام خروجی، مطابق 2.1
SparqlQuery — برجسته شده در اینجا:
HTTP/1.1 500 Internal Server Error Date: Wed, 03 Aug 2005 12:48:25 GMT Server: Apache/1.3.29 (Unix) PHP/4.3.4 DAV/1.0.3 Connection: close Content-Type: text/html; charset=UTF-8 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>SPARQL Processing Service: Query Request Refused</title> </head> <body> <p> Query Request Refused: your request could not be processed because <code>http://another.example/protein-db.rdf</code> could not be retrieved within the time alloted.</p> </body> </html>
برخی جستجوهای SPARQL، که ممکن است ماشین ایجاد نموده باشد، می تواند از انتقال یافته ی قابل اعتماد از طریق اتصالات HTTP GET توصیف شده در 2.2 HTTP اتصالات باشد. در آن موارد اتصال توصیف شده ی POST در 2.2 می تواند استفاده شده باشد. این جستجوی SPARQL.
PREFIX : <http://www.w3.org/2002/12/cal/icaltzd#> PREFIX Chi: <http://www.w3.org/2002/12/cal/test/Chiefs.ics#> PREFIX New: <http://www.w3.org/2002/12/cal/tzd/America/New_York#> PREFIX XML: <http://www.w3.org/2001/XMLSchema#> SELECT ?summary WHERE { { Chi:D603E2AC-C1C9-11D6-9446-003065F198AC a :Vevent; :dtend "2002-09-08T16:00:00"^^New:tz; :dtstamp "2002-09-06T03:09:27Z"^^XML:dateTime; :dtstart "2002-09-08T13:00:00"^^New:tz; :summary ?summary; :uid "D603E2AC-C1C9-11D6-9446-003065F198AC" . } UNION { Chi:D603E90B-C1C9-11D6-9446-003065F198AC a :Vevent; :dtend "2002-09-15T16:00:00"^^New:tz; :dtstamp "2002-09-06T03:10:19Z"^^XML:dateTime; :dtstart "2002-09-15T13:00:00"^^New:tz; :summary ?summary; :uid "D603E90B-C1C9-11D6-9446-003065F198AC" . } UNION { Chi:D603ED6E-C1C9-11D6-9446-003065F198AC a :Vevent; :dtend "2002-09-22T16:00:00"^^New:tz; :dtstamp "2002-09-06T03:11:05Z"^^XML:dateTime; :dtstart "2002-09-22T13:00:00"^^New:tz; :summary ?summary; :uid "D603ED6E-C1C9-11D6-9446-003065F198AC" . } UNION { Chi:D603F18C-C1C9-11D6-9446-003065F198AC a :Vevent; :dtend "2002-09-29T16:00:00"^^New:tz; :dtstamp "2002-09-06T03:15:46Z"^^XML:dateTime; :dtstart "2002-09-29T13:00:00"^^New:tz; :summary ?summary; :uid "D603F18C-C1C9-11D6-9446-003065F198AC" . } UNION { Chi:D603F5B7-C1C9-11D6-9446-003065F198AC a :Vevent; :dtend "2002-11-04"^^XML:date; :dtstamp "2002-09-06T03:12:53Z"^^XML:dateTime; :dtstart "2002-11-03"^^XML:date; :summary ?summary; :uid "D603F5B7-C1C9-11D6-9446-003065F198AC" . } UNION { Chi:D603F9D7-C1C9-11D6-9446-003065F198AC a :Vevent; :dtend "2002-11-10T20:15:00"^^New:tz; :dtstamp "2002-09-06T03:14:12Z"^^XML:dateTime; :dtstart "2002-11-10T17:15:00"^^New:tz; :summary ?summary; :uid "D603F9D7-C1C9-11D6-9446-003065F198AC" . } UNION { Chi:D604022C-C1C9-11D6-9446-003065F198AC a :Vevent; :dtend "2002-11-17T17:00:00"^^New:tz; :dtstamp "2002-09-06T03:14:51Z"^^XML:dateTime; :dtstart "2002-11-17T14:00:00"^^New:tz; :summary ?summary; :uid "D604022C-C1C9-11D6-9446-003065F198AC" . } UNION { Chi:D604065C-C1C9-11D6-9446-003065F198AC a :Vevent; :dtend "2002-10-06T19:05:00"^^New:tz; :dtstamp "2002-09-06T03:16:54Z"^^XML:dateTime; :dtstart "2002-10-06T16:05:00"^^New:tz; :summary ?summary; :uid "D604065C-C1C9-11D6-9446-003065F198AC" . } UNION { Chi:D6040A7E-C1C9-11D6-9446-003065F198AC a :Vevent; :dtend "2002-10-13T19:15:00"^^New:tz; :dtstamp "2002-09-06T03:17:51Z"^^XML:dateTime; :dtstart "2002-10-13T16:15:00"^^New:tz; :summary ?summary; :uid "D6040A7E-C1C9-11D6-9446-003065F198AC" . } UNION { Chi:D6040E96-C1C9-11D6-9446-003065F198AC a :Vevent; :dtend "2002-10-20T16:00:00"^^New:tz; :dtstamp "2002-09-06T03:18:32Z"^^XML:dateTime; :dtstart "2002-10-20T13:00:00"^^New:tz; :summary ?summary; :uid "D6040E96-C1C9-11D6-9446-003065F198AC" . } UNION { Chi:D6041270-C1C9-11D6-9446-003065F198AC a :Vevent; :dtend "2002-10-27T17:00:00"^^New:tz; :dtstamp "2002-09-06T03:19:15Z"^^XML:dateTime; :dtstart "2002-10-27T14:00:00"^^New:tz; :summary ?summary; :uid "D6041270-C1C9-11D6-9446-003065F198AC" . } UNION { Chi:D6041673-C1C9-11D6-9446-003065F198AC a :Vevent; :dtend "2002-11-24T20:05:00"^^New:tz; :dtstamp "2002-09-06T03:22:09Z"^^XML:dateTime; :dtstart "2002-11-24T17:05:00"^^New:tz; :summary ?summary; :uid "D6041673-C1C9-11D6-9446-003065F198AC" . } UNION { Chi:D6041A73-C1C9-11D6-9446-003065F198AC a :Vevent; :dtend "2002-12-01T17:00:00"^^New:tz; :dtstamp "2002-09-06T03:22:52Z"^^XML:dateTime; :dtstart "2002-12-01T14:00:00"^^New:tz; :summary ?summary; :uid "D6041A73-C1C9-11D6-9446-003065F198AC" . } UNION { Chi:D60421EF-C1C9-11D6-9446-003065F198AC a :Vevent; :dtend "2002-12-08T17:00:00"^^New:tz; :dtstamp "2002-09-06T03:24:04Z"^^XML:dateTime; :dtstart "2002-12-08T14:00:00"^^New:tz; :summary ?summary; :uid "D60421EF-C1C9-11D6-9446-003065F198AC" . } UNION { Chi:D6042660-C1C9-11D6-9446-003065F198AC a :Vevent; :dtend "2002-12-15T20:05:00"^^New:tz; :dtstamp "2002-09-06T03:25:03Z"^^XML:dateTime; :dtstart "2002-12-15T17:05:00"^^New:tz; :summary ?summary; :uid "D6042660-C1C9-11D6-9446-003065F198AC" . } UNION { Chi:D6042A93-C1C9-11D6-9446-003065F198AC a :Vevent; :dtend "2002-12-22T17:00:00"^^New:tz; :dtstamp "2002-09-06T03:25:47Z"^^XML:dateTime; :dtstart "2002-12-22T14:00:00"^^New:tz; :summary ?summary; :uid "D6042A93-C1C9-11D6-9446-003065F198AC" . } UNION { Chi:D6042EDF-C1C9-11D6-9446-003065F198AC a :Vevent; :dtend "2002-12-28T21:00:00"^^New:tz; :dtstamp "2002-09-06T03:26:51Z"^^XML:dateTime; :dtstart "2002-12-28T18:00:00"^^New:tz; :summary ?summary; :uid "D6042EDF-C1C9-11D6-9446-003065F198AC" . } }
به سرویس جستجوی http://www.example/sparql/،SPARQL، بصورت برجسته در این پیگیری HTTP هدایت شده است:
POST /sparql/ HTTP/1.1 Host: www.example User-agent: sparql-client/0.1 Content-Type: application/x-www-form-urlencoded Content-Length: 9461 query=EncodedQuery&default-graph-uri=http://another.example/calendar.rdf
با پاسخگویی برجسته اینجا:
HTTP/1.1 200 OK
Date: Wed, 03 Aug 2005 12:48:25 GMT
Server: Apache/1.3.29 (Unix) PHP/4.3.4 DAV/1.0.3
Connection: close
Content-Type: application/sparql-results+xml
<?xml version="1.0"?>
<sparql xmlns="http://www.w3.org/2005/sparql-results#">
<head>
<variable name="summary"/>
</head>
<results ordered="false" distinct="false">
<result>
<binding name="summary">
<literal>Chiefs vs. Cleveland @ Cleveland Stadium</literal>
</binding>
</result>
<result>
<binding name="summary">
<literal>Chiefs vs. Jacksonville @ Arrowhead Stadium</literal>
</binding>
</result>
<result>
<binding name="summary">
<literal>Chiefs vs. New England @ Gillette Stadium</literal>
</binding>
</result>
...
<result>
<binding name="summary">
<literal>Chiefs vs. Miami @ Arrowhead Stadium</literal>
</binding>
</result>
<result>
<binding name="summary">
<literal>BYE</literal>
</binding>
</result>
<result>
<binding name="summary">
<literal>Chiefs vs. San Francisco @ 49ers Stadium at Candlestick Point</literal>
</binding>
</result>
<result>
<binding name="summary">
<literal>Chiefs vs. Buffalo @ Arrowhead Stadium</literal>
</binding>
</result>
<result>
<binding name="summary">
<literal>Chiefs vs. NY Jets @ Giants Stadium</literal>
</binding>
</result>
<result>
<binding name="summary">
<literal>Chiefs vs. San Diego @ Qualcomm Stadium</literal>
</binding>
</result>
<result>
<binding name="summary">
<literal>Chiefs vs. Denver @ Arrowhead Stadium</literal>
</binding>
</result>
<result>
<binding name="summary">
<literal>Chiefs vs. Oakland @ Arrowhead Stadium</literal>
</binding>
</result>
<result>
<binding name="summary">
<literal>Chiefs vs. Seattle @ Seahawks Stadium</literal>
</binding>
</result>
<result>
<binding name="summary">
<literal>Chiefs vs. Arizona @ Arrowhead Stadium</literal>
</binding>
</result>
<result>
<binding name="summary">
<literal>Chiefs vs. St. Louis @ Arrowhead Stadium</literal>
</binding>
</result>
<result>
<binding name="summary">
<literal>Chiefs vs. Denver @ INVESCO Field at Mile High</literal>
</binding>
</result>
<result>
<binding name="summary">
<literal>Chiefs vs. San Diego @ Arrowhead Stadium</literal>
</binding>
</result>
<result>
<binding name="summary">
<literal>Chiefs vs. Oakland @ Network Associates Coliseum</literal>
</binding>
</result>
</results>
</sparql>
جستجوهای SPARQL می تواند شامل مجموعه کاراکترهای بین المللی شده باشد. این جستجوی SPARQL
PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX ?: <http://www.w3.org/2001/sw/DataAccess/tests/data/i18n/kanji.ttl#> SELECT ?name ?food WHERE { [ foaf:name ?name ; ?:??? ?food ] . }
به سرویس جستجوی http://www.example/sparql/،SPARQL، بصورت برجسته در این پیگیری HTTP هدایت شده است:
GET /sparql/?query=EncodedQuery Host: www.example User-agent: sparql-client/0.1
HTTP/1.1 200 OK
Date: Wed, 03 Aug 2005 12:48:25 GMT
Server: Apache/1.3.29 (Unix)
Connection: close
Content-Type: application/sparql-results+xml
<?xml version="1.0"?>
<sparql xmlns="http://www.w3.org/2005/sparql-results#">
...
</sparql>
در برخی نسخه ی آینده ی
جستجوهای SPARQL می
تواند بصورت XML مرتب شده و از طریق HTTP POST
به یک سرویس جستجوی
SPARQL هدایت شده باشد. این جستجوی SPARQL
<?xml version="1.0"?> <rdf-query xmlns="http://example.org/SparqlX/"> <select><variable name="book"/><variable name="who"/></select> <query-pattern> <triple-pattern> <subject><variable name="book"/></subject> <predicate><uri>http://purl.org/dc/elements/1.1/creator</uri></predicate> <object><variable name="who"/></object> </triple-pattern> </query-pattern> </rdf-query>
به سرویس جستجوی http://www.example/sparql/،SPARQL، بصورت برجسته در این پیگیری HTTP هدایت شده است:
POST /sparql/ HTTP/1.1 Host: www.example User-agent: my-sparql-client/0.1 Content-type: application/xml <?xml version="1.0"?> <rdf-query xmlns="http://example.org/SparqlX/"> <select><variable name="book"/><variable name="who"/></select> <query-pattern> <triple-pattern> <subject><variable name="book"/></subject> <predicate><uri>http://purl.org/dc/elements/1.1/creator</uri></predicate> <object><variable name="who"/></object> </triple-pattern> </query-pattern> </rdf-query>
آن جستجو در برابر مجموعه داده ی سرویس - تامین کرده RDF، توسط آن سرویس جستجوی SPARQL اجرا شده، نتیجه ی جستجوی ذیل بر می گردد:
HTTP/1.1 200 OK
Date: Fri, 06 May 2005 20:55:12 GMT
Server: Apache/1.3.29 (Unix) PHP/4.3.4 DAV/1.0.3
Connection: close
Content-Type: application/sparql-results+xml
<?xml version="1.0"?>
<sparql xmlns="http://www.w3.org/2005/sparql-results#">
<head>
<variable name="book"/>
<variable name="who"/>
</head>
<results distinct="false" ordered="false">
<result>
<binding name="book"><uri>http://www.example/book/book5</uri></binding>
<binding name="who"><bnode>r29392923r2922</bnode></binding>
</result>
...
<result>
<binding name="book"><uri>http://www.example/book/book6</uri></binding>
<binding name="who"><bnode>r8484882r49593</bnode></binding>
</result>
</results>
</sparql>
[WSDL2-Adjuncts] معانی یک میانگین عملیات واسطه ی مختصر یک اتصال به SOAP.
اتصالات SOAP برای عملیات query
(مطابق protocol-query.wsdl)
بصورت ذیل می باشند:
<binding name="querySoap" interface="SparqlQuery" type="http://www.w3.org/2006/01/wsdl/soap" wsoap:version="1.2" wsoap:protocol="http://www.w3.org/2003/05/soap/bindings/HTTP"> <fault ref="tns:MalformedQuery" wsoap:code="soap:Sender" /> <fault ref="tns:QueryRequestRefused" wsoap:code="soap:Sender" /> <operation ref="tns:query" wsoap:mep="http://www.w3.org/2003/05/soap/mep/request-response" /> </binding>
نام اتصال SOAP از عملیات query
متعلق به SparqlQuery
بصورت querySoap
است؛ آن یک اتصال SOAP بواسطه ی مقدار ویژگی type
است، که URI با توان
SOAP را شروع می نماید. نگارش SOAP هست 1.2
. پروتکل استفاده
شده در این اتصال SOAP تحت HTTP هست، بطوری که تصمیم گرفته شده توسط مقدار
ویژگی wsoap:protocol
از URI تعیین گردد. اگر یک سرویس پروتکل SPARQL
اتصالات SOAP را با مقدار ویژگی {http://www.w3.org/2006/01/wsdl/soap, protocol}
مورد پشتیبانی قرار دهد با توان http://www.w3.org/2003/05/soap/bindings/HTTP
را شروع می نماید، که بایستی از اتصالات بصورتی که در protocol-query.wsdl
تشریح شده، پشتیبانی نماید. اتصالات SOAP با مقادیر wsoap:protocol
با
توان ارسال شده ی دیگر پروتکلها از HTTP در این سند تشریح نشده است.
دو عنصر fault
به پیغامهای اشکال تعیین شده در واسط SparqlQuery
اشاره می نمایند.
سرانجام، مراجع عنصر operation
عملیات query
از
واسط SparqlQuery
که قبلا همچون در گلچین 1.0 فوق الذکر توصیف شده است.
پس از این اتصال SOAP
توصیفات عملیات بصورت استفاده ی HTTP تحت پروتکل نقل و انتقال، مقدار ویژگی wsoap:mep
تصمیم می گیرد که روش HTTP مورد استفاده قرار گیرد. این عملیات بصورتی که توسط یک
نمونه ی مبادله ی پیغام SOAP بکار برده شده، توصیف شده است http://www.w3.org/2003/05/soap/mep/request-response
،
که مطابق با ویژگی های پشتیبانی شده ی SOAP12] 7.4]
به یک روش
HTTP POST
محدود شده است.
POST /services/sparql-query HTTP/1.1 Content-Type: application/soap+xml Accept: application/soap+xml, multipart/related, text/* User-Agent: Axis/1.2.1 Host: www.example SOAPAction: "" Content-Length: 438 <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <query-request xmlns="http://www.w3.org/2005/09/sparql-protocol-types/#"> <query>SELECT ?z {?x ?y ?z . FILTER regex(?z, 'Harry')}</query> </query-request> </soapenv:Body> </soapenv:Envelope>
HTTP/1.1 200 OK
Content-Type: application/soap+xml
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<query-result xmlns="http://www.w3.org/2005/09/sparql-protocol-types/#">
<ns1:sparql xmlns:ns1="http://www.w3.org/2005/sparql-results#">
<ns1:head>
<ns1:variable name="z"/>
</ns1:head>
<ns1:results distinct="false" ordered="false">
<ns1:result>
<ns1:binding name="z">
<ns1:literal>Harry Potter and the Chamber of Secrets</ns1:literal>
</ns1:binding>
</ns1:result>
...
<ns1:result>
<ns1:binding name="z">
<ns1:literal>Harry Potter and the Half-Blood Prince</ns1:literal>
</ns1:binding>
</ns1:result>
<ns1:result>
<ns1:binding name="z">
<ns1:literal>Harry Potter and the Goblet of Fire</ns1:literal>
</ns1:binding>
</ns1:result>
<ns1:result>
<ns1:binding name="z">
<ns1:literal>Harry Potter and the Philosopher's Stone</ns1:literal>
</ns1:binding>
</ns1:result>
<ns1:result>
<ns1:binding name="z">
<ns1:literal>Harry Potter and the Order of the Phoenix</ns1:literal>
</ns1:binding>
</ns1:result>
<ns1:result>
<ns1:binding name="z">
<ns1:literal>Harry Potter and the Prisoner Of Azkaban</ns1:literal>
</ns1:binding>
</ns1:result>
</ns1:results>
</ns1:sparql>
</query-result>
</soapenv:Body>
</soapenv:Envelope>
آنجا حداقل دو منبع ممکن از حملات denial-of-service در برابر سرویس های پروتکل SPARQL وجود دارد. نخست، نتیجه ی جستجوهای تحت اجبار می تواند در ارقام بسیار بزرگ نتایج باشد، که ممکن است نیازمند هزینه های هنگفت منابع محاسبه جهت پردازش، گردآوری یا عودت باشد. منبع ممکن دیگر جستجوها شامل پیچیدگی بسیار — هر یک بواسطه ی سایز منبع، شماره ی منابع بازیابی شده یا ترکیبی از سایز و رقم توصیفات مجموعه داده ی — RDF باشد، که سرویس می تواند از گردآوری خارج از مصرف مهم منابع، شامل پهنای باند، CPU یا حافظه ی ثانویه ناتوان باشد. در برخی موارد چنین هزینه هایی می تواند بطور موثر یک تعدی denial-of-service را ایجاد نماید. یک سرویس پروتکل SPARQL می تواند محدودیتهای جایگزین روی منابع که بازیابی های آن یا روی نرخ که در منابع خارجی بازیابی شده، باشد. آنجا ممکن است منابع دیگری از تعدی های denial-of-service در برابر سرویس های پردازش جستجوی SPARQL موجود باشد.
از آنجایی که یک سرویس پروتکل SPARQL می تواند درخواستهای دیگر سرورهای مبدأ HTTP را به نیابت از مشتری هایش بسازد، آن می تواند بصورت برداری از حملات در برابر دیگر سایتها یا سرویس ها استفاده شده باشد. بدین گونه، سرویس های پروتکل SPARQL می توانند بطور موثر بصورت پروکسی ها برای مشتری های شخص ثالث عمل نمایند. سرویس های این چنینی می توانند محدودیتهای جایگزین روی منابعی که بازیافتن آنها یا روی هزینه که درمنابع خارجی ممکن است بازیابی شده، باشد. سرویس های پروتکل SPARQL می توانند درخواستهای مشتری ثبت وقایع در چنین مسیری را جهت سهولت ردیابی ایشان نسبت به سرورهای مبدأ شخص ثالث یا سرویس ها اعمال نمایند.
سرویس های پروتکل SPARQL می توانند انتخاب کنند که اینها و گرانی دیگر نمایان شود یا در غیر اینصورت نادرست، جستجوها، زمان ضروری یا محدودیتهای حافظه روی جستجوها یا دیگر محدودیتهای تحمیلی تبدیل آنچه متعلق به آسیب پذیری سرویس (یا دیگر محدودیتهای سرویس) جهت حملات denial-of-service است را اعمال نمایند. آنها همچنین می توانند پردازش چنین درخواستهای جستجو را نپذیرند.
IRI های متفاوت می توانند ظاهر یکسانی داشته باشند. کاراکترها در اسکریپتهای متفاوت می توانند دیدار کوتاهی نمایند (یک Cyrillic "?" می تواند مشابه یک "o" لاتین، ظاهر شود). یک کاراکتر دنبال شده با کاراکترهای ترکیبی می تواند نمایش دیداری یکسانی بصورت کاراکتر دیگری داشته باشد (LATIN SMALL LETTER E ادامه یافته توسط COMBINING ACUTE ACCENT دارای نمایش دیداری یکسانی بصورت LATIN SMALL LETTER E WITH ACUTE می باشد). کاربرهای SPARQL بایستی مراقب باشند که جستجوها با IRI هایی که مطابق IRI هایی در داده ها هستند، شکل داده شوند. جهت کسب اطلاعات بیشتر در مورد تطبیق کاراکترهای مشابه ممکن است در تضمین های امنیت یونی کد [UNISEC] و شناسه های منبع بین المللی شده (IRI ها)ی [RFC3987] بخش 8 یافت شود.
وضعیت بخش های پروتکل SPARQL برای RDF (این سند) بصورت ذیل است:
در کل، هر دوی protocol-query.wsdl و protocol-types.xsd اصولی هستند.
یک سرویس پروتکل conformant SPARQL:
SparqlQuery
بکار برده شود؛query
واسط SparqlQuery
بکار رود؛query
در
مسیر تشریح شده در این سند ("پروتکل SPARQL برای RDF")، در protocol-query.wsdl
و protocol-types.xsd
پیاده سازی شود؛query
را متفاوت از اتصالات توصیف شده ی اصولی HTTP
یا SOAP توسط پروتکل SPARQL برای RDF پیاده نمایند؛ واز اعضای DAWG، بویژه بیجن پارژا، براین تامسن، اندی سیبورن، ستیو هریس، اریک پرودهاموکس، یاشیو فیوکیشایج، هاورد کتز، درک - ویلم، ون گیولیک، دن کانلی و لی فیجنبام سپاسگزارم. تشکرات خاص به الایس توریس داشته برای کمک سخاوتمندانه و پشتیبانی اش. به همان اندازه هم از همکارهای UMD ام جیم هندلر، ران الفورد، امی الفورد، یاردین کتز، کریس تستا و اعضای هم کار اجتماعی وب معنایی میندلاب سپاسگزارم. همچنین تشکرات مخصوصی به همکارم NASA و دوستم اندی سکین دارم. من همچنین سپاسگزار جاسک کاپکی، مورن فردریکسن، مارک بیکر، جانری الجرمیسن، دانی اریس، برند سایمن، گراهام کلاین، آرجن کمپمن، تیم برنرز لی، دان بریکلی، پاتریک ستیکلر، کارل دوباست، جاناتان مارش، لی دادس، دیوید وود، رتو کرمنچر، تامس روسلر، دانی ویتزنر، پاول داونی، هیگو هاس، ریچارد نیومن هستم.
آنجا تغییری پس از
توصیه ی پیشنهادی نوامبر 2007 بوده، نمونه ی
CONSTRUCT با نمونه ی RDF جهت استفاده
ی نوع رسانه ی text/turtle
بروز شده بود، توجه داشته باشید
ثبت نوع رسانه در جریان است.