Prez 是一个数据可配置的关联数据 API 框架,可根据配置文件内容协商标准提供知识图数据配置文件。
用户界面在哪里?
Prez 仅提供数据(通常是 RDF,但也可以是 GeoJSON、XML 等),并且它提供一种特殊形式的 RDF,其中包括 Prez 可以在其数据库中找到的所有对象和谓词的标签。
如果您想要一个可以将 Prez 标记的 RDF 呈现为 HTML 的 UI 和其他精美的图形小部件,请参阅 Prez UI。
要在计算机上获取 Prez 的副本,请运行:
git clone https://github.com/RDFLib/prez
Prez 是使用 Poetry 开发的,Poetry 是一个 Python 打包和依赖工具。 Poetry 在位于项目根目录的pyproject.toml
文件中提供了 Prez 的所有依赖项(其他 Python 包)。
要安装 Python 依赖项,请运行:
poetry install
注意:系统上必须安装Poetry。要检查是否安装了 Poetry,请运行
poetry --version
。有关安装和管理特定依赖项组的提示,请查看文档。
Prez 提供以下端点:
端点 | 默认MT |
---|---|
/ | 文/阿诺+海龟 |
/文档 | 文本/html |
/目录/{catalogId} | 文/阿诺+海龟 |
/目录/{catalogId}/集合 | 文/阿诺+海龟 |
/catalogs/{catalogId}/collections/{recordsCollectionId} | 文/阿诺+海龟 |
/catalogs/{catalogId}/collections/{recordsCollectionId}/items | 文/阿诺+海龟 |
/catalogs/{catalogId}/collections/{recordsCollectionId}/items/{itemId} | 文/阿诺+海龟 |
/清除-tbox-缓存 | 应用程序/json |
/tbox-缓存 | 应用程序/json |
/健康 | 应用程序/json |
/前缀 | 文/阿诺+海龟 |
/concept-hierarchy/{parent_curie}/narrowers | 文/阿诺+海龟 |
/concept-hierarchy/{parent_curie}/top-concepts | 文/阿诺+海龟 |
/cql | 文/阿诺+海龟 |
/个人资料 | 文/阿诺+海龟 |
/搜索 | 文/阿诺+海龟 |
/个人资料/{profile_curie} | 文/阿诺+海龟 |
/目的 | 文/阿诺+海龟 |
/标识符/重定向 | 不适用 |
/标识符/居里/{iri} | 文本/纯文本 |
/标识符/iri/{居里} | 文/plai |
OGC 功能 API 端点基于 ROOT /catalogs/{catalogId}/collections/{recordsCollectionId}/
端点 | 默认MT |
---|---|
{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} | 应用程序/geo+jso |
以下环境变量可用于配置 Prez:在大多数情况下,所需的只是 SPARQL_ENDPOINT 变量。
这些可以在“.env”文件中设置,该文件将通过 python-dotenv 读取。或者,直接在运行 Prez 的环境中设置它们。
sparql_endpoint
:Prez 的只读 SPARQL 端点。默认为None
。sparql_username
:Prez SPARQL 端点的用户名(如果 RDF DB 需要)。默认为None
。sparql_password
:Prez SPARQL 端点的密码(如果 RDF DB 需要)。默认为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
:整个 Prez 系统的 IRI。该值出现在 Prez 交付的登陆页面 RDF 中( "/"
)。默认为f"{protocol}://{host}:{port}"
。 log_level
:日志记录级别。默认为"INFO"
。log_output
:记录输出目的地。默认为"stdout"
。 prez_title
:Prez 实例的标题。默认为"Prez"
。prez_desc
:Prez 实例的描述。默认值是 Prez Web 框架 API 的描述。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 Action 构建的,可在此处获取。
存储库中的 Dockerfile 也可用于构建 Docker 镜像。
镜像名称为ghcr.io/rdflib/prez
。
latest
标签指向 Prez 的最新稳定版本。所有最新的稳定版本都有一个主要、主要和次要以及指向它的主要、次要和补丁标签。
例如,对于 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>
上面的命令启动一个在端口 8000 上运行 Prez 的 Docker 容器,该容器连接到指定的 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
谓词,如果存在,则返回重定向响应值。
此功能对于在其控制的域名下发布自己的持久标识符的机构非常有用。从持久标识符到目标 Web 资源的映射存储在后端 SPARQL 存储中。
这是 w3id.org 等持久标识符服务的替代解决方案。在某些情况下,它可以与此类持久标识符服务一起使用,以避免需要在 Web 服务器配置(NGINX、Apache HTTP 等)中提供重定向映射,而是将配置定义为 RDF 数据。
为了让 Prez 通过其各个子系统传递数据,数据需要符合一些最低要求:例如,在没有定义任何 SKOS ConceptSchemes 的情况下,您无法运行 VocPrez!
上面列出的所有配置文件都提供了验证器,可以与 RDF 数据一起使用来测试其是否有效。如果是的话,Prez 就会觉得很舒服。
配置文件的验证器都可以从配置文件本身获得(通过上面的规范链接导航到其他配置文件资源的列表),并且它们也被加载到RDFTools在线工具中,您可以使用该工具而无需下载或安装任何内容:
寻找VocPrez 复合验证器和类似的验证器。 “复合”位意味着验证器将根据所有 VocPrez 和继承的要求验证数据。
注意:这个开源工具是由澳大利亚小型知识图谱公司 KurrawongAI、墨尔本大学的开发人员以及开源贡献者积极开发和支持的。
要标记问题或提出疑问,请在问题跟踪器中创建问题,或者您可以使用下面的详细信息联系开发人员。
以下是主要开发人员:
KurrawongAI https://kurrawong.net
大卫·哈布古德[email protected]
尼古拉斯·卡[email protected]
埃德蒙·查克[email protected]
墨尔本大学- Prez UI 主要为Jamie Feiss [email protected]
我们喜欢对此工具的贡献,并鼓励您在此存储库的问题跟踪器中创建问题或提交拉取请求!
有关于为 Prez 做出贡献的文档,请参阅 README-Dev.md。
此版本的 Prez 和此存储库的内容也可在 BSD-3-Clause 许可证下使用。有关详细信息,请参阅此存储库的许可证文件。