fdk-reasoning-service
A service that extends and enriches graphs of harvested resources, before other parts of FDK handles the data.
- Each resource-type is enriched in by the reasoner based on different rules
- All organizations are extended with triples from organization-catalog
- These code lists from FDK reference data is used to extend associated triples:
- LOS is extended for resource types: datasets, information models, services
- Eurovocs is extended for resource types: datasets, information models, services
- data themes is extended for resource types: datasets, information models, services
- concept statuses is extended for resource types: concepts
- concept subjects is extended for resource types: concepts
- IANA media types is extended for resource types: data services, datasets
- file types is extended for resource types: data services, datasets
- open licenses is extended for resource types: datasets, information models
- linguistic systems is extended for resource types: datasets, information models, services
- nations is extended for resource types: datasets, information models
- norwegian regions is extended for resource types: datasets, information models
- norwegian municipalities is extended for resource types: datasets, information models
- access rights is extended for resource types: datasets
- frequencies is extended for resource types: datasets
- provenance is extended for resource types: datasets
- publisher types is extended for resource types: services
- adms statuses is extended for resource types: services
- role types is extended for resource types: services
- evidence types is extended for resource types: services
- channel types is extended for resource types: services
- main activities is extended for resource types: services
- week days is extended for resource types: services
Develop and run locally
Requirements
- maven (recommended)
- java 17
- docker
- docker-compose
Run tests
mvn verify
Run locally
docker-compose
docker-compose up -d rabbitmq
docker-compose up -d mongodb
mvn spring-boot:run -Dspring-boot.run.arguments="--spring.profiles.active=develop"
In another terminal:
docker-compose up -d
Alternatively run only one of the harvesters, e.g.
docker-compose up -d {relevant-harvester}
When reasoning is completed send request (log message contains "Successfully sent reasoning completed message for {CATALOG-TYPE}"
)
curl http://localhost:8080/{catalog-type}
Example - Datasets
docker-compose up -d rabbitmq
docker-compose up -d mongodb
mvn spring-boot:run -Dspring-boot.run.arguments="--spring.profiles.active=develop"
In a seperate terminal
docker-compose up -d dataset-harvester
Wait for successful reasoning, then run
curl http://localhost:8080/datasets