acdh-oeaw/acdh-repo
Science Score: 62.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
✓Committers with academic emails
1 of 2 committers (50.0%) from academic institutions -
✓Institutional organization owner
Organization acdh-oeaw has institutional domain (www.oeaw.ac.at) -
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (10.3%) to scientific vocabulary
Keywords
Repository
Basic Info
Statistics
- Stars: 0
- Watchers: 2
- Forks: 1
- Open Issues: 12
- Releases: 103
Topics
Metadata Files
README.md
ARCHE-core
The core component of the ARCHE Suite responsible for the CRUD operations and transaction support.
Installation
composer require acdh-oeaw/arche-core
Deployment
See https://github.com/acdh-oeaw/arche-docker
Environment for development
An environment allowing you to edit code in your host system and run all the tests inside a docker container.
- Clone this repo and enter it
bash git clone https://github.com/acdh-oeaw/arche-core.git cd arche-core - Get all dependencies
bash composer update - Build the doker image with the runtime environment
bash docker build -t arche-dev build/docker - Run the runtime environment mounting the repository dir into it and wait until it's ready
bash docker run --name arche-dev -v `pwd`:/var/www/html -e USER_UID=`id -u` -e USER_GID=`id -g` -d arche-dev docker logs -f arche-devwait until you see (timestamps will obviously differ):2020-06-04 14:06:52,309 INFO success: apache2 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 2020-06-04 14:06:52,309 INFO success: postgresql entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 2020-06-04 14:06:52,309 INFO success: rabbitmq entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 2020-06-04 14:06:52,309 INFO success: tika entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)then hitCTRL+c - Enter the docker container and run tests inside it
bash docker exec -ti -u www-data arche-dev /bin/bashand then inside the containerbash XDEBUG_MODE=coverage vendor/bin/phpunit
Remarks:
- By default the development environment runs with PHP configured
as an Apache mod_php module
but it is also prepared to run PHP as the FPM.
To adjust the config run (in the host system)
bash docker exec arche-dev a2dissite mod_php docker exec arche-dev a2ensite php_fpm docker exec -w /root arche-dev supervisorctl restart apache2Similarly to get back to the modphp config: ```bash docker exec arche-dev a2dissite phpfpm docker exec arche-dev a2ensite mod_php docker exec -w /root arche-dev supervisorctl restart apache2 ```
REST API documentation
- https://app.swaggerhub.com/apis/zozlak/arche (Swagger/OpenAPI)
- Guides on https://acdh-oeaw.github.io/arche-docs/
Architecture

