acdh-oeaw / arche-lib-disserv
一个库,它提供了在acdh-oeaw/arche-lib之上的传播服务支持
4.0.4
2024-07-16 08:59 UTC
Requires
- php: ^8.1
- acdh-oeaw/arche-lib: ^6
- zozlak/rdf-constants: ^1
Requires (Dev)
- phpstan/phpstan: *
- phpunit/phpunit: ^10
- zozlak/yaml-merge: ^1.0
README
一个在arche-lib之上实现传播服务的库
安装
composer require acdh-oeaw/acdh-repo-acdh
文档
API 文档: https://acdh-oeaw.github.io/arche-docs/devdocs/namespaces/acdhoeaw-arche-lib-disserv.html
传播服务理念的更广泛描述: https://acdh-oeaw.github.io/arche-docs/aux/dissemination_services.html
传播服务描述模式
传播服务描述以RDF提供。
有三种资源类描述一个服务
- 服务本身
- 必需谓词
- RDF类
https://vocabs.acdh.oeaw.ac.at/schema#DisseminationService
https://vocabs.acdh.oeaw.ac.at/schema#hasIdentifier
(URI) 传播服务标识符。https://vocabs.acdh.oeaw.ac.at/schema#hasTitle
(字符串) 传播服务名称。https://vocabs.acdh.oeaw.ac.at/schema#serviceLocation
(字符串,精确一个值) 提供一个重定向URL模板。
模板可以使用{name([@&]prefix)?(|trans)*}
语法包含参数占位符,其中name
是以下之一RES_URI
/RES_URL
- 存储库资源URL,RES_ID
- 存储库资源内部标识符(数字是RES_URL
的最后一部分),ID
- 资源标识符,如以下所述的自定义参数占位符名称&prefix
(请求的前缀)或@prefix
(首选前缀)允许定义值前缀。如果有许多预期值,这可能很有用,例如当name
是RES_ID
时。实际前缀来自YAML配置($.schema.namespaces.{id}
)。在没有值匹配给定前缀的情况下,&prefix
和@prefix
的行为不同。在这种情况下,&prefix
返回空值,而@prefix
返回任何值。|trans
是可选的转换链,例如URL编码、提取URI部分等。您可以在此处检查可用的转换。如果转换需要额外的参数,语法是|trans(p1,p2)
。转换可以链接,例如|trans1|trans2(p1)
。有关实际示例,请参阅此处。
https://vocabs.acdh.oeaw.ac.at/schema#hasReturnType
(字符串,一个或多个值) 描述返回的数据格式。技术上可以是任何字符串,但值应该易于用户猜测(例如,返回MIME类型可能是个好主意)。
- RDF类
- 必需谓词
- 匹配规则
描述如何找到可以被给定服务处理的存储库资源的规则。
所有必需规则和(如果定义),至少一个可选规则必须匹配,传播服务才能匹配。
如果没有定义规则,所有存储库资源都与给定的传播服务匹配。- 必需谓词
https://vocabs.acdh.oeaw.ac.at/schema#relation
(URI) 指向服务的https://vocabs.acdh.oeaw.ac.at/schema#hasIdentifier
值。https://vocabs.acdh.oeaw.ac.at/schema#hasIdentifier
(URI) 匹配规则标识符。https://vocabs.acdh.oeaw.ac.at/schema#hasTitle
(字符串) 匹配规则名称。https://vocabs.acdh.oeaw.ac.at/schema#matchesProp
(字符串,恰好一个值) 规则所测试的元数据谓词。https://vocabs.acdh.oeaw.ac.at/schema#isRequired
(布尔值,恰好一个值) 这个规则是必需的还是可选的?
- 可选谓词
https://vocabs.acdh.oeaw.ac.at/schema#matchesValue
(字符串,不超过一个值) 规则匹配所需值。如果不提供,则接受任何值。所有值在比较之前都转换为字符串。
- 必需谓词
- 重定向URL模板占位符
描述URL模板占位符如何用值替换。- 必需谓词
- RDF类
https://vocabs.acdh.oeaw.ac.at/schema#DisseminationServiceParameter
https://vocabs.acdh.oeaw.ac.at/schema#relation
(URI) 指向服务的https://vocabs.acdh.oeaw.ac.at/schema#hasIdentifier
值。https://vocabs.acdh.oeaw.ac.at/schema#hasIdentifier
(URI) 参数占位符标识符。https://vocabs.acdh.oeaw.ac.at/schema#hasTitle
(字符串) 参数占位符名称(必须与重定向URL模板中使用的名称匹配!)。
- RDF类
- 可选谓词
https://vocabs.acdh.oeaw.ac.at/schema#hasDefaultValue
(字符串,不超过一个值) 默认值。https://vocabs.acdh.oeaw.ac.at/schema#usesRdfProperty
(字符串,不超过一个值) 占位符值将从中获取的RDF属性。
- 必需谓词
示例定义可以在这里找到。
另见https://acdh-oeaw.github.io/arche-docs/aux/dissemination_services.html