All Projects → flekschas → owl2neo4j

flekschas / owl2neo4j

Licence: MIT License
Convert OWL to labeled property graph and import into Neo4J

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to owl2neo4j

biolink-model
Schema and generated objects for biolink data model and upper ontology
Stars: ✭ 83 (+97.62%)
Mutual labels:  neo4j, owl
semantic-web
Storing ontologies/vocabularies from the web. Wish anybody can translate some of them.
Stars: ✭ 114 (+171.43%)
Mutual labels:  owl, ontology
semanticscience
The Semanticscience Integrated Ontology (SIO) provides a simple, integrated ontology of types and relations for rich description of objects, processes and their attributes.
Stars: ✭ 52 (+23.81%)
Mutual labels:  owl, ontology
foodon
The core repository for the FOODON food ontology project. This holds the key classes of the ontology; larger files and the results of text-mining projects will be stored in other repos.
Stars: ✭ 137 (+226.19%)
Mutual labels:  owl, ontology
lsw2
OWL and Semantic Web toolkit for Common Lisp, used for construction and reasoning over ontologies and ontology-structured data
Stars: ✭ 22 (-47.62%)
Mutual labels:  owl, ontology
MAxO
Medical action ontology
Stars: ✭ 26 (-38.1%)
Mutual labels:  owl, ontology
evidenceontology
Evidence & Conclusion Ontology development site: Use ISSUES to request terms. See WIKI for how to request terms. See README for how to cite ECO. Visit our website for more project info.
Stars: ✭ 35 (-16.67%)
Mutual labels:  owl, ontology
knowledge-graph-change-language
Tools for working with KGCL
Stars: ✭ 14 (-66.67%)
Mutual labels:  owl, ontology
environmental-exposure-ontology
Modular environmental exposures ontology
Stars: ✭ 20 (-52.38%)
Mutual labels:  owl, ontology
cowl
A lightweight C/C++ library for working with Web Ontology Language (OWL) ontologies
Stars: ✭ 18 (-57.14%)
Mutual labels:  owl, ontology
pronto
A Python frontend to (Open Biomedical) Ontologies.
Stars: ✭ 202 (+380.95%)
Mutual labels:  owl, ontology
cell-ontology
An ontology of cell types
Stars: ✭ 75 (+78.57%)
Mutual labels:  owl, ontology
mondo
Mondo Disease Ontology
Stars: ✭ 156 (+271.43%)
Mutual labels:  owl, ontology
fibo
The Financial Industry Business Ontology (FIBO) defines the sets of things that are of interest in financial business applications and the ways that those things can relate to one another. In this way, FIBO can give meaning to any data (e.g., spreadsheets, relational databases, XML documents) that describe the business of finance.
Stars: ✭ 204 (+385.71%)
Mutual labels:  owl, ontology
OLGA
an Ontology SDK
Stars: ✭ 36 (-14.29%)
Mutual labels:  owl, ontology
semantic-python-overview
(subjective) overview of projects which are related both to python and semantic technologies (RDF, OWL, Reasoning, ...)
Stars: ✭ 406 (+866.67%)
Mutual labels:  owl, ontology
Scala Cypher Dsl
A type-safe Cypher Query Language DSL for Scala.
Stars: ✭ 34 (-19.05%)
Mutual labels:  neo4j, gradle
mobi
Mobi is a decentralized, federated, and distributed graph data platform for teams and communities to publish and discover data, data models, and analytics that are instantly consumable.
Stars: ✭ 41 (-2.38%)
Mutual labels:  owl, ontology
ont-api
ONT-API (OWL-API over Apache Jena)
Stars: ✭ 20 (-52.38%)
Mutual labels:  owl, ontology
obi
The Ontology for Biomedical Investigations
Stars: ✭ 49 (+16.67%)
Mutual labels:  owl, ontology

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 <String> -b <Path> [--eqp <String>] [-h]
       [-i] [-l] -n <String> -o <Path> [-p <String>] [-s <URL>] [-u
       <String>] [-v] [--version]
Import OWL into Neo4J as a labeled property graph.

 -a,--abbreviation <String>   Ontology abbreviation (E.g. go)
 -b,--batch <Path>            Path to JSON file
    --eqp <String>            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 <String>           Ontology name (E.g. Gene Ontology)
 -o,--owl <Path>              Path to OWL file
 -p,--password <String>       Neo4J user password
 -s,--server <URL>            Neo4J server root URL [Default:
                              http://localhost:7474]
 -u,--user <String>           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 ...
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].