Skip to content
Grakn Core: The Knowledge Graph
Java Starlark Python Batchfile Gherkin Ruby
Branch: master
Clone or download

Latest commit

jmsfltchr Overwrite `cassandra-embedded.yaml` file when starting the server to …
…avoid an error is the file already exists (#5725)

## What is the goal of this PR?

When running tests it has been possible for the GarknTestServer to end up in an unclean state and to fail to start. We believe this is from failing to supply `spawn_strategy=local` when running tests.

## What are the changes implemented in this PR?

- Overwrite `cassandra-embedded.yaml` file when starting the server to avoid an error if this file already exists
Latest commit fa65dc1 May 21, 2020

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci Fixed CircleCI yaml indentation May 5, 2020
.github Update PULL_REQUEST_TEMPLATE.md Jan 19, 2020
bin Extracted //console and //bin to separate repos (#5416) Sep 10, 2019
common Deletes accept statements instead of variables (#5690) Apr 28, 2020
concept revert VALUE_TYPE to DATA_TYPE in a few places to preserve DB compati… May 11, 2020
config Checkstyle: update copyright header to 2020 (#5610) Mar 1, 2020
core revert VALUE_TYPE to DATA_TYPE in a few places to preserve DB compati… May 11, 2020
daemon remove all usage and references to old benchmark (#5686) Apr 14, 2020
dependencies Deletion - fix ordering bug (#5714) May 12, 2020
graph Checkstyle: update copyright header to 2020 (#5610) Mar 1, 2020
graql Deletion - fix ordering bug (#5714) May 12, 2020
kb Deletion - fix ordering bug (#5714) May 12, 2020
keyspace Checkstyle: update copyright header to 2020 (#5610) Mar 1, 2020
mapreduce Removed left over usage of the term 'DataType' (#5704) Apr 27, 2020
server revert VALUE_TYPE to DATA_TYPE in a few places to preserve DB compati… May 11, 2020
test-integration/graql/reasoner/stubs Fix issue with too eager subgoal propagation for queries with negation ( May 11, 2020
test Overwrite `cassandra-embedded.yaml` file when starting the server to … May 21, 2020
.bazelignore Update from 2018 to 2019 in license headers (#5360) Aug 9, 2019
.bazelrc Upgrade Bazel to 3.0.0 (#5684) Apr 13, 2020
.bazelversion Upgrade Bazel to 3.0.0 (#5684) Apr 13, 2020
.gitignore Split Grakn Interface Mega-package (#5534) Dec 10, 2019
BUILD Checkstyle: update copyright header to 2020 (#5610) Mar 1, 2020
LICENSE License Update and Config Cleanups (#2919) Aug 3, 2018
README.md Checkstyle: update copyright header to 2020 (#5610) Mar 1, 2020
RELEASE_TEMPLATE.md Update RELEASE_TEMPLATE.md May 21, 2019
VERSION Update VERSION Apr 15, 2020
WORKSPACE remove all usage and references to old benchmark (#5686) Apr 14, 2020
deployment.properties Checkstyle: update copyright header to 2020 (#5610) Mar 1, 2020

README.md

GRAKN.AI


CircleCI GitHub release Slack Status Discussion Forum Stack Overflow Stack Overflow

Building intelligent systems starts at the database. Grakn is an intelligent database: a knowledge graph engine to organise complex networks of data and make it queryable.

Get Started Documentation Discussion
Whether you are new to coding or an experienced developer, it’s easy to learn and use Grakn. Get set up quickly with quickstart tutorial. Documentation for Grakn’s development library and Graql language API, along with tutorials and guides, are available online. Visit our documentation portal. When you’re stuck on a problem, collaborating helps. Ask your question on StackOverflow or discuss it on our Discussion Forum.

Meet Grakn and Graql

Grakn is an intelligent database: a knowledge graph engine to organise complex networks of data and making it queryable, by performing knowledge engineering. Rooted in Knowledge Representation and Automated Reasoning, Grakn provides the knowledge foundation for cognitive and intelligent (e.g. AI) systems, by providing an intelligent language for modelling, transactions and analytics. Being a distributed database, Grakn is designed to scale over a network of computers through partitioning and replication.

Under the hood, Grakn has built an expressive knowledge representation system based on hypergraph theory (a subfield in mathematics that generalises an edge to be a set of vertices) with a transactional query interface, Graql. Graql is Grakn’s reasoning (through OLTP) and analytics (through OLAP) declarative query language.

Knowledge Schema

Grakn provides an enhanced entity-relationship schema to model complex datasets. The schema allows users to model type hierarchies, hyper-entities, hyper-relationships and rules. The schema can be updated and extended at any time in the database lifecycle. Hyper-entities are entities with multiple instances of a given attribute, and hyper-relationships are nested relationships, cardinality-restricted relationships, or relationships between any number of entities. This enables the creation of complex knowledge models that can evolve flexibly.

Logical Inference

Grakn’s query language performs logical inference through deductive reasoning of entity types and relationships, to infer implicit facts, associations and conclusions in real-time, during runtime of OLTP queries. The inference is performed through entity and relationship type reasoning, as well as rule-based reasoning. This allows the discovery of facts that would otherwise be too hard to find, the abstraction of complex relationships into its simpler conclusion, as well as translation of higher level queries into the lower level and more complex data representation.

Distributed Analytics

Grakn’s query language performs distributed Pregel and MapReduce (BSP) algorithms abstracted as OLAP queries. These types of queries usually require custom development of distributed algorithms for every use case. However, Grakn creates an abstraction of these distributed algorithms and incorporates them as part of the language API. This enables large scale computation of BSP algorithms through a declarative language without the need of implementing the algorithms.

Higher-Level Language

With the expressivity of the schema, inference through OLTP and distributed algorithms through OLAP, Grakn provides strong abstraction over low-level data constructs and complicated relationships through its query language. The language provides a higher-level schema, OLTP, and OLAP query language, that makes working with complex data a lot easier. When developers can achieve more by writing less code, productivity rate increases by orders of magnitude.

Download and Running Grakn Core

To run Grakn Core (which you can download from the Download Centre or GitHub Releases), you need to have Java 8 (OpenJDK or Oracle Java) installed.

You can visit the Setup Guide to help your installation.

Compiling Grakn Core from Source

Note: You don't need to compile Grakn Core from source if you just want to use Grakn. See the "Download and Running Grakn Core" section above.

  1. Make sure you have the following dependencies installed on your machine:
    • Java 8
    • Python >= 2.7 and Pip >= 18.1
    • Bazel
  2. Depending on your Operating System, you can build Grakn with either one of the following commands:
$ bazel build //:assemble-linux-targz

Outputs to: bazel-bin/grakn-core-all-linux.tar.gz

$ bazel build //:assemble-mac-zip

Outputs to: bazel-bin/grakn-core-all-mac.zip

$ bazel build //:assemble-windows-zip

Outputs to: bazel-bin/grakn-core-all-windows.zip

Contributions

Grakn Core is built using various state-of-the-art open-source Graph and Distributed Computing frameworks: ANTLR, Apache Cassandra, Apache Hadoop, Apache Spark, Apache TinkerPop, Bazel, GRPC and JanusGraph. Thank you!

Licensing

This product includes software developed by Grakn Labs Ltd. It's released under the GNU Affero GENERAL PUBLIC LICENSE, Version 3, 29 June 2007. For license information, please see LICENSE. Grakn Labs Ltd also provides a commercial license for Grakn Enterprise KGMS - get in touch with our team at enterprise@grakn.ai.

Copyright (C) 2020 Grakn Labs

You can’t perform that action at this time.