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

arche
Last synced: 6 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: acdh-oeaw
  • License: mit
  • Language: PHP
  • Default Branch: master
  • Homepage:
  • Size: 1.13 MB
Statistics
  • Stars: 0
  • Watchers: 2
  • Forks: 1
  • Open Issues: 12
  • Releases: 103
Topics
arche
Created over 6 years ago · Last pushed 8 months ago
Metadata Files
Readme License Citation

README.md

ARCHE-core

Latest Stable Version Build status Coverage Status License

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-dev wait 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 hit CTRL+c
  • Enter the docker container and run tests inside it bash docker exec -ti -u www-data arche-dev /bin/bash and then inside the container bash 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 apache2 Similarly 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

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 identifiers table 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's config.yaml ($.schema.id) and is not explicitly stored inside the database.
  • The relations table 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 metadata table 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_t column stores a value casted to number/timestamp. This allows for correct comparisons which would fail against string values.
    • The index on the value column 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 as substring(value, 1, 1000) = 'yourValue'.

Supplementary tables include:

  • The transactions table which stores information about pending transactions.
  • The metadata_history table which stores history of metadata modification. It's automatically filled in using triggers on tables identifiers, relations and metadata.
  • The full_text_search table 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_search table storing vector spatial data as PostGIS geography allowing for spatial searches (see the PostGIS documentation).
  • The raw table is used only for data migration from the previous ACDH-CH repository solution.

Helper functions and views

  • The metadata_view gathers together triples from both identifiers, relations and metadata tables.
  • 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 the get_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

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 Email 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
enhancement (27) bug (18) postponed (1) question (1) documentation (1) low priority (1)
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

  • Versions: 106
  • Dependent Packages: 4
  • Dependent Repositories: 2
  • Downloads: 5,865 Total
Rankings
Dependent packages count: 4.7%
Average: 16.2%
Downloads: 16.3%
Forks count: 16.4%
Dependent repos count: 18.6%
Stargazers count: 25.0%
Maintainers (1)
Funding
Last synced: 6 months ago
packagist.org: acdh-oeaw/acdh-repo

ARCHE repository backend

  • Versions: 110
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 131 Total
Rankings
Forks count: 15.5%
Dependent packages count: 19.1%
Average: 28.0%
Stargazers count: 32.6%
Dependent repos count: 33.5%
Downloads: 39.5%
Maintainers (1)
Funding
Last synced: 6 months ago

Dependencies

composer.json packagist
  • 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
.github/workflows/test.yml actions
  • actions/cache v2 composite
  • actions/checkout v3 composite
  • actions/setup-java v1 composite
  • postgis/postgis 14-master docker
  • rabbitmq * docker
build/docker/Dockerfile docker
  • ubuntu jammy build