Carnival

Carnival: JVM Property graph data unification toolkit - Published in JOSS (2025)

https://github.com/carnival-data/carnival

Science Score: 93.0%

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

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in JOSS metadata
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

data-engineering framework graph graphs groovy jvm knowledge-graph neo4j ontology property-graph property-graphs tinkerpop

Scientific Fields

Engineering Computer Science - 40% confidence
Last synced: 4 months ago · JSON representation

Repository

JVM property graph data unification framework

Basic Info
Statistics
  • Stars: 8
  • Watchers: 5
  • Forks: 2
  • Open Issues: 33
  • Releases: 7
Topics
data-engineering framework graph graphs groovy jvm knowledge-graph neo4j ontology property-graph property-graphs tinkerpop
Created over 6 years ago · Last pushed 5 months ago
Metadata Files
Readme Contributing License

README.md

License: GPL v3 Carnival CI Coverage Status Maven Central

Carnival

Carnival Carnival is an open source JVM data unification framework that allows for a large variety of extract, transform, and load (ETL), integration, and analysis tasks related to relational data and property graphs. Some key functionality includes a graph model specification, the aggregation of data from disparate sources into a unified property graph, and tools to reason over and interact with graph data using bounded operations.

External Resources

Overview

Carnival has three principal components: a graph modeling architecture, a caching facility for aggregating data from disparate data sources, and a framework for implementing graph algorithms. The graph modeling architecture is a layer over Java enumerations and Tinkerpop that allow a graph to be modeled and consumed by Tinkerpop traversal steps. The caching facility supports the aggregation and caching of data from relational database and JSON API sources. The graph algorithm framework provides a structured way to define and execute algorithms that operate over the property graph.

Packages

Core Packages

Name | Description --- | --- carnival-core | Basic Carnival framework. Implements the basic Carnival framework classes (vines, carnival modeling framework, carnival graph algorithm framework, etc). Defines the core carnival graph model. This model defines key carnival concepts such as processes, databases, and namespaces. carnival-vine | Framework for data adaptors called vines which faciliate loading and aggregation of source data. Implements data caching facilities. carnival-graph | Framework for defining carnival graph schemas (vertex and edge definitions). Contains the basic vertex, edge, and property classes. carnival-util | Standalone package that contains utility and helper classes such as data tables, reports, and SQL utilties, which are primarily used for dealing with relational data. carnival-gradle | Gradle plugin for building Carnival applications and libraries.

Contribution Guide

Carnival is an open source project and welcomes contributions! Please see the Contribution Guide for ways to contribute.

Owner

  • Name: Carnival
  • Login: carnival-data
  • Kind: organization

JOSS Publication

Carnival: JVM Property graph data unification toolkit
Published
April 23, 2025
Volume 10, Issue 108, Page 5117
Authors
David Birtwell ORCID
USC Norris Cancer Center, USA
Heather Williams ORCID
University of Pennsylvania, Institute for Biomedical Informatics
Tom Hutchinson ORCID
University of Pennsylvania, Institute for Biomedical Informatics
Louis Lee ORCID
USC Norris Cancer Center, USA
Hayden Freedman
University of California Irvine, Department of Informatics
Christian Stoeckert ORCID
University of Pennsylvania, Institute for Biomedical Informatics
Editor
Mark A. Jensen ORCID
Tags
Tinkerpop property graph graph model etl data cache

GitHub Events

Total
  • Create event: 1
  • Release event: 1
  • Issues event: 2
  • Issue comment event: 1
  • Push event: 13
Last Year
  • Create event: 1
  • Release event: 1
  • Issues event: 2
  • Issue comment event: 1
  • Push event: 13

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 117
  • Total pull requests: 13
  • Average time to close issues: 3 months
  • Average time to close pull requests: about 2 months
  • Total issue authors: 6
  • Total pull request authors: 6
  • Average comments per issue: 1.14
  • Average comments per pull request: 0.69
  • Merged pull requests: 10
  • Bot issues: 0
  • Bot pull requests: 1
