• Platform
  • Language
  • Docs
  • Blog
  • Get Started
  • Capture, query, and automate knowledge.

    Introducing ConceptEngine: an instant digital brain for individuals and organizations.

    Get StartedLearn More

    Features

    • Ridiculously flexible.

      It's built on nested hypergraphs, taking flexibility and expressiveness to the next level.

    • Intuitive.

      Feed it knowledge with sentence-like phrases, and query it using patterns.

    • Instant, no setup.

      Spin up new spaces in milliseconds, each with their own powerful GraphQL API.

    • Automated.

      ConceptEngine responds to patterns in your data as it changes, making inferences and integrating with external APIs.

    ConceptML

    A magically simple language for connected data.

    The Basics

    In ConceptML, we express data almost like sentences. For example:

    john-smith know javascript
    john-smith named <<John Smith>>
    javascript ProgrammingLanguage

    The “words” in these expressions are called atoms, while the expressions themselves are called compounds. Both atoms and compounds are types of concepts.

    Nesting Concepts

    In essence, concepts are just labeled lists of 0, 2, or more other concepts. In fact, we can nest compounds with one another:

    [john-smith knows javascript] since 2010
    [john-smith uses javascript] to create john-smith.net

    Expansion Syntax

    We can describe multiple relations at once. For example...

    [john-smith knows {javascript, python, c++}] since 2010

    ...is equivalent to:

    [john-smith knows javascript] since 2010
    [john-smith knows python] since 2010
    [john-smith knows c++] since 2010

    Querying data

    What if we wanted to find programmers in our knowledge space? We can send this query to ConceptEngine:

    $person {
      named $personName
      knows $topic (
        ProgrammingLanguage
        named $topicName
      )
    }

    In return, we'd get:

    $person: john-smith
    $topic: javascript
    $personName: <<John Smith>>
    $topicName: <<Javascript>>

    Automation

    Finally, let's trigger some actions whenever a person learns a new programming language:

    programmerTrigger [
      @matches [
        $person knows $topic
        $topic ProgrammingLanguage
      ]
    
      @adds [
        $person Programmer
      ]
    
      @notifies [
        <<https://api.creature.co/webhooks/new-programmer>>
      ]
    ]

    The Data Model

    When we save these expressions in ConceptEngine, we are building up a nested hypergraph—a highly connective, expressive way to represent data.

    ConceptEngine provides a GraphQL API that allows you to interact with nested hypergraphs and project them into JSON. ConceptML is how we communicate with it.

    Stay tuned for more!

    We'll be releasing playgrounds, documentation, and more examples soon.