Uploaded image for project: 'Apache Taverna'
  1. Apache Taverna
  2. TAVERNA-1017

Use/expose Commons RDF API instead of Jena/Sesame

    Details

      Description

      Currently we use and expose a combination of Sesame 2 and Jena 3:

      stain@biggiebuntu:~/src/taverna$ grep -i sesame */*/pom.xml
      incubator-taverna-language/taverna-scufl2-wfbundle/pom.xml:			<groupId>org.openrdf.sesame</groupId>
      incubator-taverna-language/taverna-scufl2-wfbundle/pom.xml:			<artifactId>sesame-repository-sail</artifactId>
      incubator-taverna-language/taverna-scufl2-wfbundle/pom.xml:			<version>${sesame.version}</version>
      incubator-taverna-language/taverna-scufl2-wfbundle/pom.xml:			<groupId>org.openrdf.sesame</groupId>
      incubator-taverna-language/taverna-scufl2-wfbundle/pom.xml:			<artifactId>sesame-sail-memory</artifactId>
      incubator-taverna-language/taverna-scufl2-wfbundle/pom.xml:			<version>${sesame.version}</version>
      stain@biggiebuntu:~/src/taverna$ grep -i jena */*/pom.xml
      incubator-taverna-commandline/taverna-commandline-product/pom.xml:    <!-- Jena bundle needed by jsonld-java-jena -->
      incubator-taverna-commandline/taverna-commandline-product/pom.xml:      <groupId>org.apache.jena</groupId>
      incubator-taverna-commandline/taverna-commandline-product/pom.xml:      <artifactId>jena-osgi</artifactId>
      incubator-taverna-commandline/taverna-commandline-product/pom.xml:      <version>${jena.version}</version>
      incubator-taverna-commandline/taverna-commandline-product/pom.xml:    <!-- Newer jsonld-java than jena-osgi requires (JENA-1176) -->
      incubator-taverna-commandline/taverna-commandline-product/pom.xml:Xerces OSGi bundle needed by jena-osgi
      incubator-taverna-commandline/taverna-commandline-product/pom.xml:<!-- Also needed by Jena -->
      incubator-taverna-engine/taverna-prov-owl-bindings/pom.xml:			<groupId>org.apache.jena</groupId>
      incubator-taverna-engine/taverna-prov-owl-bindings/pom.xml:			<artifactId>jena-osgi</artifactId>
      incubator-taverna-engine/taverna-prov-owl-bindings/pom.xml:			<version>${jena.version}</version>
      incubator-taverna-engine/taverna-prov-owl-bindings/pom.xml:	<description>OWL bindings using Jena</description>
      incubator-taverna-language/taverna-databundle/pom.xml:            <groupId>org.apache.jena</groupId>
      incubator-taverna-language/taverna-databundle/pom.xml:            <artifactId>jena-osgi</artifactId>
      incubator-taverna-language/taverna-databundle/pom.xml:            <version>${jena.version}</version>
      incubator-taverna-language/taverna-robundle/pom.xml:			<groupId>org.apache.jena</groupId>
      incubator-taverna-language/taverna-robundle/pom.xml:			<artifactId>jena-osgi</artifactId>
      incubator-taverna-language/taverna-robundle/pom.xml:			<version>${jena.version}</version>
      incubator-taverna-language/taverna-scufl2-annotation/pom.xml:			<groupId>org.apache.jena</groupId>
      incubator-taverna-language/taverna-scufl2-annotation/pom.xml:			<artifactId>jena-osgi</artifactId>
      incubator-taverna-language/taverna-scufl2-annotation/pom.xml:			<version>${jena.version}</version>
      incubator-taverna-language/taverna-scufl2-examples/pom.xml:			<groupId>org.apache.jena</groupId>
      incubator-taverna-language/taverna-scufl2-examples/pom.xml:			<artifactId>jena-arq</artifactId>
      incubator-taverna-language/taverna-scufl2-examples/pom.xml:			<version>${jena.version}</version>
      incubator-taverna-language/taverna-scufl2-wfdesc/pom.xml:				<groupId>org.apache.jena</groupId>
      incubator-taverna-language/taverna-scufl2-wfdesc/pom.xml:				<artifactId>jena-maven-tools</artifactId>
      incubator-taverna-language/taverna-scufl2-wfdesc/pom.xml:				<version>${jena.version}</version>
      incubator-taverna-language/taverna-scufl2-wfdesc/pom.xml:							<output>${project.build.directory}/generated-sources/jena</output>
      incubator-taverna-language/taverna-scufl2-wfdesc/pom.xml:								<source>${project.build.directory}/generated-sources/jena</source>
      incubator-taverna-language/taverna-scufl2-wfdesc/pom.xml:										<groupId>org.apache.jena</groupId>
      incubator-taverna-language/taverna-scufl2-wfdesc/pom.xml:										<artifactId>jena-maven-tools</artifactId>
      incubator-taverna-language/taverna-scufl2-wfdesc/pom.xml:										<versionRange>[${jena.version},)</versionRange>
      incubator-taverna-language/taverna-scufl2-wfdesc/pom.xml:										<!-- Make target/generated-source/jena -->
      incubator-taverna-language/taverna-scufl2-wfdesc/pom.xml:			<groupId>org.apache.jena</groupId>
      incubator-taverna-language/taverna-scufl2-wfdesc/pom.xml:			<artifactId>jena-osgi</artifactId>
      incubator-taverna-language/taverna-scufl2-wfdesc/pom.xml:			<version>${jena.version}</version>
      incubator-taverna-plugin-component/taverna-component-activity/pom.xml:			<groupId>org.apache.jena</groupId>
      incubator-taverna-plugin-component/taverna-component-activity/pom.xml:			<artifactId>jena-osgi</artifactId>
      incubator-taverna-plugin-component/taverna-component-activity/pom.xml:			<version>${jena.version}</version>
      incubator-taverna-plugin-component/taverna-component-repository-api/pom.xml:			<groupId>org.apache.jena</groupId>
      incubator-taverna-plugin-component/taverna-component-repository-api/pom.xml:			<artifactId>jena-osgi</artifactId>
      incubator-taverna-plugin-component/taverna-component-repository-api/pom.xml:			<version>${jena.version}</version>
      

      Some of those are exposed in the API - e.g. in
      https://taverna.incubator.apache.org/javadoc/taverna-language/org/apache/taverna/scufl2/annotation/AnnotationTools.html

      Commons RDF is evolving as a light-weight API with bindings for both RDF4J (newer Sesame) and Jena - but with interfaces that don't expose those.

      So it would be a good idea if we could move towards using Commons RDF and from our API only expose RDF interfaces from Commons RDF API – then we are free to swap/update implementations.

      Some of this uses with JSONLD in RO Bundle can use the JSONLD-Java binding for Commons RDF directly, and therefore reduce the number of dependencies of taverna-robundle.

      Full disclosure: I'm one of the committers of Commons RDF Version 0.3.0 adds the RDF4J/Jena implementations, currently under vote.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                stain Stian Soiland-Reyes
                Reporter:
                stain Stian Soiland-Reyes
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated: