MCPcopy Index your code
hub / github.com/SciGraph/SciGraph

github.com/SciGraph/SciGraph @Release-1.5

Chat with this repo
repository ↗ · DeepWiki ↗ · release Release-1.5 ↗ · + Follow
1,854 symbols 6,160 edges 287 files 166 documented · 9% updated 18mo agoRelease-1.5 · 2016-11-14★ 24283 open issues

Browse by type

Functions 1,578 Types & classes 276
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

SciGraph

Build Status Coverage Status Stories in Ready

Represent ontologies and ontology-encoded knowledge in a Neo4j graph.

Motivation

SciGraph aims to represent ontologies and data described using ontologies as a Neo4j graph. SciGraph reads ontologies with owlapi and ingests ontology formats available to owlapi (OWL, RDF, OBO, TTL, etc). Have a look at how SciGraph translates some simple ontologies.

Goals: * OWL 2 Support * Provide a simple, usable, Neo4j representation * Efficient, parallel ontology ingestion * Provide basic "vocabulary" support * Stay domain agnostic

Non-goals: * Create ontologies based on the graph * Reasoning support

What's Included?

SciGraph can be used in a number of ways. After the graph is generated it could be used in an application with no SciGraph dependency.

It could be used in an application with the scigraph-core dependency which adds some convenience methods and includes "vocabulary" support. "Vocabulary" support resolves labels to graph nodes, auto-complete functionality, OpenRefine resolution services, and CURIE to IRI resolution. Additional support for identifying these vocabulary entities in free text can be found in the scigraph-entity module.

SciGraph can also be used as a stand-alone Dropwizard web service (via scigraph-services). SciGraph services support adding custom Cypher queries during application configuration to keep the code base domain agnostic.

Note that SciGraph is "OWL-centric". If you have, for example, and arbitrary SKOS ontology that doesn't assert skos:Concept as an owl:Class these skos:Concepts will not be visible to the owlapi and not loaded in the resulting Neo4j graph.

Alternatives

Applications

  • the Monarch Initiative uses SciGraph for both ontologies and biological data modeling
  • SciCrunch uses SciGraph for vocabulary and annotation services
  • CINERGI uses SciGraph for vocabulary and annotation services
  • the Human Brain project uses SciGraph for vocabulary and annotation services

Additional Documentation

Getting Started

A Vagrant box is included if you don't want to modify your localhost (you'll also need VirtualBox). You can launch a provisioned box like this and then follow the steps below:

curl https://raw.githubusercontent.com/SciGraph/SciGraph/master/src/test/resources/vagrant/Vagrantfile -o Vagrantfile
vagrant up
vagrant ssh

Note that because Neo4j is using memory mapped IO the database cannot be stored in a Vagrant shared directory

If you're not using the vagrant box make sure you have git, maven, and java available. Java should be version 7 or better.

Clone and compile the project:

git clone https://github.com/SciGraph/SciGraph; cd SciGraph; mvn -DskipTests -DskipITs install

Build the graph:

cd SciGraph-core
mvn exec:java -Dexec.mainClass="io.scigraph.owlapi.loader.BatchOwlLoader" -Dexec.args="-c src/test/resources/pizzaExample.yaml"

Run the services:

cd ../SciGraph-services
mvn exec:java -Dexec.mainClass="io.scigraph.services.MainApplication" -Dexec.args="server src/test/resources/pizzaConfiguration.yaml"

Check out some of the REST endpoints (the Vagrant box has port 9000 mapped so you can use your host browser to check these out):

Also browse the generated REST documentation to see some of the other resources.


Thanks to YourKit for providing an Open Source license.

YourKit supports open source projects with its full-featured Java Profiler.YourKit, LLC is the creator of YourKit Java Profiler and YourKit .NET Profiler, innovative and intelligent tools for profiling Java and .NET applications.

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Method 1,338
Class 264
Function 240
Interface 12

Languages

Java87%
TypeScript13%

Modules by API surface

SciGraph-services/src/main/resources/swagger/lib/jquery-1.8.0.min.js60 symbols
SciGraph-core/src/test/java/io/scigraph/vocabulary/VocabularyNeo4jImplTest.java44 symbols
SciGraph-entity/src/main/java/io/scigraph/annotation/EntityFormatConfiguration.java41 symbols
SciGraph-services/src/main/resources/swagger/lib/shred.bundle.js40 symbols
SciGraph-core/src/main/java/io/scigraph/owlapi/loader/OwlLoadConfiguration.java37 symbols
SciGraph-core/src/test/java/io/scigraph/owlapi/GraphOwlVisitorTestBase.java36 symbols
SciGraph-core/src/test/java/io/scigraph/neo4j/GraphTestBase.java33 symbols
SciGraph-core/src/main/java/io/scigraph/vocabulary/Vocabulary.java28 symbols
SciGraph-services/src/main/resources/swagger/lib/swagger-client.js27 symbols
SciGraph-services/src/main/resources/swagger/lib/highlight.7.3.pack.js23 symbols
SciGraph-services/src/main/java/io/scigraph/services/refine/ServiceMetadata.java21 symbols
SciGraph-core/src/test/java/io/scigraph/neo4j/GraphUtilTest.java21 symbols

For agents

$ claude mcp add SciGraph \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page