Prez — это настраиваемая платформа API связанных данных, которая предоставляет профили данных Knowledge Graph в соответствии со стандартом согласования контента по профилям.
Где пользовательский интерфейс?
Prez предоставляет только данные — обычно RDF, но может быть GeoJSON, XML и т. д. — и предоставляет специальную форму RDF, которая включает метки для всех объектов и предикатов, которые Prez может найти в своей базе данных.
Если вам нужен пользовательский интерфейс, который может отображать RDF с меткой Prez как HTML и другие необычные графические виджеты, см. Пользовательский интерфейс Prez.
Чтобы получить копию Prez на свой компьютер, запустите:
git clone https://github.com/RDFLib/prez
Prez разработан с использованием Poetry, инструмента упаковки и зависимостей Python. Poetry представляет все зависимости Prez (другие пакеты Python) в файле pyproject.toml
, расположенном в корневом каталоге проекта.
Чтобы установить зависимости Python, выполните:
poetry install
Примечание: Poetry должен быть установлен в системе. Чтобы проверить, установлена ли у вас Poetry, запустите
poetry --version
. Советы по установке и управлению конкретными группами зависимостей можно найти в документации.
Prez предоставляет следующие конечные точки:
Конечная точка | Стандартный МТ |
---|---|
/ | текст/анот+черепаха |
/документы | текст/html |
/каталоги/{catalogId} | текст/анот+черепаха |
/catalogs/{catalogId}/коллекции | текст/анот+черепаха |
/catalogs/{catalogId}/collections/{recordsCollectionId} | текст/анот+черепаха |
/catalogs/{catalogId}/collections/{recordsCollectionId}/items | текст/анот+черепаха |
/catalogs/{catalogId}/collections/{recordsCollectionId}/items/{itemId} | текст/анот+черепаха |
/purge-tbox-кэш | приложение/json |
/tbox-кэш | приложение/json |
/здоровье | приложение/json |
/префиксы | текст/анот+черепаха |
/concept-hierarchy/{parent_curie}/узкие | текст/анот+черепаха |
/concept-hierarchy/{parent_curie}/top-concepts | текст/анот+черепаха |
/cql | текст/анот+черепаха |
/профили | текст/анот+черепаха |
/поиск | текст/анот+черепаха |
/профили/{profile_curie} | текст/анот+черепаха |
/объект | текст/анот+черепаха |
/идентификатор/перенаправление | Н/Д |
/идентификатор/кюри/{ири} | текстовый/обычный |
/идентификатор/ири/{кюри} | текст/плей |
Конечные точки API функций OGC расположены в корневом /catalogs/{catalogId}/collections/{recordsCollectionId}/
Конечная точка | Стандартный МТ |
---|---|
{ROOT}/функции | приложение/json |
{ROOT}/функции/документы | текст/html |
{ROOT}/функции/соответствие | приложение/json |
{ROOT}/функции/коллекции | приложение/json |
{ROOT}/features/collections/{collectionId} | приложение/json |
{ROOT}/features/collections/{collectionId}/items | приложение/гео+json |
{ROOT}/features/collections/{collectionId}/items/{featureId} | приложение/гео+jso |
Для настройки Prez можно использовать следующие переменные среды: В большинстве случаев все, что требуется, — это переменная SPARQL_ENDPOINT.
Их можно установить в файле «.env», который будет считываться через python-dotenv. Альтернативно, установите их непосредственно в среде, из которой запускается Prez.
sparql_endpoint
: конечная точка SPARQL только для чтения для Prez. По умолчанию — None
.sparql_username
: имя пользователя для конечной точки Prez SPARQL, если этого требует база данных RDF. По умолчанию — None
.sparql_password
: пароль для конечной точки Prez SPARQL, если этого требует база данных RDF. По умолчанию — None
.enable_sparql_endpoint
: включить ли конечную точку SPARQL. То есть, предоставляет ли prez конечную точку SPARQL удаленного репозитория (обычно тройное хранилище). По умолчанию — False
. Обратите внимание: конечная точка SPARQL, если она включена, поддерживает запросы POST. Сам Prez не производит никаких обновлений в удаленном репозитории (например, в удаленном Triplestore), однако, если удаленная конечная точка SPARQL включена, пользователи могут делать обновления в удаленном репозитории, используя конечную точку SPARQL. protocol
: протокол, используемый для доставки Prez. По умолчанию — "http"
.host
: доменное имя хоста Prez. По умолчанию — "localhost"
.port
: порт Prez доступен. По умолчанию — 8000
. system_uri
: IRI для системы Prez в целом. Это значение отображается в RDF-файле целевой страницы, предоставленном Prez ( "/"
). По умолчанию — f"{protocol}://{host}:{port}"
. log_level
: уровень ведения журнала. По умолчанию установлено "INFO"
.log_output
: Назначение вывода журнала. По умолчанию — "stdout"
. prez_title
: заголовок экземпляра Prez. По умолчанию — "Prez"
.prez_desc
: Описание экземпляра Prez. По умолчанию — это описание API веб-фреймворка Prez.prez_version
: версия экземпляра Prez. По умолчанию — None
. curie_separator
: разделитель, используемый в CURIE. По умолчанию ":"
. Этот разделитель появляется в ссылках, созданных Prez, и, в свою очередь, в URL-путях. order_lists_by_label
: следует ли упорядочивать списки по меткам. По умолчанию установлено True
. Используется для отображения RDF с понятными для человека этикетками.
label_predicates
: список предикатов, используемых для меток. По умолчанию включает в себя:skos:prefLabel
dcterms:title
rdfs:label
sdo:name
Когда используется аннотированный медиатип (
+anot
), Prez включает тройки для каждого URI в исходном ответе, который имеет одно из вышеуказанных свойств. Эти тройки аннотаций затем кэшируются. Аннотации используются для отображения, например, на страницах HTML.
Аналогично предикатам меток выше.
description_predicates
: список предикатов, используемых для описаний. По умолчанию включает в себя:skos:definition
dcterms:description
sdo:description
Аналогично предикатам происхождения, описанным выше.
provenance_predicates
: список предикатов, используемых для происхождения. По умолчанию включает в себя:dcterms:provenance
Механизм аннотаций также можно использовать для возврата определенных свойств, где бы они ни присутствовали.
other_predicates
: список других предикатов. По умолчанию включает в себя:sdo:color
reg:status
skos:narrower
skos:broader
sparql_repo_type
: тип репозитория SPARQL. По умолчанию установлено "remote"
. Возможные варианты: "remote"
, "pyoxigraph"
и "oxrdflib"
sparql_timeout
: таймаут для запросов SPARQL. По умолчанию — 30
. prez_contact
: контактная информация Prez. По умолчанию — None
. disable_prefix_generation
: отключить ли генерацию префикса. Для больших хранилищ данных рекомендуется отключить генерацию префиксов , в дальнейшем рекомендуется всегда указывать префиксы в каталоге prez/reference_data/prefixes/
. По умолчанию — False
. default_language
: язык по умолчанию для Prez. По умолчанию — "en"
.default_search_predicates
: предикаты поиска по умолчанию. По умолчанию включает в себя:rdfs:label
skos:prefLabel
sdo:name
dcterms:title
Используется вместе с репозиторием Pyoxigraph. Указывает каталог (из корня репозитория) для загрузки в график данных Pyoxigraph в памяти. Не используется для других типов репозиториев.
local_rdf_dir
: каталог для локальных файлов RDF. По умолчанию — "rdf"
. endpoint_structure
: структура конечных точек по умолчанию, используемая для создания ссылок. По умолчанию ("catalogs", "collections", "items")
. system_endpoints
: список конечных точек системы. По умолчанию включает в себя:ep:system/profile-listing
ep:system/profile-object
listing_count_limit
: максимальное количество элементов, подсчитываемых для конечной точки листинга. Число, превышающее этот предел, будет возвращено как «>N», где N — это предел. По умолчанию — 100
.search_count_limit
: максимальное количество элементов, возвращаемых в результате поиска. По умолчанию — 10
. temporal_predicate
: предикат, используемый для временных свойств. По умолчанию — sdo:temporal
. endpoint_to_template_query_filename
: конечные точки сопоставления словаря для запроса имен файлов шаблонов. По умолчанию — пустой словарь. Этот раздел предназначен для локальной разработки Prez. См. параметры запуска ниже, чтобы узнать, как запустить Prez в рабочей среде.
Чтобы запустить сервер разработки (с автоматической перезагрузкой при изменении кода):
poetry run python main.py
Образы контейнеров Prez создаются с использованием действий Github и доступны здесь.
Dockerfile в репозитории также можно использовать для создания образа Docker.
Имя образа — ghcr.io/rdflib/prez
.
latest
тег указывает на последнюю стабильную версию Prez. Все последние стабильные выпуски имеют теги Major, Major и Minor, а также Major, Minor и patch, указывающие на них.
Например, для релиза с git-тегом 3.2.4 в образе контейнера будут следующие теги:
3
3.2
3.2.4
latest
Новые коммиты в main
ветку создают подвижный образ разработки с тегом dev
. Сборки для разработчиков также будут включать тег в форме major.minor.{patch+1}-dev.{commits-since-last-release}.{short-commit-sha}. Это соответствует семантическому управлению версиями и будет распознаваться системами оркестрации для выполнения автоматических выпусков.
Например, если последняя версия — 3.2.4, с момента выпуска было выполнено 7 новых коммитов и короткий SHA коммита — fc82562, то тег образа контейнера будет:
3.2.5-dev.7.fc82562
Чтобы запустить полученный образ Docker:
docker run -p 8000:8000
-e SPARQL_ENDPOINT=<your_sparql_endpoint>
<your_image_id>
Приведенная выше команда запускает контейнер Docker, на котором работает Prez, через порт 8000, подключенный к указанной конечной точке sparql.
Prez использует PyTest и Coverage для тестирования и создания отчетов о покрытии тестами.
Чтобы запустить все доступные тесты:
poetry run pytest tests
Чтобы запустить все доступные тесты для анализа покрытия:
poetry run coverage run -m pytest tests
Чтобы создать отчет о покрытии:
poetry run coverage report
В качестве сервера связанных данных Prez предоставляет службу перенаправления по адресу /identifier/redirect
, которая принимает параметр запроса iri
, ищет в базе данных iri
для предиката foaf:homepage
со значением и, если он существует, возвращает ответ перенаправления на ценность.
Эта функция полезна для учреждений, которые выдают свои собственные постоянные идентификаторы под контролируемым ими доменным именем. Сопоставление постоянного идентификатора с целевым веб-ресурсом хранится во внутреннем хранилище SPARQL.
Это альтернативное решение службам постоянных идентификаторов, таким как w3id.org. В некоторых случаях его можно использовать вместе с такими службами постоянных идентификаторов, чтобы избежать необходимости обеспечивать сопоставление перенаправления в конфигурации веб-сервера (NGINX, Apache HTTP и т. д.) и вместо этого определить конфигурацию как данные RDF.
Чтобы Prez мог доставлять данные через различные подсистемы, данные должны соответствовать некоторым минимальным требованиям: например, вы не можете запустить VocPrez без определенных схем SKOS ConceptSchemes!
Все перечисленные выше профили предоставляют средства проверки, которые можно использовать с данными RDF для проверки их достоверности. Если это так, Презу это понравится.
Все валидаторы профилей доступны из самих профилей (перейдите к спискам других ресурсов профилей по ссылкам на спецификации выше), а также они загружаются в онлайн-инструмент RDFTools , который вы можете использовать, ничего не загружая и не устанавливая:
Ищите VocPrez Compounded и подобные валидаторы. Бит «составной» означает, что валидатор будет проверять данные на соответствие всем требованиям VocPrez и унаследованным требованиям.
ПРИМЕЧАНИЕ . Этот инструмент с открытым исходным кодом активно разрабатывается и поддерживается KurrawongAI, небольшой австралийской компанией Knowledge Graph, разработчиками из Мельбурнского университета, а также участниками открытого исходного кода.
Чтобы сообщить о проблемах или задать вопросы, создайте проблемы в системе отслеживания проблем или свяжитесь с разработчиками, используя их данные ниже.
Вот ведущие разработчики:
КурравонгАИ https://kurrawong.net
Дэвид Хабгуд [email protected]
Николас Кар [email protected]
Эдмонд Чук [email protected]
Мельбурнский университет – Prez UI, в основном Джейми Фейсс [email protected]
Нам нравится вносить вклад в этот инструмент, и мы рекомендуем вам создавать задачи в системе отслеживания проблем этого репозитория или отправлять запросы на включение!
Существует документация по участию в Prez, см. README-Dev.md.
Эта версия Prez и содержимое этого репозитория также доступны по лицензии BSD-3-Clause. Подробности смотрите в файле LICENSE этого репозитория.