Database structure
The main table is the resources one. It stores a list of all repository resources identified by their internal repo id (the id column) as well as transactions handling related data (columns transaction_id and state).
Metadata are devided into three tables according to the consistency checks applying to them.
- The
identifierstable stores resources' identifiers (the repository assumes every resource may have many). The table enforces global identifiers uniquness. The RDF property storing the identifier comes implicitly from the repository'sconfig.yaml($.schema.id) and is not explicitly stored inside the database. - The
relationstable stores all RDF triples having an URI as an object. It enforces (with a foreign key check) existence of a repository resource an RDF triple points to. - The
metadatatable stores all other RDF triples. This table puts no constraints on the data. Triples are stored in an RDF-like way - each row in the table represents a single triple.- For triple values which look like a proper number/date the
value_n/value_tcolumn stores a value casted to number/timestamp. This allows for correct comparisons which would fail against string values. - The index on the
valuecolumn is set up only on first 1000 characters of the value. This is both for technical and performance reasons. An important consequence is that if you want to benefit from indexed search on the value column, you should state your condition assubstring(value, 1, 1000) = 'yourValue'.
- For triple values which look like a proper number/date the
Supplementary tables include:
- The
transactionstable which stores information about pending transactions. - The
metadata_historytable which stores history of metadata modification. It's automatically filled in using triggers on tablesidentifiers,relationsandmetadata. - The
full_text_searchtable storing a GIST index on a tokenized metadata values and resources' text content allowing for a full text search (see the Postgresql documentation). - The
spatial_searchtable storing vector spatial data as PostGIS geography allowing for spatial searches (see the PostGIS documentation). - The
rawtable is used only for data migration from the previous ACDH-CH repository solution.
Helper functions and views
- The
metadata_viewgathers together triples from bothidentifiers,relationsandmetadatatables. - The
get_relatives()function allows easy finding of resources related to a given one with a given RDF property. Internally it uses a recursive query which could be difficult to write correctly on you own. - The
get_neighbors_metadata()and theget_relatives_metadata()functions allow for easy fetching of metadata triples of bot a given resource and resources related to it. Either by any single-hop RDF property (get_neighbors_metadata()) or with any number of hops of a one selected metadata property (get_relatives_metadata()).
Owner
- Name: Austrian Centre for Digital Humanities & Cultural Heritage
- Login: acdh-oeaw
- Kind: organization
- Email: acdh@oeaw.ac.at
- Location: Vienna, Austria
- Website: https://www.oeaw.ac.at/acdh
- Repositories: 476
- Profile: https://github.com/acdh-oeaw
Citation (CITATION.cff)
cff-version: 1.2.0
title: "ARCHE-core"
license: "MIT"
type: software
abstract: "The core component of the ARCHE repository solution responsible for the CRUD operations and transaction support."
authors:
- given-names: Mateusz
family-names: Żółtak
affiliation: Austrian Centre for Digital Humanities
orcid: "https://orcid.org/0000-0001-5853-2534"
GitHub Events
Total
- Create event: 19
- Issues event: 25
- Release event: 19
- Delete event: 2
- Issue comment event: 8
- Push event: 25
Last Year
- Create event: 19
- Issues event: 25
- Release event: 19
- Delete event: 2
- Issue comment event: 8
- Push event: 25
Committers
Last synced: almost 3 years ago
All Time
- Total Commits: 389
- Total Committers: 2
- Avg Commits per committer: 194.5
- Development Distribution Score (DDS): 0.003
Top Committers
| Name | Commits | |
|---|---|---|
| Mateusz Żółtak | z****k@z****g | 388 |
| Mateusz Żółtak | m****k@o****t | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 51
- Total pull requests: 2
- Average time to close issues: 2 months
- Average time to close pull requests: over 1 year
- Total issue authors: 5
- Total pull request authors: 2
- Average comments per issue: 0.84
- Average comments per pull request: 1.0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 17
- Pull requests: 0
- Average time to close issues: 19 days
- Average time to close pull requests: N/A
- Issue authors: 2
- Pull request authors: 0
- Average comments per issue: 0.53
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- zozlak (45)
- csae8092 (3)
- nczirjak-acdh (1)
- linxOD (1)
- arnold-graf (1)
Pull Request Authors
- KlausIllmayer (1)
- zozlak (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 2
-
Total downloads:
- packagist 5,996 total
-
Total dependent packages: 4
(may contain duplicates) -
Total dependent repositories: 2
(may contain duplicates) - Total versions: 216
- Total maintainers: 1
packagist.org: acdh-oeaw/arche-core
ARCHE repository backend
- Homepage: https://github.com/acdh-oeaw/arche-core
- License: MIT
-
Latest release: 5.7.0
published 8 months ago
Rankings
Maintainers (1)
Funding
packagist.org: acdh-oeaw/acdh-repo
ARCHE repository backend
- Homepage: https://github.com/acdh-oeaw/arche-core
- License: MIT
-
Latest release: 5.7.1
published 6 months ago
Rankings
Maintainers (1)
Funding
Dependencies
- phpstan/phpstan * development
- phpunit/phpunit ^9 development
- zozlak/yaml-merge ^1 development
- acdh-oeaw/arche-lib ^5
- acdh-oeaw/easyrdf >=0.15.3
- guzzlehttp/guzzle ^7 | ^6
- ml/json-ld ^1.2
- php >=8.0 <8.2
- php-amqplib/php-amqplib ^3.1
- pietercolpaert/hardf ^0.2.0
- zozlak/auth ^2
- zozlak/http-accept >=0.1.0 <1
- zozlak/logging >=0.1.1 <1
- zozlak/rdf-constants ^1
- actions/cache v2 composite
- actions/checkout v3 composite
- actions/setup-java v1 composite
- postgis/postgis 14-master docker
- rabbitmq * docker
- ubuntu jammy build