Past Year
  • Issues: 3
  • Pull requests: 0
  • Average time to close issues: 22 days
  • Average time to close pull requests: N/A
  • Issue authors: 2
  • Pull request authors: 0
  • Average comments per issue: 0.33
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • augustearth (85)
  • hjwilli (15)
  • KonradHoeffner (6)
  • th5 (6)
  • kinow (4)
  • greenguy33 (1)
Pull Request Authors
  • augustearth (6)
  • greenguy33 (2)
  • hjwilli (2)
  • dependabot[bot] (1)
  • cstoeckert (1)
  • th5 (1)
Top Labels
Issue Labels
joss (10) bug (5) question (1)
Pull Request Labels
dependencies (1) documentation (1)

Dependencies

app/build.gradle maven
  • ch.qos.logback:logback-classic 1.2.3 implementation
  • com.opencsv:opencsv 5.6 implementation
  • commons-io:commons-io 2.11.0 implementation
  • org.apache.tinkerpop:gremlin-core ${gremlinVersion} implementation
  • org.apache.tinkerpop:gremlin-groovy ${gremlinVersion} implementation
  • org.apache.tinkerpop:neo4j-gremlin ${gremlinVersion} implementation
  • org.apache.tinkerpop:tinkergraph-gremlin ${gremlinVersion} implementation
  • org.codehaus.groovy:groovy-all ${groovyVersion} implementation
  • org.neo4j.driver:neo4j-java-driver ${neo4JavaDriverVersion} implementation
  • org.neo4j:neo4j-bolt ${neo4JavaDriverVersion} implementation
  • org.neo4j:neo4j-community ${neo4JavaDriverVersion} implementation
  • org.neo4j:neo4j-tinkerpop-api-impl ${neo4jTinkerpopVersion} implementation
  • org.neo4j:parent ${neo4JavaDriverVersion} implementation
  • org.slf4j:slf4j-api 1.7.30 implementation
  • org.yaml:snakeyaml 1.3 implementation
  • org.spockframework:spock-core 2.0-M4-groovy-3.0 testImplementation
app/carnival-core/build.gradle maven
  • cglib:cglib-nodep 3.3.0 implementation
  • com.fasterxml.jackson.core:jackson-annotations 2.11.3 implementation
  • com.fasterxml.jackson.core:jackson-core 2.11.3 implementation
  • com.fasterxml.jackson.core:jackson-databind 2.11.3 implementation
  • com.h2database:h2 1.4.200 implementation
  • com.microsoft.sqlserver:mssql-jdbc 8.4.1.jre8 implementation
  • commons-collections:commons-collections 3.2.2 implementation
  • io.github.http-builder-ng:http-builder-ng-core 1.0.4 implementation
  • mysql:mysql-connector-java 5.1.49 implementation
  • org.apache.commons:commons-math3 3.6.1 implementation
  • org.codehaus.groovy.modules.http-builder:http-builder 0.7.1 implementation
  • org.eclipse.rdf4j:rdf4j-model 3.4.3 implementation
  • org.eclipse.rdf4j:rdf4j-repository-manager 3.4.3 implementation
  • org.grails:grails-datastore-gorm-hibernate5 7.0.3.RELEASE implementation
  • org.postgresql:postgresql 42.2.17 implementation
  • org.reflections:reflections 0.9.11 implementation
.github/workflows/carnival_ci.yml actions
  • JamesIves/github-pages-deploy-action 3.7.1 composite
  • actions/checkout v2 composite
Dockerfile docker
  • gradle 7.4-jdk11 build
docker-compose-doc.yml docker
docker-compose-publish-github.yml docker
docker-compose-publish-maven.yml docker
docker-compose-test.yml docker
docker-compose.yml docker
docs/groovy/docker-compose.yml docker
  • groovy 3.0.9-jdk11
app/carnival-gradle/build.gradle maven
app/carnival-graph/build.gradle maven
app/carnival-util/build.gradle maven
app/carnival-vine/build.gradle maven
  • com.fasterxml.jackson.core:jackson-annotations 2.13.3 implementation
  • com.fasterxml.jackson.core:jackson-core 2.13.3 implementation
  • com.fasterxml.jackson.core:jackson-databind 2.13.3 implementation
  • org.apache.commons:commons-parent 53 implementation