- •«Протокол oia-pmh»
- •Розділ 1 Технічні характеристики oai-pmh
- •Основні поняття протоколу oai-pmh
- •Особливості протоколу oai-pmh
- •Повідомлення про помилки
- •Види помилок, що виникають при обробці запитів
- •Основні типи запитів
- •Розділ 2 Інструментарій реалізації протоколу oai-pmh
- •Програмне забезпечення Data Providers
- •Програмне забезпечення Service Providers
- •Висновки
- •Список використаних джерел інформації
- •Додаток а Запит Identify
- •Виконання запиту Identify
- •Додаток б Виконання запиту GetRecord
- •Додаток в Виконання запиту ListSets
Види помилок, що виникають при обробці запитів
Код помилки |
Опис |
Типи запитів (verb), які застосовують |
badArgument |
Запит включає в себе неправильний аргумент / відсутні необхідні аргументи / включає в себе повторюваний аргумент / значення аргумента має неправильний синтаксис |
Всі команди |
badResumptionToken |
Значення аргумента resumptionToken є недійсним |
ListIdentifiers ListRecords ListSets |
badVerb |
Значення команди аргумента є неправильним за протоколом OAI-PMH / команда аргумента відсутня / команда аргумента повторюється. |
N/A |
cannotDisseminateFormat |
Формат метаданих визначається значенням аргумента metadataPrefix і не підтримується елементому або сховищем. |
GetRecord ListIdentifiers ListRecords |
idDoesNotExist |
Значення аргумента-ідентифікатора невідоме або неправильне в цьому сховищі. |
GetRecord ListMetadataFormats |
noRecordsMatch |
Поєднання значень від дати до дати, колекція та аргумент metadataPrefix призводить до порожнього списку. |
ListIdentifiers ListRecords |
noMetadataFormats |
Немає ніяких форматів метаданих для зазначеного елемента. |
ListMetadataFormats |
noSetHierarchy |
Сховище не підтримує колекцій |
ListSets ListIdentifiers ListRecords |
Отже, при некоректному зазначенні параметрів запиту з’являється повідомлення про помилку та пояснення до нього.
Основні типи запитів
Основнити керуючими елементами в протоколі OAI-PMH є так звані типи запитів (verbs). В версії протоколу 2.0 використовуються такі типи [7]:
Identify
GetRecord
ListRecords
ListIdentifiers
ListMetadataFormats
ListSets
Репозиторію не обов’язково використання всіх типів. Тим не менш, репозиторій повинен реалізовувати всі типи. Є обов’язкові та необов’язкові аргументи, залежно від типів запитів.
Identify – описує репозиторій. Приклад запиту:
http://memory.loc.gov/cgi-bin/oai?
Verb=Identify
Можливі помилки: badArgument.
Формат відповіді має включати в себе один примірник таких елементів:
repositoryName – назва репозиторію;
baseURL – базовий URL сховища;
protocolVersion – версія OAI-PMH, що підтримується сховищем;
earliestDatestamp – UTCdatetime, яка показує зміни, модифікації чи видалення з репозиторію;
deletedRecord – спосіб, яким сховище підтримує поняття видалених записів.
granularity – найкращий деталізований збір метаданих, який підтримує сховище.
Один або кілька примірників таких елементів:
adminEmail – адреса електронної пошти адміністратора сховища;
Кілька примірників додаткових елементів:
compression – стисненене кодування підтримуване сховищем;
description – розширений механізм опису сховищ для спільнот.
GetRecord – запит використовується для отримання окремого запису метаданих зі сховища. Приклад запиту:
http://arXiv.org/oai2?
Verb=GetRecord&identifier=oai:arXiv.org:cs/0112017&metadataPrefix=oai_dc
Можливі помилки: badArgument, cannotDisseminateFormat, idDoesNotExist.
Аргументи:
identifier – обов’язковий аргумент, який визначає унікальний ідентифікатор елемента у сховищі, з якого поширюються записи;
metadataPrefix – обов’язковий аргумент, що визначає формат виведення метаданих.
ListRecords – запит використовується для збору записів зі сховища.
http://an.oa.org/OAI-script?
Verb=ListRecords&from=1998-01-15&set=physics:hep&metadataPrefix=oai_rfc1807
Можливі помилки: badArgument, noRecordsMatch, noSetHierarchy, badResumptionToken, cannotDisseminateFormat.
Аргументи:
from – необов’язковий;
until – необов’язковий;
metadataPrefix – обов’язковий;
set – необов’язковий;
resumptionToken – винятковий; значення з попередньої відповіді.
ListIdentifiers – скорочена форма запиту ListRecords, одержання тільки заголовків, а не записів. Приклад запиту:
http://an.oa.org/OAI-script?
Verb=ListIdentifiers&from=1998-01-15&metadataPrefix=oldArXiv&set=physics:hep
Можливі помилки: badArgument, noRecordsMatch, badResumptionToken, cannotDisseminateFormat, noSetHierarchy.
Аргументи:
from – необов’язковий;
until – необов’язковий;
metadataPrefix – обов’язковий;
set – необов’язковий;
resumptionToken – винятковий.
ListMetadataFormats – список доступних форматів метаданих з репозиторію. Приклад запиту:
http://www.perseus.tufts.edu/cgi-bin/pdataprov?
Verb=ListMetadataFormats&identifier=oai:perseus.tufts.edu:Perseus:text:1999.02.0119
Можливі помилки: badArgument, idDoesNotExist, noMetadataFormats.
Аргументи: identifier – обов’язковий аргумент.
ListSets – запит використовується для отримання наборів записів зі сховища; корисний при вибірковому харвестингу. Приклад запиту:
http://an.oa.org/OAI-script?
Verb=ListSets
Можливі помилки: badArgument, badResumptionToken, noSetHierarchy.
Аргументи: resumptionToken – винятковий.
Таким чином, протокол OAI-PMH побудований на основі 6 основних запитів. Кожен спеціалізується на конкретному зборі метаданих: отримання інформації про репозиторій, виведення метаданих про один запис чи цілий набір, залежно від колекції і т.п.
