Stian Soiland-Reyes created TAVERNA-1016:
--------------------------------------------

             Summary: Use/expose Commons RDF API instead of Jena/Sesame
                 Key: TAVERNA-1016
                 URL: https://issues.apache.org/jira/browse/TAVERNA-1016
             Project: Apache Taverna
          Issue Type: Task
          Components: Taverna Engine, Taverna Language, Taverna Plugin Component
            Reporter: Stian Soiland-Reyes
            Assignee: Stian Soiland-Reyes


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

{code}
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>
{code}

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|http://commonsrdf.apache.org/] 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|http://commonsrdf.apache.org/apidocs/index.html?org/apache/commons/rdf/api/package-summary.html]
 -- 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|https://lists.apache.org/thread.html/5c6ce4d52e3f6ca69236bfba4176b49f8388d8caa118ac10b7464bec@%3Cdev.commonsrdf.apache.org%3E].



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to