Пошук/Отримання через URL

Пошук/Отримання через URL (SRU — Search/Retrieve via URL) — стандартизований протокол пошуку для запитів пошуку в Інтернет, використовуючи універсальну мову запитів CQL en:Common Query Language. SRU є технічним стандартом для бібліотек, запропонованим в рамках ініціативи „Z39.50 International Next Generation“ (ZING) для створення сучасного варіанту протоколу Z39.50. Пов’язані з SRU технології засновані на відомих інтернет-стандартах, таких як XML та URI, що широко поширені й поза межами бібліотек на відміну від Z39.50. До стандартів відносяться:

  • SRW (Пошук/отримання з Інтернет (Search/Retrieve for the Web));
  • CQL (Універсальна мова запитів (Common Query Language));
  • ZOOM (Об’єктно орієнтована модель Z39.50 (Z39.50 Object Orientation Model));
  • ez3950 та ZeeRex.

Проблеми, які необхідно було вирішити

Існує чимало пошукових систем та баз даних. Кожен з цих рушіїв має різні форми та параметри при створенні запитів. Наприклад, нижче подані пошукові запити за «Search/Retrieve via URL» у трьох пошукових системах Інтернету:

  • http://www.google.com/search?q=Search%2FRetrieve+via+URL
  • http://www.search.yahoo.com/search;p=Search%2FRetrieve+via+URL
  • http://buscar.hispavista.com/?cadena=Search%2FRetrieve+via+URL&Submit=Buscar&str=Search%2FRetrieve+via+URL

Хоча запити одні й ті ж, синтаксис, що використовується для реалізації пошуку, неоднаковий. Понадто, структура відповідей несхожа. SRU прагне виправити це з використанням спеціального синтаксису для запитів та спеціального формату при поверненні результатів пошуку. Це дозволить людям шукати в інтернеті ефективніше.

Інструкції

Для пошуку у базах даних, протокол SRU передбачає використання трьох різних інструкцій:

  1. Explain
  2. Scan
  3. SearchRetrieve

Explain

Операція «Explain» запитує загальну інформацію про сервер бази даних та його функціональність. Принаймні, відповіді повинні містити розташування сервера, опис вмісту й функціональності та який протокол підтримує сервер. За реалізацією SRU, порожній рядок інтерпретується як тип операції «Explain». Якщо операція не вказана, необхідно також додати параметр використовуваної версії SRU. Тому наступні два рядки операції «Explain» мають зміст:

  • http://example.org/
  • http://example.org/?operation=explain&version=1.1

У цьому випадку сервером повертається такий XML:

<explainResponse>
<version>1.1</version>
 <record>
 <recordSchema>{{format ref}} http://explain.z3950.org/dtd/2.0/</recordSchema>
 <recordPacking>xml</recordPacking>
 <recordData>
 <explain>
 <serverInfo>
 <host>example.org</host>
 <port>80</port>
 <database>/</database>
 </serverInfo>
 <databaseInfo>
 <title>Exemple SRU</title>
 <description lang='en' primary='true'>
 Aquest es un exemple de base de dades SRU
 </description>
 </databaseInfo>
 <indexInfo>
 <set identifier='info:srw/cql-context-set/1/dc-v1.1' name='dc' />
 <index>
 <title>title</title>
 <map>
 <name set='dc'>title</name>
 </map>
 </index>
 </indexInfo>
 <schemaInfo>
 <schema identifier='info:srw/schema/1/dc-v1.1'
 sort='false' name='dc'>
 <title>Dublin Core</title>
 </schema>
 </schemaInfo>
 <configInfo>
 <default type='numberOfRecords'>9999</default>
 </configInfo>
 </explain>
 </recordData>
 </record>
</explainResponse>

У відповідь сервер повідомляє нам, що база даних розміщена на сайті «example.org», містить інформацію про приклад на SRU і Ви можете отримати різні 9999 записів.

Scan

За цією інструкцією сервер повертає список з кількістю знайдених записів у базі даних. До інструкції „scan“ необхідно також додати змінну „scanClause“, що містить об’єкт пошуку та змінну „version“ з використовуваною версією SRU. Таким чином, запит, щоб дізнатися, скільки записів є в базі даних з входженням „SRU“ може виглядати так:

  • http://example.org/?operation=scan&scanClause=SRU&version=1.1

Відповідь сервера:

<scanResponse>
 <version>1.1</version>
 <terms>
 <term>
 <value>SRU</value>
 <numberOfRecords>3</numberOfRecords>
 </term>
 </terms>
</scanResponse>

У цьому випадку, сервер повідомив нам, що є 3 записи, що стосуються запиту „SRU“.

SearchRetrieve

Це найважливіша операція протоколу. У відповідь на операцію SearchRetrieve отримуються записи, які запитуються зі сервера. Запити можуть бути у формі простого тексту чи ж бути поєднаннями булевих функцій. У цьому випадку до операції „searchRetrieve“ необхідно додати принаймні змінну „query“ для запиту та змінну „version“ для номера версії.

  • http://example.org/?operation=searchRetrieve&query=SRU&version=1.1

Відповідь сервера буде структурована у вигляді простого тексту або XML, як показано нижче:

<searchRetrieveResponse>
 <version>1.1</version>
 <numberOfRecords>3</numberOfRecords>
 <records>
 <record>
 <recordSchema>info:srw/schema/1/dc-v1.1</recordSchema>
 <recordPacking>xml</recordPacking>
 <recordData>
 <dc>
 <title>SRU a la "Library of Congres"</title> 
 <identifier>http://example.org/library.html</identifier>
 </dc>
 </recordData>
 </record>
 <record>
 <recordSchema>info:srw/schema/1/dc-v1.1</recordSchema>
 <recordPacking>xml</recordPacking>
 <recordData>
 <dc>
 <title>Sintaxi de SRU</title> 
 <identifier>http://example.org/sintaxi.html</identifier>
 </dc>
 </recordData>
 </record>
 <record>
 <recordSchema>info:srw/schema/1/dc-v1.1</recordSchema>
 <recordPacking>xml</recordPacking>
 <recordData>
 <dc>
 <title>Exemples SRU</title> 
 <identifier>http://example.org/exemple.html</identifier>
 </dc>
 </recordData>
 </record>
 </records>
</searchRetrieveResponse>

SRW

Ключовим компонентом цієї ініціативи ZING є протокол Пошуку/отримання у веб-службах (SRW, Search/Retrieve Web Service), що дозволяє виконувати аналогічні до Z39.50 запити через HTTP за допомогою простих запитів HTTP GET, або ж за протоколом SOAP. Запити формулюються на мові запитів CQL а результати отримуються у вигляді XML.

SRU

SRU пропонує менше можливостей аніж SRW, немає SOAP і, отже, значно компактніше.

Див. також

Зовнішні посилання

Посилання

  1. Документація з Koha. Глава 17. Використання сервера SRU. Архів оригіналу за 26 червня 2013. Процитовано 28 травня 2012.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.