repository-extension-services issueshttps://gitlab.amherst.edu/acdc/repository-extension-services/-/issues2018-10-09T15:57:27-04:00https://gitlab.amherst.edu/acdc/repository-extension-services/-/issues/1RDF to MODS XML transformation2018-10-09T15:57:27-04:00acoburnRDF to MODS XML transformationThe `acrepo-xml-metadata` service is very minimal and is based entirely on XSLT. It should be 1) aligned with the MODS xml application profile and 2) set up to dereference remote URIs, importing the appropriate label/structure.The `acrepo-xml-metadata` service is very minimal and is based entirely on XSLT. It should be 1) aligned with the MODS xml application profile and 2) set up to dereference remote URIs, importing the appropriate label/structure.bseegerbseegerhttps://gitlab.amherst.edu/acdc/repository-extension-services/-/issues/25Rework extensions to use less XML and more JSON-LD2018-10-09T15:54:06-04:00acoburnRework extensions to use less XML and more JSON-LDsome of the xpath code is kind of gross and can be better expressed with JSON anyway.some of the xpath code is kind of gross and can be better expressed with JSON anyway.https://gitlab.amherst.edu/acdc/repository-extension-services/-/issues/33Remove the Serialize-XML service2018-10-04T16:01:51-04:00acoburnRemove the Serialize-XML serviceThe serialize-xml service is based on applying XSLT to RDF, which is very brittle. Plus, it doesn't really work correctly right now. I would like to propose removing it entirely for the 1.2 release.The serialize-xml service is based on applying XSLT to RDF, which is very brittle. Plus, it doesn't really work correctly right now. I would like to propose removing it entirely for the 1.2 release.https://gitlab.amherst.edu/acdc/repository-extension-services/-/issues/32Do something with the idiomatic-mysql module/feature2018-10-04T13:54:06-04:00acoburnDo something with the idiomatic-mysql module/featurePAX no longer has a mysql module, so we should change ours to use the mariadb configuration/feature.PAX no longer has a mysql module, so we should change ours to use the mariadb configuration/feature.https://gitlab.amherst.edu/acdc/repository-extension-services/-/issues/18Familiarize ourselves with HydraCG2018-09-29T13:24:40-04:00acoburnFamiliarize ourselves with HydraCGHydraCG is a vocabulary/spec for describing Web APIs. We should be familiar with it.
http://www.hydra-cg.com/spec/latest/core/
An alternative is Swagger.io: http://swagger.io/HydraCG is a vocabulary/spec for describing Web APIs. We should be familiar with it.
http://www.hydra-cg.com/spec/latest/core/
An alternative is Swagger.io: http://swagger.io/https://gitlab.amherst.edu/acdc/repository-extension-services/-/issues/28Update gradle with latest `build-tools` version2018-09-28T16:47:50-04:00bseegerUpdate gradle with latest `build-tools` versionThe latest version doesn't enforce the year in the license information.The latest version doesn't enforce the year in the license information.https://gitlab.amherst.edu/acdc/repository-extension-services/-/issues/15Create a WebAC "enhancement" extension2017-09-24T06:33:33-04:00acoburnCreate a WebAC "enhancement" extensionThis extension would enhance the graph of a single Fedora resource by adding triples corresponding to the linked and dereferenced WebAC resource. The extension would read the corresponding `Link` header, identifying the effective ACL, ad...This extension would enhance the graph of a single Fedora resource by adding triples corresponding to the linked and dereferenced WebAC resource. The extension would read the corresponding `Link` header, identifying the effective ACL, adding a `acl:accessControl` triple, if one don't already exist.
https://gitlab.amherst.edu/acdc/repository-extension-services/-/issues/6Create a service that accepts a ZIP file of content and ingests that content ...2017-09-24T06:33:33-04:00acoburnCreate a service that accepts a ZIP file of content and ingests that content into FedoraThis would be an ingest service, quite possibly using an external (e.g. Python) script.This would be an ingest service, quite possibly using an external (e.g. Python) script.https://gitlab.amherst.edu/acdc/repository-extension-services/-/issues/8LD Cache Service2017-09-24T06:33:33-04:00acoburnLD Cache ServiceThis is mostly addressed by !21 This is mostly addressed by !21 acoburnacoburnhttps://gitlab.amherst.edu/acdc/repository-extension-services/-/issues/9create a acrepo-services-ldcache-file module for dynamic ldcache backend support2017-09-24T06:33:33-04:00acoburncreate a acrepo-services-ldcache-file module for dynamic ldcache backend supportEnable dynamic OSGi service loading of different LDCachingBackend implementations (rather then the current hard-coded File-based backend)Enable dynamic OSGi service loading of different LDCachingBackend implementations (rather then the current hard-coded File-based backend)acoburnacoburnhttps://gitlab.amherst.edu/acdc/repository-extension-services/-/issues/11Build a PCDM object service2017-09-24T06:33:33-04:00acoburnBuild a PCDM object serviceThis would be an extension (`acrepo-exts-pcdm`) that interacts with the `acrepo-services-pcdm` service. Given a Fedora resource path, it builds an entire PCDM object graph, returning the complete graph in whatever format was requested (e...This would be an extension (`acrepo-exts-pcdm`) that interacts with the `acrepo-services-pcdm` service. Given a Fedora resource path, it builds an entire PCDM object graph, returning the complete graph in whatever format was requested (e.g. via the `Accept:` header).acoburnacoburnhttps://gitlab.amherst.edu/acdc/repository-extension-services/-/issues/17Figure out if we're using PCDM2017-09-24T06:33:33-04:00acoburnFigure out if we're using PCDMThe direction of PCDM 2.0 seems to introduce unnecessary complexity. We should consider simply using the ORE vocabulary. If we do that, we would use the `ore:aggregates` property along with structural typing. A full structure might look ...The direction of PCDM 2.0 seems to introduce unnecessary complexity. We should consider simply using the ORE vocabulary. If we do that, we would use the `ore:aggregates` property along with structural typing. A full structure might look like this:
```
# Top-level resource map
</resources/1> a ore:ResourceMap ;
skos:prefLabel "smth"@en ;
dcterms:description "lots of descriptive metadata here" ;
dcterms:isPartOf </collections/someCollection> ;
ore:describes </resources/resource1/aggregation> .
# Aggregation
</resources/1/aggregation> a ore:Aggregation ;
ldp:contains </resources/1/aggregation/members> ;
iana:first </resources/1/aggregation/members/page1> ;
iana:last </resources/1/aggregation/members/page3> ;
ore:aggregates </resources/1/aggregation/members/page1> , </resources/1/aggregation/members/page2> , </resources/1/aggregation/members/page3> .
# Pages LDP container
</resources/1/aggregation/members> a ldp:DirectContainer ;
ldp:membershipResource </resources/1/aggregation> ;
ldp:hasMemberRelation ore:aggregates ;
ldp:contains </resources/1/aggregation/members/page1> , </resources/1/aggregation/members/page2> , </resources/1/aggregation/members/page3> .
# Individual Pages
</resources/1/aggregation/members/page1> a ore:Aggregation ;
iana:next </resources/1/aggregation/members/page2> ;
ore:aggregates </resources/1/aggregation/members/page1/members/file1> , </resources/1/aggregation/members/page1/members/file2> ;
ldp:contains </resources/1/aggregation/members/page1/members> , </resources/1/aggregation/members/page1/related> .
</resources/1/aggregation/members/page2> a ore:Aggregation ;
iana:prev </resources/1/aggregation/members/page1> ;
iana:next </resources/1/aggregation/members/page3> ;
ore:aggregates </resources/1/aggregation/members/page2/members/file1> , </resources/1/aggregation/members/page2/members/file2> ;
ldp:contains </resources/1/aggregation/members/page2/members> , </resources/1/aggregation/members/page2/related> .
</resources/1/aggregation/members/page3> a ore:Aggregation ;
iana:prev </resources/1/aggregation/members/page2> ;
ore:aggregates </resources/1/aggregation/members/page3/members/file1> , </resources/1/aggregation/members/page3/members/file2> ;
ldp:contains </resources/1/aggregation/members/page3/members> , </resources/1/aggregation/members/page3/related> .
# Files would follow a structure similar to the above structure (FITS metadata goes into a ./related container and uses iana:describedby)....
</resources/1/aggregation/members/page1/members/file1> a fedora:Binary ;
iana:describedby </resources/1/aggregation/members/page1/related/metadata1> .
</resources/1/aggregation/members/page1/members/file2> a fedora:Binary ;
iana:describedby </resources/1/aggregation/members/page1/related/metadata2> .
```https://gitlab.amherst.edu/acdc/repository-extension-services/-/issues/19Familiarize ourselves with ORE specs2017-09-24T06:33:33-04:00acoburnFamiliarize ourselves with ORE specsThere are a number of ORE documents that we should be familiar with, including:
* http://www.openarchives.org/ore/1.0/http
* http://www.openarchives.org/ore/1.0/datamodel
* http://www.openarchives.org/ore/1.0/discoveryThere are a number of ORE documents that we should be familiar with, including:
* http://www.openarchives.org/ore/1.0/http
* http://www.openarchives.org/ore/1.0/datamodel
* http://www.openarchives.org/ore/1.0/discoveryhttps://gitlab.amherst.edu/acdc/repository-extension-services/-/issues/21Upgrade to fcrepo-camel/4.52017-09-24T06:33:33-04:00acoburnUpgrade to fcrepo-camel/4.5Once fcrepo-camel/4.5 is released, we should upgrade our system to make use of it. At the same time, we will need to update camel to 2.18.0. We should also remove the hard dependencies on particular Camel/AMQ versions: https://gitlab.amh...Once fcrepo-camel/4.5 is released, we should upgrade our system to make use of it. At the same time, we will need to update camel to 2.18.0. We should also remove the hard dependencies on particular Camel/AMQ versions: https://gitlab.amherst.edu/acdc/repository-extension-services/blob/master/acrepo-karaf/src/main/resources/features.xml#L3-5https://gitlab.amherst.edu/acdc/repository-extension-services/-/issues/22Convert pcdm extension to be an ORE extension2017-09-24T06:33:33-04:00acoburnConvert pcdm extension to be an ORE extensionacoburnacoburnhttps://gitlab.amherst.edu/acdc/repository-extension-services/-/issues/23Remove JSON-LD extension2017-09-24T06:33:33-04:00acoburnRemove JSON-LD extensionThe same thing can easily be accomplished with JSON-LD profiles.The same thing can easily be accomplished with JSON-LD profiles.https://gitlab.amherst.edu/acdc/repository-extension-services/-/issues/24Rework Marmotta LDCache-related extensions2017-09-24T06:33:33-04:00acoburnRework Marmotta LDCache-related extensionsThe fcrepo-camel-toolbox provides better functionality with fcrepo-ldpath that what we have here. The existing fcrepo-ldpath code should be extended (using a custom blueprint config) to support the endpoint types that we need -- i.e. as ...The fcrepo-camel-toolbox provides better functionality with fcrepo-ldpath that what we have here. The existing fcrepo-ldpath code should be extended (using a custom blueprint config) to support the endpoint types that we need -- i.e. as `acrepo-ldpath`.https://gitlab.amherst.edu/acdc/repository-extension-services/-/issues/26start using fcrepo-service-activemq2017-09-24T06:33:33-04:00acoburnstart using fcrepo-service-activemqWe don't need to implement our own activemq broker -- we should convert to using fcrepo-service-activemq once the new fcrepo-camel-toolbox is released.We don't need to implement our own activemq broker -- we should convert to using fcrepo-service-activemq once the new fcrepo-camel-toolbox is released.acoburnacoburnhttps://gitlab.amherst.edu/acdc/repository-extension-services/-/issues/27Create an RDFS entailment extension2017-09-24T06:33:33-04:00acoburnCreate an RDFS entailment extensionThe purpose of this extension would be to retrieve an RDF graph from Fedora and add entailed triples, given a set of configured ontologies.
For instance, if the dcterms vocabulary is included, a Fedora resource with a triple `<> dcterms...The purpose of this extension would be to retrieve an RDF graph from Fedora and add entailed triples, given a set of configured ontologies.
For instance, if the dcterms vocabulary is included, a Fedora resource with a triple `<> dcterms:title "some title"` would be entailed to also include `<> dc:title "some title"`. I would think that making the set of vocabularies/ontologies from which to draw would be a runtime configuration.
The structure of the code would include a `acrepo-service-entailment` module that defines the OSGi service (take a look at the existing `acrepo-service-inference` for ideas), and a `acrepo-exts-entailment` module that connects the reasoner to specific Fedora resources and exposes an HTTP endpoint.bseegerbseegerhttps://gitlab.amherst.edu/acdc/repository-extension-services/-/issues/29Add Prefer headers to acrepo-exts-entailment module2017-09-24T06:33:33-04:00bseegerAdd Prefer headers to acrepo-exts-entailment moduleAdd prefer header configuration variables to the `acrepo-exts-entailment` servers. Use `acrepo-connector-triplestore` for inspiration.Add prefer header configuration variables to the `acrepo-exts-entailment` servers. Use `acrepo-connector-triplestore` for inspiration.bseegerbseeger