Giter Site home page Giter Site logo

graph's Introduction

Graph

Build Status

Graph engine prototype.

I'm trying to build a graph engine, which works on any database supported by it. I know it will be necessary to build mediators for this. So will be the next step, but before anything else, I will build features that deal with the abstract concept of it.

Some of the features that will be included:

  • Comparison graphs
  • difference
  • union
  • intersection
  • Tree decisions
  • Walk through the tree
  • versioning
  • Kicking actions performed

Are things, basic I work for the "jug" support. And be more if i can.

Installation

npm install jug

Init the graph

var wire = jug.init();

Init the graph with data

var wire = jug.init({
    interest: {
        cloth: 't-shirt',
        color: 'red',
        size: 'medium'
    }
});

Seed node

wire.seed();

Seed node with data

wire.seed({
    info: {
        cloth: 't-shirt',
        color: 'red',
        size: 'medium'
    } 
});

Access node

wire.edge( 0 );

Get distance between nodes

// first argument is 'from' object
// second argument is 'to' object
wire.proximity('interest', 'info');

Find a node

wire.find( 'info', { color: 'red' } );

Verify the level

wire.edge( 0 ).level();

Verify if the current node is the root

wire.isRoot();

Getting childs of an specified edge

wire.getChildsOf( 0 );

Getting parents of an specified level and edge

wire.getParentsFrom( 1, 0 );

Getting the length of childs of an specified edge

wire.getScopeOf( 0 );

Getting siblings of current level, excluding the index indicated

wire.getSiblingsOf( 1 );

Example

var Jug = require('jug');
var util = require('util');

var root = Jug.init();

root
    .seed()
    .seed();

root.data({
    interest: {
        genre: 'Action',
        year: 2014,
        stars: [ 'Eva Green', 'Duck Dogers' ]
    }    
});

root.edge( 0 ).data({
    info: {
        name: '300: Rise of an Empire',
        genre: 'Action',
        stars: [ 'Eva Green', 'Duck Dogers' ],
        year: 2014
    } 
});

root.edge( 1 ).data({
    info: {
        name: 'Man of Steel',
        genre: 'Action',
        stars: [ 'Henry Cavill' ],
        year: 2013
    }    
});

var distance = root.proximity('interest', 'info'); 
var close = distance.indexOf( 0 );
var nodeData = root.edge( close ).data();

console.log(
    'distance: %s\ndata: %s',
    distance.join(', '),
    util.inspect( nodeData['info'] )
);

To contribute with anithing

First of all:

git clone https://github.com/kaiquewdev/Graph

enter in the Graph directory and run:

sudo npm install

after all dependencies was solved, install the mocha:

sudo npm install -g mocha

and test:

mocha -u tdd lib/index.test.js

Yeah, read the code and contribute with ideas or coding.

Branch pattern

Feature

git checkout -b feature/name-of-the-responsability

Fix

git checkout -b fix/name-of-the-responsability

Commit pattern

* Title of the feature or fix
* 80 columns

Make a good art, with the code.

graph's People

Stargazers

 avatar Marcos Lima avatar LoLo avatar Konstantin Burykin avatar liuyanghejerry avatar Andrii Trybynenko avatar Joel Arvidsson avatar Raphael Araujo avatar Jean Carlo Nascimento avatar Lucas Pereira Brígida avatar Eak Netpanya avatar nkmry avatar Matteo Collina avatar Shashi Jain avatar anton avatar Fernando Trasviña avatar

Watchers

Arvind Gupta avatar Kaique Silva avatar James Cloos avatar

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.