Skip to content

Repository files navigation

SEED XC - Reactive Micro Services for XML and RDF Processing

Tests Formatting docker.io pulls

This project provides RESTful micro services for XML processing and high-level components for building them. It is based on Quarkus, a stack for writing supersonic Java applications, and Mutiny, an event-driven reactive programming API: Together they are the basis for non-blocking, responsive, elastic and resilient services.

Services:

Components:

  • SEED API: OpenAPI specs and derived data models and service interfaces, common supporting classes
  • SEED XC Transformation Map: compile transformations once ahead of time and make them available for processing subsequent transformation request instantly
  • Transformations: Plugins for the SEED XC Transformation Map generating output representations from input streams
    • XSLT: XML Stylsheet Language Transformtions driven by Saxon HE
    • XQuery: same as the XSLT plugin, but for the XMM Query language
    • SPARQL: a Apache Jena-based plugin for running a SPARQL query against a serialized RDF graph. For generating JSON-LD output, it can run JSON-LD framing based on Titanium JSON LD. So this plugin is perfect for serving nice JSON APIs from RDF knowledge graphs.
  • ResourceProviders: Plugins for accessing resources (source documents) from different storage types
    • local filesystem: activated per default in tests
    • URL: activated per default
    • URN (planned)
    • InvenioRDM by DOI (planned)
    • RDBMS (planned)
  • transformation-info.xsl: XSLT stylesheet for generating configuration files for an XSLT stylesheet or package that is used in an transformation. See documentation.

This project is part of the SEED, which is--choose one--either a recursive acronym for SEED Electronic Editions or a word build from the alphabet D S E (the acronym for digital scholarly editions).

Getting Started

This project provides container images on docker hub for each service, as soon as possible. That does not imply, that they are production ready. Watch out for the milestones in this regard. However, you can test and investigate them and even deploy them for prototypes.

DTS: See dts directory

XML Transformer: See transformer directory

XSLT Compiler: See compiler directory

Don't forget to read the docs.

For the container images, the services are compiled to a native Linux executable and are then for security reasons build into a RedHat UBI micro image. Images are small, and have a fantastic startup time.

You can also run dev services. Instructions are provided under the links above. But notice, that you cannot deploy a Quarkus application on Tomcat, TomEE, WildFly etc.

Contributing

See contributing guide!

License

MIT

Releases

Packages

Contributors

Languages