Giter VIP home page Giter VIP logo

neat's Introduction

kNowlEdge grAph Transformer (NEAT)

release Documentation Status Github PyPI Downloads Docker Pulls GitHub Code style: black Ruff mypy

This is python package handles transformation of domain knowledge graphs (more detailed, overarching) to app specific knowledge graphs. Documenation available at https://thisisneat.io.

Quickstart

Option 1 - Python Package

neat can be installed as a Python package, and a docker image for more robust execution and support such as graphdb for caching. This quickstart guide uses the Python package.

Option 2 - Docker container

Running NEAT as docker container : docker run -p 8000:8000 --name neat cognite/neat:latest

Runnin NEAT as docker container with local data folder mounted : docker run -p 8000:8000 --name neat -v $(shell pwd)/docker/vol_data:/app/data cognite/neat:latest

Installation (Development setup)

Prerequisites:

  1. Clone this repo: git clone [email protected]:cognitedata/neat.git
  2. Create wheel: make build-python. This will create a wheel in the dist folder.
  3. Install wheel in your preferred environment, pip install dist/neat-[NEAT_VERSTION]-py3-none-any.whl

Run Neat (Python Package)

Once installed you can run neat with the command

neat

This will open your browser and launch the neat application.

Note this will automatically create a data folder in your current working directory, which is populated with default workflows, rule sheets, and source graphs. In addition, there is a config.yaml you can add your CDF credentials to allow neat access CDF.

launch_neat

Documentation

Documentation

Docker container build process

make build-docker

Starting the application locally using GraphDB as external rdf store

Run the command :

make compose-up

The command starts NEAT container and GraphDB container and creates vol_data and vol_shared local folders that are mounted as volumes.

vol_data - is mounted only in NEAT container. It contains config.yaml, workflows, rules. You can set load_examples to true to populate it with examples.

vol_shared - is mounted to both containers and files placed here become automatically visible for GraphDB import process. Main intension is to write files from NEAT container and make them available for GraphDB for import.

Web UI

http://localhost:8000

Open API docs :

http://localhost:8000/docs

Prom metrics :

http://localhost:8000/metrics

Workflows and configurations

All configurations are divided into 2 categories :

  • global configurations - global for entire service , loaded at startup (config.yaml)
  • workflow configurations - local to workflow , loaded from workflow manifest (.yaml)

Global configurations

Global configurations loaded by the application during startup process, either from ENV variables or file.

The application tries to load the configuration as follows.

  1. Try ENV variables. This is done by checking for the ENV variable NEAT_CDF_PROJECT, and if it exists load the rest as they are listed below.
  2. Try from file. This is done by checking the ENV variable NEAT_CONFIG_PATH, which defaults to $(cwd)/config.yaml, for a path. The config file es expected to have the structure as shown below.
  3. Exit. It the ENV variable NEAT_CDF_PROJECT and the config file does not exist, the applications exists.

Env Variables

  • NEAT_CDF_PROJECT
  • NEAT_CDF_CLIENT_NAME
  • NEAT_CDF_CLIENT_ID
  • NEAT_CDF_CLIENT_SECRET
  • NEAT_CDF_BASE_URL
  • NEAT_CDF_TOKEN_URL
  • NEAT_CDF_SCOPES
  • NEAT_WORKFLOW_DOWNLOADER_FILTER - list of workflows or tags that must be loaded from CDF automatically during startup
  • NEAT_DATA_PATH - local directory for workflow and rules storage
  • NEAT_CDF_DEFAULT_DATASET_ID - default dataset id that is used for sharing workflows, rules fies and execution traces
  • NEAT_LOG_LEVEL - supported logging levels DEBUG , INFO (default)

Config file

workflows_store_type: file
data_store_path: /app/data

cdf_client:
  project: get-power-grid
  client_id: "623c2450-cfc2-43d6-9036-10e14dad8ccf"
  client_secret: "my-super-secret"
  base_url: https://az-power-no-northeurope.cognitedata.com
  scopes:
    - https://az-power-no-northeurope.cognitedata.com/.default
  token_url: https://login.microsoftonline.com/e55e1701-82f8-4c52-af10-28e4d942c589/oauth2/v2.0/token

cdf_default_dataset_id: 2626756768281823
workflow_downloader_filter:
  - tag:grid
log_level: DEBUG

Automatic workflow loading from CDF during application startup

If workflow_downloader_filter is set, the app will try to download workflows from CDF based on provided filtering conditions . Filtering format :

  • name:<workflows_name>=<workflow_version> - loading workflow by name and version or latest by name if version is not set.
  • tag:<tag_name>- loading all workflows that tagged with specific tag.

neat's People

Contributors

doctrino avatar nikokaoja avatar alivinco avatar msolvik avatar mortenmj avatar dependabot[bot] avatar renovate[bot] avatar psalaberria002 avatar voron86 avatar eighty20results avatar hgocog avatar

Stargazers

 avatar Chris Goddard avatar Hantao Cui avatar  avatar  avatar  avatar Colin McNeece avatar Gaarv avatar

Watchers

Louis Salin avatar Robert Collins avatar  avatar Ilya petin avatar Øystein Hagen Pettersen avatar  avatar Eirik L. Vullum avatar Daniel Priori avatar David Liu avatar Vibha Srinivasan avatar Robert Lombardo avatar Jacek Lakomiec avatar Alireza Kandeh avatar Per Magne Florvaag avatar QuocViet Le avatar Priyanka Perera avatar Cecilie Uppard avatar Shehan Neomal Mark Fonseka avatar  avatar

Forkers

dc-acronym

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.