Skip to content

Commit

Permalink
feat: rdf-endpoints for all eu code lists
Browse files Browse the repository at this point in the history
  • Loading branch information
NilsOveTen committed Dec 18, 2023
1 parent 0958b6f commit a34960c
Show file tree
Hide file tree
Showing 25 changed files with 311 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package no.fdk.referencedata.eu.accessright;

import lombok.extern.slf4j.Slf4j;
import org.apache.jena.riot.RDFFormat;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
Expand Down Expand Up @@ -41,4 +42,10 @@ public ResponseEntity<Void> updateAccessRights() {
public ResponseEntity<AccessRight> getAccessRight(@PathVariable("code") String code) {
return ResponseEntity.of(accessRightRepository.findByCode(code));
}

@CrossOrigin
@GetMapping(produces = "text/turtle")
public ResponseEntity<String> getAccessRightsRDF() {
return ResponseEntity.ok(accessRightService.getRdf(RDFFormat.TURTLE));
}
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,16 @@
package no.fdk.referencedata.eu.accessright;

import lombok.extern.slf4j.Slf4j;
import no.fdk.referencedata.rdf.RDFSource;
import no.fdk.referencedata.rdf.RDFSourceRepository;
import no.fdk.referencedata.rdf.RDFUtils;
import no.fdk.referencedata.settings.HarvestSettings;
import no.fdk.referencedata.settings.HarvestSettingsRepository;
import no.fdk.referencedata.settings.Settings;
import no.fdk.referencedata.util.Version;
import org.apache.jena.rdf.model.ModelFactory;
import org.apache.jena.riot.Lang;
import org.apache.jena.riot.RDFFormat;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
Expand All @@ -15,26 +21,39 @@
@Service
@Slf4j
public class AccessRightService {
private final String dbSourceID = "access-rights-source";

private final AccessRightHarvester accessRightHarvester;

private final AccessRightRepository accessRightRepository;

private final HarvestSettingsRepository harvestSettingsRepository;
private final RDFSourceRepository rdfSourceRepository;

@Autowired
public AccessRightService(AccessRightHarvester accessRightHarvester,
AccessRightRepository accessRightRepository,
RDFSourceRepository rdfSourceRepository,
HarvestSettingsRepository harvestSettingsRepository) {
this.accessRightHarvester = accessRightHarvester;
this.accessRightRepository = accessRightRepository;
this.rdfSourceRepository = rdfSourceRepository;
this.harvestSettingsRepository = harvestSettingsRepository;
}

public boolean firstTime() {
return accessRightRepository.count() == 0;
}

public String getRdf(RDFFormat rdfFormat) {
String source = rdfSourceRepository.findById(dbSourceID).orElse(new RDFSource()).getTurtle();
if (rdfFormat == RDFFormat.TURTLE) {
return source;
} else {
return RDFUtils.modelToResponse(ModelFactory.createDefaultModel().read(source, Lang.TURTLE.getName()), rdfFormat);
}
}

@Transactional
public void harvestAndSave(boolean force) {
try {
Expand All @@ -57,6 +76,11 @@ public void harvestAndSave(boolean force) {
log.info("Harvest and saving {} access-rights", counter.get());
accessRightRepository.saveAll(iterable);

RDFSource rdfSource = new RDFSource();
rdfSource.setId(dbSourceID);
rdfSource.setTurtle(RDFUtils.modelToResponse(accessRightHarvester.getModel(), RDFFormat.TURTLE));
rdfSourceRepository.save(rdfSource);

settings.setLatestHarvestDate(LocalDateTime.now());
settings.setLatestVersion(accessRightHarvester.getVersion());
harvestSettingsRepository.save(settings);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package no.fdk.referencedata.eu.distributiontype;

import lombok.extern.slf4j.Slf4j;
import org.apache.jena.riot.RDFFormat;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
Expand Down Expand Up @@ -41,4 +42,10 @@ public ResponseEntity<Void> updateDistributionTypes() {
public ResponseEntity<DistributionType> getDistributionType(@PathVariable("code") String code) {
return ResponseEntity.of(distributionTypeRepository.findByCode(code));
}

@CrossOrigin
@GetMapping(produces = "text/turtle")
public ResponseEntity<String> getDistributionTypesRDF() {
return ResponseEntity.ok(distributionTypeService.getRdf(RDFFormat.TURTLE));
}
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,16 @@
package no.fdk.referencedata.eu.distributiontype;

import lombok.extern.slf4j.Slf4j;
import no.fdk.referencedata.rdf.RDFSource;
import no.fdk.referencedata.rdf.RDFSourceRepository;
import no.fdk.referencedata.rdf.RDFUtils;
import no.fdk.referencedata.settings.HarvestSettings;
import no.fdk.referencedata.settings.HarvestSettingsRepository;
import no.fdk.referencedata.settings.Settings;
import no.fdk.referencedata.util.Version;
import org.apache.jena.rdf.model.ModelFactory;
import org.apache.jena.riot.Lang;
import org.apache.jena.riot.RDFFormat;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
Expand All @@ -15,26 +21,39 @@
@Service
@Slf4j
public class DistributionTypeService {
private final String dbSourceID = "distribution-types-source";

private final DistributionTypeHarvester distributionTypeHarvester;

private final DistributionTypeRepository distributionTypeRepository;

private final HarvestSettingsRepository harvestSettingsRepository;
private final RDFSourceRepository rdfSourceRepository;

@Autowired
public DistributionTypeService(DistributionTypeHarvester distributionTypeHarvester,
DistributionTypeRepository distributionTypeRepository,
RDFSourceRepository rdfSourceRepository,
HarvestSettingsRepository harvestSettingsRepository) {
this.distributionTypeHarvester = distributionTypeHarvester;
this.distributionTypeRepository = distributionTypeRepository;
this.rdfSourceRepository = rdfSourceRepository;
this.harvestSettingsRepository = harvestSettingsRepository;
}

public boolean firstTime() {
return distributionTypeRepository.count() == 0;
}

public String getRdf(RDFFormat rdfFormat) {
String source = rdfSourceRepository.findById(dbSourceID).orElse(new RDFSource()).getTurtle();
if (rdfFormat == RDFFormat.TURTLE) {
return source;
} else {
return RDFUtils.modelToResponse(ModelFactory.createDefaultModel().read(source, Lang.TURTLE.getName()), rdfFormat);
}
}

@Transactional
public void harvestAndSave(boolean force) {
try {
Expand All @@ -57,6 +76,11 @@ public void harvestAndSave(boolean force) {
log.info("Harvest and saving {} distribution-types", counter.get());
distributionTypeRepository.saveAll(iterable);

RDFSource rdfSource = new RDFSource();
rdfSource.setId(dbSourceID);
rdfSource.setTurtle(RDFUtils.modelToResponse(distributionTypeHarvester.getModel(), RDFFormat.TURTLE));
rdfSourceRepository.save(rdfSource);

settings.setLatestHarvestDate(LocalDateTime.now());
settings.setLatestVersion(distributionTypeHarvester.getVersion());
harvestSettingsRepository.save(settings);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import lombok.extern.slf4j.Slf4j;
import no.fdk.referencedata.eu.eurovoc.EuroVocService;
import org.apache.jena.riot.RDFFormat;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
Expand Down Expand Up @@ -42,4 +43,10 @@ public ResponseEntity<Void> updateFileTypes() {
public ResponseEntity<FileType> getFileType(@PathVariable("code") String code) {
return ResponseEntity.of(fileTypeRepository.findByCode(code));
}

@CrossOrigin
@GetMapping(produces = "text/turtle")
public ResponseEntity<String> getFileTypesRDF() {
return ResponseEntity.ok(fileTypeService.getRdf(RDFFormat.TURTLE));
}
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,16 @@
package no.fdk.referencedata.eu.filetype;

import lombok.extern.slf4j.Slf4j;
import no.fdk.referencedata.rdf.RDFSource;
import no.fdk.referencedata.rdf.RDFSourceRepository;
import no.fdk.referencedata.rdf.RDFUtils;
import no.fdk.referencedata.settings.HarvestSettings;
import no.fdk.referencedata.settings.HarvestSettingsRepository;
import no.fdk.referencedata.settings.Settings;
import no.fdk.referencedata.util.Version;
import org.apache.jena.rdf.model.ModelFactory;
import org.apache.jena.riot.Lang;
import org.apache.jena.riot.RDFFormat;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
Expand All @@ -15,26 +21,39 @@
@Service
@Slf4j
public class FileTypeService {
private final String dbSourceID = "file-types-source";

private final FileTypeHarvester fileTypeHarvester;

private final FileTypeRepository fileTypeRepository;

private final HarvestSettingsRepository harvestSettingsRepository;
private final RDFSourceRepository rdfSourceRepository;

@Autowired
public FileTypeService(FileTypeHarvester fileTypeHarvester,
FileTypeRepository fileTypeRepository,
RDFSourceRepository rdfSourceRepository,
HarvestSettingsRepository harvestSettingsRepository) {
this.fileTypeHarvester = fileTypeHarvester;
this.fileTypeRepository = fileTypeRepository;
this.rdfSourceRepository = rdfSourceRepository;
this.harvestSettingsRepository = harvestSettingsRepository;
}

public boolean firstTime() {
return fileTypeRepository.count() == 0;
}

public String getRdf(RDFFormat rdfFormat) {
String source = rdfSourceRepository.findById(dbSourceID).orElse(new RDFSource()).getTurtle();
if (rdfFormat == RDFFormat.TURTLE) {
return source;
} else {
return RDFUtils.modelToResponse(ModelFactory.createDefaultModel().read(source, Lang.TURTLE.getName()), rdfFormat);
}
}

@Transactional
public void harvestAndSave(boolean force) {
try {
Expand All @@ -57,6 +76,11 @@ public void harvestAndSave(boolean force) {
log.info("Harvest and saving {} file-types", counter.get());
fileTypeRepository.saveAll(iterable);

RDFSource rdfSource = new RDFSource();
rdfSource.setId(dbSourceID);
rdfSource.setTurtle(RDFUtils.modelToResponse(fileTypeHarvester.getModel(), RDFFormat.TURTLE));
rdfSourceRepository.save(rdfSource);

settings.setLatestHarvestDate(LocalDateTime.now());
settings.setLatestVersion(fileTypeHarvester.getVersion());
harvestSettingsRepository.save(settings);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package no.fdk.referencedata.eu.frequency;

import lombok.extern.slf4j.Slf4j;
import org.apache.jena.riot.RDFFormat;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
Expand Down Expand Up @@ -41,4 +42,10 @@ public ResponseEntity<Void> updateFrequencies() {
public ResponseEntity<Frequency> getFrequency(@PathVariable("code") String code) {
return ResponseEntity.of(frequencyRepository.findByCode(code));
}

@CrossOrigin
@GetMapping(produces = "text/turtle")
public ResponseEntity<String> getFrequenciesRDF() {
return ResponseEntity.ok(frequencyService.getRdf(RDFFormat.TURTLE));
}
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,16 @@
package no.fdk.referencedata.eu.frequency;

import lombok.extern.slf4j.Slf4j;
import no.fdk.referencedata.rdf.RDFSource;
import no.fdk.referencedata.rdf.RDFSourceRepository;
import no.fdk.referencedata.rdf.RDFUtils;
import no.fdk.referencedata.settings.HarvestSettings;
import no.fdk.referencedata.settings.HarvestSettingsRepository;
import no.fdk.referencedata.settings.Settings;
import no.fdk.referencedata.util.Version;
import org.apache.jena.rdf.model.ModelFactory;
import org.apache.jena.riot.Lang;
import org.apache.jena.riot.RDFFormat;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
Expand All @@ -15,26 +21,39 @@
@Service
@Slf4j
public class FrequencyService {
private final String dbSourceID = "frequencies-source";

private final FrequencyHarvester frequencyHarvester;

private final FrequencyRepository frequencyRepository;

private final HarvestSettingsRepository harvestSettingsRepository;
private final RDFSourceRepository rdfSourceRepository;

@Autowired
public FrequencyService(FrequencyHarvester frequencyHarvester,
FrequencyRepository frequencyRepository,
RDFSourceRepository rdfSourceRepository,
HarvestSettingsRepository harvestSettingsRepository) {
this.frequencyHarvester = frequencyHarvester;
this.frequencyRepository = frequencyRepository;
this.rdfSourceRepository = rdfSourceRepository;
this.harvestSettingsRepository = harvestSettingsRepository;
}

public boolean firstTime() {
return frequencyRepository.count() == 0;
}

public String getRdf(RDFFormat rdfFormat) {
String source = rdfSourceRepository.findById(dbSourceID).orElse(new RDFSource()).getTurtle();
if (rdfFormat == RDFFormat.TURTLE) {
return source;
} else {
return RDFUtils.modelToResponse(ModelFactory.createDefaultModel().read(source, Lang.TURTLE.getName()), rdfFormat);
}
}

@Transactional
public void harvestAndSave(boolean force) {
try {
Expand All @@ -57,6 +76,11 @@ public void harvestAndSave(boolean force) {
log.info("Harvest and saving {} frequencies", counter.get());
frequencyRepository.saveAll(iterable);

RDFSource rdfSource = new RDFSource();
rdfSource.setId(dbSourceID);
rdfSource.setTurtle(RDFUtils.modelToResponse(frequencyHarvester.getModel(), RDFFormat.TURTLE));
rdfSourceRepository.save(rdfSource);

settings.setLatestHarvestDate(LocalDateTime.now());
settings.setLatestVersion(frequencyHarvester.getVersion());
harvestSettingsRepository.save(settings);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package no.fdk.referencedata.eu.mainactivity;

import lombok.extern.slf4j.Slf4j;
import org.apache.jena.riot.RDFFormat;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.CrossOrigin;
Expand Down Expand Up @@ -46,4 +47,10 @@ public ResponseEntity<Void> updateMainActivities() {
public ResponseEntity<MainActivity> getMainActivity(@PathVariable("code") String code) {
return ResponseEntity.of(mainActivityRepository.findByCode(code));
}

@CrossOrigin
@GetMapping(produces = "text/turtle")
public ResponseEntity<String> getMainActivitiesRDF() {
return ResponseEntity.ok(mainActivityService.getRdf(RDFFormat.TURTLE));
}
}
Loading

0 comments on commit a34960c

Please sign in to comment.