Skip to content

carnival-data/carnival

Repository files navigation

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.