owl2neo4j

Convert OWL to labeled property graph and import into Neo4J

https://github.com/flekschas/owl2neo4j

Science Score: 18.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.8%) to scientific vocabulary

Keywords

gradle import java neo4j ontology owl
Last synced: 4 months ago · JSON representation ·

Repository

Convert OWL to labeled property graph and import into Neo4J

Basic Info
  • Host: GitHub
  • Owner: flekschas
  • License: mit
  • Language: Java
  • Default Branch: master
  • Size: 30.3 MB
Statistics
  • Stars: 49
  • Watchers: 5
  • Forks: 10
  • Open Issues: 0
  • Releases: 0
Topics
gradle import java neo4j ontology owl
Created over 10 years ago · Last pushed over 4 years ago
Metadata Files
Readme Changelog License Citation

README.md

OWL 2 Neo4J Build Status

Convert OWL schema ontologies to labeled property graph and import into Neo4J.

Note: currently the tool only converts the class hierarchy; instances are ignored for now.

Build

Each release comes with a precompiled JAR, created automatically by Travis-CI. To build the JAR file manually follow the three steps below. The JAR file will be created in dist.

Requirements:

git clone https://github.com/flekschas/owl2neo4j && cd owl2neo4j gradle build

Import ontology

Requirements:

A single file import is executed as follows:

java -jar ./dist/owl2neo4j.jar -o ./pizza.owl -n "Pizza Ontology" -a pizza

(To get pizza.owl run curl -O https://protege.stanford.edu/ontologies/pizza/pizza.owl.)

In order to import multiple ontologies at once create a JSON file:

{ "server": "http://my-server:7474", "ontologies": [ { "o": "./chebi.owl", "n": "Chemical Entities of Biological Interest", "a": "CHEBI" }, { "o": "./cl.owl", "n": "Cell Ontology", "a": "CL", "i": true }, { "o": "./efo.owl", "n": "Experimental Factor Ontology", "a": "EFO" } ] }

a, i, n and o correspond to the CLI options. The only difference is that n, i.e. the path to the OWL file to be imported, should be relative to the JSON file. server is optional; when it's not defined, the default server url, i.e. http://127.0.0.1:7474, is used. Next you can import the everything with the following call:

$ java -jar ./dist/owl2neo4j.jar -b ./import.json

(Assuming that the file above is ./import.json.)

Command line options:

``` usage: java -jar owl2neo4j.jar -a -b [--eqp ] [-h] [-i] [-l] -n -o [-p ] [-s ] [-u ] [-v] [--version] Import OWL into Neo4J as a labeled property graph.

-a,--abbreviation Ontology abbreviation (E.g. go) -b,--batch Path to JSON file --eqp Existential quantification property (E.g. http://www.co-ode.org/ontologies/pizza/pizza .owl#hasTopping) -h,--help Shows this help -i,--incl-imports Include import closure -l,--no-local Don't scan for locally available OWL files to ensure loading remote files. -n,--name Ontology name (E.g. Gene Ontology) -o,--owl Path to OWL file -p,--password Neo4J user password -s,--server Neo4J server root URL [Default: http://localhost:7474] -u,--user Neo4J user name -v,--verbosity Verbose output --version Show version ```

For detailed instructions and help regarding the different options please refer to the wiki.

Importing large ontologies:

By default the OWLAPI XML loader has a 64,000 triple limit. To increase the limit and being able to import larger ontologies start owl2neo4j.jar with DentityExpansionLimit=<LARGE_NUMBER> flag like so:

java -jar -DentityExpansionLimit=1000000 ./dist/owl2neo4j.jar -o ./extra-large-pizza.owl -n "Extra Large Pizza Ontology" -a elpo

Be sure that you have enough RAM to theoretical load 1000000 (or any other number), otherwise your system will complain.

Handshake error:

In case you see a handshake error of this form Remote host closed connection during handshake add the following parameter when calling java:

java -jar -Dhttps.protocols=TLSv1.1,TLSv1.2 ...

Owner

  • Name: Fritz Lekschas
  • Login: flekschas
  • Kind: user
  • Location: Somerville, MA

Computer scientist researching visualization systems for large-scale exploration of biomedical data. Harvard CS PhD '21.

Citation (CITATION.bib)

@article{lekschas2017satori,
  author = {Fritz Lekschas and Nils Gehlenborg},
  title = {SATORI: A System for Ontology-Guided Visual Exploration of Biomedical Data Repositories},
  journal = {Bioinformatics},
  year = {2017},
  month = {11},
  day = {23},
  volume = {34},
  number = {7},
  pages = {1200-1207},
  doi = {10.1093/bioinformatics/btx739},
}

GitHub Events

Total
  • Watch event: 3
Last Year
  • Watch event: 3

Issues and Pull Requests

Last synced: 8 months ago

All Time
  • Total issues: 2
  • Total pull requests: 0
  • Average time to close issues: 7 months
  • Average time to close pull requests: N/A
  • Total issue authors: 2
  • Total pull request authors: 0
  • Average comments per issue: 6.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • narjesHN (1)
  • colingoldberg (1)
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels

Dependencies

build.gradle maven
  • com.hermit-reasoner:org.semanticweb.hermit 1.3.8.4 compile
  • com.mashape.unirest:unirest-java 1.4.7 compile
  • commons-cli:commons-cli 1.3 compile
  • commons-codec:commons-codec 1.10 compile
  • commons-io:commons-io 2.4 compile
  • net.sourceforge.owlapi:owlapi-api 3.5.6 compile
  • org.apache.commons:commons-lang3 3.4 compile
  • org.glassfish:javax.json 1.0.4 compile
  • org.json:json 20140107 compile