matthiaskoenig / cy3sbml

cy3sbml: SBML for Cytoscape 3
GNU Lesser General Public License v3.0
13 stars 2 forks source link

Support Combine archive files (.omex) #116

Open matthiaskoenig opened 7 years ago

matthiaskoenig commented 7 years ago

Allow to read all SBML files from a given OMEX file. Necessary to register an additional file filter for *.omex and read the SBML files from the manifest file.

matthiaskoenig commented 7 years ago

In addition to the combine archive, also the research objects should be supported. Similar strategy of finding all the SBML files in the archive.

matthiaskoenig commented 7 years ago

Java library with Maven dependencies available http://www.researchobject.org/specifications/ https://github.com/apache/incubator-taverna-language/tree/master/taverna-robundle Supports both RO and OMEX and also the interconversion.

Specification here https://researchobject.github.io/specifications/bundle/

matthiaskoenig commented 7 years ago

This will be implemented in combination with comp support. Otherwise all the submodels must be loaded separately (if not in one file). Comp models with multiple files should be distributed in omex or at least zip file.

Zip files will be supported, but omex or ro is recommended.

matthiaskoenig commented 7 years ago

This could be a use case for nested networks. A root network representing the archive. The nodes are the individual files in the archive, with tree representing the file structure. The individual files can than be represented via symbols/images of the respective type. Within the SBML networks one could than zoom in from the root network within the nested network.

matthiaskoenig commented 7 years ago

TODO: add logos and references for RO and COMBINE archive to documentation and manucript.

matthiaskoenig commented 7 years ago

Logos and references added. This is on hold for now due to problems in including taverna-robundle in Cytoscape. see #176

matthiaskoenig commented 7 years ago

Current discussion https://groups.google.com/forum/#!topic/cytoscape-app-dev/QpjgPR62ZK8

matthiaskoenig commented 7 years ago

Some update: Finally got the Maven dependencies running. The trick is to split up the jena-osgi bundle and than import the components while including and updating the compontents.

Instead of

<dependency>
            <groupId>org.apache.taverna.language</groupId>
            <artifactId>taverna-robundle</artifactId>
            <version>0.15.1-incubating</version>
</dependency>
<dependency>
            <groupId>org.apache.taverna.language</groupId>
            <artifactId>taverna-robundle</artifactId>
            <version>0.15.1-incubating</version>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>jcl-over-slf4j</artifactId>
                </exclusion>
                <!-- problems with newer OSGI and necessary to split in components
                     for exclusion of xerces -->
                <exclusion>
                    <groupId>org.apache.jena</groupId>
                    <artifactId>jena-osgi</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <!-- include split components -->
        <dependency>
            <groupId>org.apache.jena</groupId>
            <artifactId>jena-core</artifactId>
            <version>3.1.0</version>
            <exclusions>
                <exclusion>
                <groupId>xerces</groupId>
                <artifactId>xercesImpl</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>xerces</groupId>
            <artifactId>xercesImpl</artifactId>
            <version>2.11.0</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.jena</groupId>
            <artifactId>jena-arq</artifactId>
            <version>3.1.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.jena</groupId>
            <artifactId>jena-iri</artifactId>
            <version>3.1.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.jena</groupId>
            <artifactId>jena-tdb</artifactId>
            <version>3.1.0</version>
        </dependency>
        <!--
        Update dependencies to fix:
        https://issues.apache.org/jira/browse/JENA-1178
        -->
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.5.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient-cache</artifactId>
            <version>4.5.2</version>
        </dependency>
        <dependency>
            <groupId>com.github.jsonld-java</groupId>
            <artifactId>jsonld-java</artifactId>
            <version>0.8.3</version>
        </dependency>
matthiaskoenig commented 7 years ago

First prototype implemented. Works with Cy3.5-SNAPSHOT. Many small issues

matthiaskoenig commented 6 years ago

Probably dropping the research object, the dependencies are a nightmare and provide minimal additional functionality as long as there is no RO import/export with FAIRDOM hub. This will simplify the dependency nightmare between all the different loggers and xml libraries.

matthiaskoenig commented 6 years ago

Research object is dropped. Only going for omex with the clean Java SEMS library.