PHPackages                             acdh-oeaw/arche-lib-disserv - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. acdh-oeaw/arche-lib-disserv

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

acdh-oeaw/arche-lib-disserv
===========================

A library providing dissemination services support on top of the acdh-oeaw/arche-lib

4.1.0(12mo ago)05.8k3MITPHPPHP ^8.1CI passing

Since Mar 16Pushed 3mo ago1 watchersCompare

[ Source](https://github.com/acdh-oeaw/arche-lib-disserv)[ Packagist](https://packagist.org/packages/acdh-oeaw/arche-lib-disserv)[ Docs](https://github.com/acdh-oeaw/arche-lib-disserv)[ RSS](/packages/acdh-oeaw-arche-lib-disserv/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (5)Versions (31)Used By (3)

arche-lib-disserv
=================

[](#arche-lib-disserv)

[![Latest Stable Version](https://camo.githubusercontent.com/64d2d0600293e4db3cbba68243812faef15a37e2b809ed3791898c140675e823/68747470733a2f2f706f7365722e707567782e6f72672f616364682d6f6561772f61726368652d6c69622d646973736572762f762f737461626c65)](https://packagist.org/packages/acdh-oeaw/arche-lib-disserv)[![Build status](https://github.com/acdh-oeaw/arche-lib-disserv/workflows/phpunit/badge.svg?branch=master)](https://github.com/acdh-oeaw/arche-lib-disserv/workflows/phpunit/badge.svg?branch=master)[![Coverage Status](https://camo.githubusercontent.com/4318e9ff748fdcfd94fe86772270f3b5cbf1b3b61f87560acbf50782d781924a/68747470733a2f2f636f766572616c6c732e696f2f7265706f732f6769746875622f616364682d6f6561772f61726368652d6c69622d646973736572762f62616467652e7376673f6272616e63683d6d6173746572)](https://coveralls.io/github/acdh-oeaw/arche-lib-disserv?branch=master)[![License](https://camo.githubusercontent.com/667732c50405ad6e7cc39a6389d481a20eed7a13501ccca8ada8f73ccc7d9cca/68747470733a2f2f706f7365722e707567782e6f72672f616364682d6f6561772f61726368652d6c69622d646973736572762f6c6963656e7365)](https://packagist.org/packages/acdh-oeaw/arche-lib-disserv)

A library implementing dissemination services on top of the [arche-lib](https://github.com/acdh-oeaw/arche-lib)

Installation
------------

[](#installation)

`composer require acdh-oeaw/acdh-repo-acdh`

Documentation
-------------

[](#documentation)

API documentation:

Broader description of the dissemination services idea: [https://acdh-oeaw.github.io/arche-docs/aux/dissemination\_services.html](https://acdh-oeaw.github.io/arche-docs/aux/dissemination_services.html)

Dissemination service description schema
----------------------------------------

[](#dissemination-service-description-schema)

Dissemination service description is provided in RDF.

There are three classes of resources describing a service:

- The service itself
    - required predicates:
        - RDF class `https://vocabs.acdh.oeaw.ac.at/schema#DisseminationService`
        - `https://vocabs.acdh.oeaw.ac.at/schema#hasIdentifier` (URI) dissemination service identifier.
        - `https://vocabs.acdh.oeaw.ac.at/schema#hasTitle` (string) dissemination service name.
        - `https://vocabs.acdh.oeaw.ac.at/schema#serviceLocation` (string, exactly one value) provides a redirection URL template.
            The template can contain parameter placeholders using the `{name([@&]prefix)?(|trans)*}` syntax, where:
            - `name` is one of `RES_URI`/`RES_URL` - the repository resource URL, `RES_ID` - the internal repository resource identifier (the number being the last part of the `RES_URL`), `ID` - resource identifier, custom parameter placeholder name as described below
            - `&prefix` (requested prefix) or `@prefix` (preferred prefix) allow to define value prefix. This can be useful if many values are expected, e.g. when `name` is `RES_ID`. The actual prefix comes from the YAML config (`$.schema.namespaces.{id}`). `&prefix` and `@prefix` behavior differs if no value matches a given prefix. In such a case `&prefix` returns empty value while `@prefix` returns any value.
            - `|trans` is optional chain of transformations like URL-encoding, extracting URI part, etc. You can check available transformations [here](https://github.com/acdh-oeaw/arche-lib-disserv/blob/master/src/acdhOeaw/arche/lib/disserv/dissemination/ParameterTrait.php#L44). If a transformation takes additional parameters the syntax is `|trans(p1,p2)`. Transformations can be chained, e.g. `|trans1|trans2(p1)`. For real world examples see [here](https://github.com/acdh-oeaw/arche-docker-config/blob/arche/initScripts/dissServices.ttl).
        - `https://vocabs.acdh.oeaw.ac.at/schema#hasReturnType` (string, one or more values) describes the returned data format. Technically it can be any string but the value should be easy to guess by users (so e.g. return mime type can be a good idea).
- Matching rules
    Rules describing how to find repository resources which can be processed by a given service.
    All required rules and, if defined, at least one optional rule must match for the dissemination service to match.
    In case of no rules being defined, all repository resources match a given dissemination service.
    - required predicates:
        - `https://vocabs.acdh.oeaw.ac.at/schema#relation` (URI) pointing to the service's `https://vocabs.acdh.oeaw.ac.at/schema#hasIdentifier` value.
        - `https://vocabs.acdh.oeaw.ac.at/schema#hasIdentifier` (URI) match rule identifier.
        - `https://vocabs.acdh.oeaw.ac.at/schema#hasTitle` (string) match rule name.
        - `https://vocabs.acdh.oeaw.ac.at/schema#matchesProp` (string, exactly one value) metadata predicate the rule is testing.
        - `https://vocabs.acdh.oeaw.ac.at/schema#isRequired` (bool, exactly one value) is this rule a required or an optional one?
    - optional predicates:
        - `https://vocabs.acdh.oeaw.ac.at/schema#matchesValue` (string, no more than one value) value required for the rule to match. If not provided, any value is accepted. All values are casted to string before the comparison.
- Redirection URL template placeholders
    Describe the way URL template placeholders are substituted with values.
    - required predicates:
        - RDF class `https://vocabs.acdh.oeaw.ac.at/schema#DisseminationServiceParameter`
        - `https://vocabs.acdh.oeaw.ac.at/schema#relation` (URI) pointing to the service's `https://vocabs.acdh.oeaw.ac.at/schema#hasIdentifier` value.
        - `https://vocabs.acdh.oeaw.ac.at/schema#hasIdentifier` (URI) parameter placeholder identifier.
        - `https://vocabs.acdh.oeaw.ac.at/schema#hasTitle` (string) parameter placeholder name (must match the name used in the redirection URL template!).
    - optional predicates:
        - `https://vocabs.acdh.oeaw.ac.at/schema#hasDefaultValue` (string, no more than one value) default value.
        - `https://vocabs.acdh.oeaw.ac.at/schema#usesRdfProperty` (string, no more than one value) RDF property from which the placeholder value will be taken.

Example definition can be found [here](https://github.com/acdh-oeaw/arche-docker-config/blob/arche/initScripts/dissServices.ttl).

See also [https://acdh-oeaw.github.io/arche-docs/aux/dissemination\_services.html](https://acdh-oeaw.github.io/arche-docs/aux/dissemination_services.html)

###  Health Score

48

—

FairBetter than 94% of packages

Maintenance66

Regular maintenance activity

Popularity22

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity76

Established project with proven stability

 Bus Factor1

Top contributor holds 98.8% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~70 days

Recently: every ~104 days

Total

28

Last Release

362d ago

Major Versions

0.1.0 → 1.0.02020-03-19

1.0.1 → 2.0.02020-03-24

2.4.0 → 3.0.02021-05-20

3.0.3 → 4.0.02024-02-13

PHP version history (3 changes)3.0.0PHP &gt;=8

4.0.0PHP &gt;=8 &lt;8.3

4.0.4PHP ^8.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/f1f662e3acb95efd9208cdcd2c97437db366044aea705985251760efcbd23070?d=identicon)[zozlak](/maintainers/zozlak)

---

Top Contributors

[![zozlak](https://avatars.githubusercontent.com/u/6503177?v=4)](https://github.com/zozlak "zozlak (81 commits)")[![nczirjak-acdh](https://avatars.githubusercontent.com/u/20183307?v=4)](https://github.com/nczirjak-acdh "nczirjak-acdh (1 commits)")

---

Tags

arche

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

![Health badge](/badges/acdh-oeaw-arche-lib-disserv/health.svg)

```
[![Health](https://phpackages.com/badges/acdh-oeaw-arche-lib-disserv/health.svg)](https://phpackages.com/packages/acdh-oeaw-arche-lib-disserv)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
