repository-extension-services issueshttps://gitlab.amherst.edu/acdc/repository-extension-services/-/issues2018-10-04T16:01:51-04:00https://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/31acrepo-connector-triplestore fedora4 skolemization change2017-09-24T06:33:33-04:00bseegeracrepo-connector-triplestore fedora4 skolemization changeFedora4 semantics around how blank nodes are skolemized has changed - from .well_known to #genid (https://github.com/fcrepo4/fcrepo4/commit/d804293c06ce11c27ff0946fa95a225166dbc4e4). Looks like the main route for this connector filters ...Fedora4 semantics around how blank nodes are skolemized has changed - from .well_known to #genid (https://github.com/fcrepo4/fcrepo4/commit/d804293c06ce11c27ff0946fa95a225166dbc4e4). Looks like the main route for this connector filters out hashURI and will need to be updated to work with this change once a fedora containing it is released.acoburnacoburnhttps://gitlab.amherst.edu/acdc/repository-extension-services/-/issues/30acrepo-services-entailment: Fix error that's returned on bad request2017-09-24T06:33:33-04:00bseegeracrepo-services-entailment: Fix error that's returned on bad requestIf I request an object that doesn't exist, I get a stack trace. This should probably be cleaned up.
curl http://localhost:9109/entailment?context=http://localhost:8080/fcrepo/rest/ha -i
HTTP/1.1 500 Server Error
Content-Ty...If I request an object that doesn't exist, I get a stack trace. This should probably be cleaned up.
curl http://localhost:9109/entailment?context=http://localhost:8080/fcrepo/rest/ha -i
HTTP/1.1 500 Server Error
Content-Type: text/plain; charset=ISO-8859-1
Transfer-Encoding: chunked
org.apache.camel.language.bean.RuntimeBeanExpressionException: Failed to invoke method: getEntailedTriples(${header[CamelFcrepoUri]}, ${body},
${header[Content-Type]}, ${header[Accept]}) on null due to: org.apache.jena.riot.RiotException: Failed to determine the content type: (URI=null : stream=null)
at org.apache.camel.language.bean.BeanExpression$OgnlInvokeProcessor.process(BeanExpression.java:326)
at org.apache.camel.language.bean.BeanExpression.evaluate(BeanExpression.java:114)
at org.apache.camel.language.bean.BeanExpression.evaluate(BeanExpression.java:138)
at org.apache.camel.processor.SetBodyProcessor.process(SetBodyProcessor.java:49)
at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77)
at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:542)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:197)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.bseegerbseegerhttps://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/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/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/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/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/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/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/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/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/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/16Review JNDI-based naming conventions for services2017-09-24T06:33:33-04:00acoburnReview JNDI-based naming conventions for servicesWe currently have a number of names for the `osgi.jndi.service.name` values: acrepobroker, inference, jsonld, etc. It would be good to come up with some naming conventions -- maybe there are patterns for this? Should the names include `e...We currently have a number of names for the `osgi.jndi.service.name` values: acrepobroker, inference, jsonld, etc. It would be good to come up with some naming conventions -- maybe there are patterns for this? Should the names include `edu.amherst.acdc` or `acrepo`?
This applies to all of the `acrepo-services-*` modules, which then are used by many of the `acrepo-exts-*` and `acrepo-connector-*` modules.acoburnacoburnhttps://gitlab.amherst.edu/acdc/repository-extension-services/-/issues/14Broadcast Extension Test fails with extra messages2017-09-24T06:33:33-04:00bseegerBroadcast Extension Test fails with extra messagesOne of the broadcast extension integration tests fails with extra messages on each of the queues. It seems that there are probably JMS messages on the queue from other tests.
A @Before function could be created to clear the queue befor...One of the broadcast extension integration tests fails with extra messages on each of the queues. It seems that there are probably JMS messages on the queue from other tests.
A @Before function could be created to clear the queue before hand. bseegerbseegerhttps://gitlab.amherst.edu/acdc/repository-extension-services/-/issues/13Add testing mechanism to acrepo-exts-pcdm2017-09-24T06:33:33-04:00acoburnAdd testing mechanism to acrepo-exts-pcdmA real test will be in `acrepo-itests` and involve building an entire PCDM object in Fedora and then calling the extension and retrieving the entire graph. The pcdm extension should also be added to the AcrepoServicesIT test.A real test will be in `acrepo-itests` and involve building an entire PCDM object in Fedora and then calling the extension and retrieving the entire graph. The pcdm extension should also be added to the AcrepoServicesIT test.acoburnacoburnhttps://gitlab.amherst.edu/acdc/repository-extension-services/-/issues/12Revamp acrepo-exts-template to use different templates2017-09-24T06:33:33-04:00bseegerRevamp acrepo-exts-template to use different templatesFrom comments in https://gitlab.amherst.edu/acdc/repository-extension-services/issues/4#note_739
The idea is to revamp this module to work with any supplied template. There would be a URL param that points to a template, so it's fle...From comments in https://gitlab.amherst.edu/acdc/repository-extension-services/issues/4#note_739
The idea is to revamp this module to work with any supplied template. There would be a URL param that points to a template, so it's flexible. Perhaps the default could be a mustache template, but others could be supplied via this param. Or we could have a cfg variable that has the URL of the default (mustache) and that could be overridden by a URL param, if the user wants.bseegerbseegerhttps://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).acoburnacoburn