Git Product home page Git Product logo

redisgraph's Introduction

Issue Stats Issue Stats Repository Size YaccConstructor

Platform for parser generators and other grammarware research and development. GLL, RNGLR, graph parsing algorithms, and many others are included.

Build status:

Branch .NET Mono
Master Master build status Build Status
Dev Dev build status Build Status
GLL-FSA GLL-FSA build status Build Status

Packages:

Package
YC.SDK NuGet Status
YC.SDK.Runtime NuGet Status

Develop

  • Read code style
  • We use git lfs, so install it first.
  • Get sources. We use submodules, so use git clone --recursive
  • Run build.cmd to perform initial build.
  • Use MS VS 2015 to develop. Main solution is YaccConstructor.sln. You can create your own solutions.

Maintainer(s)

redisgraph's People

Contributors

alonre24 avatar anakaiti avatar ashtul avatar chrisatredislabs avatar danitseitlin avatar davidboden avatar davisford avatar dvirdukhan avatar filipecosta90 avatar gkorland avatar gsvgit avatar hades32 avatar itamarhaber avatar jeffreylovitz avatar k-jo avatar leibale avatar matthiaswinkelmann avatar mkorkmaz avatar odanoburu avatar omrib1 avatar rafie avatar sceat avatar sel-fish avatar sfroment avatar simonprickett avatar simpletondl avatar swilly22 avatar the-alchemist avatar tompro avatar trulede avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

redisgraph's Issues

Context-free constraints in Cypher

There is a proposal for openCypher to introduce syntax for path constraints specification:

  • Root
  • Context-free constraints in the original CIP

We are working on context-free path querying for RedisGraph which uses Cypher via libsypher.

It is necessary

  • to extend libcypher to be able to use context-free (CF) constraints in Cypher
  • to extend RedisGraph translator to support CF constraints
  • introduce grammar normalization
  • integrate with our CFPQ agorithm

Path patterns refactoring

In order to open a pool request we should do the following refactoring steps:

  • Remove dev version of algebraic expression evaluation, integrate it with the original one.
  • Merge path pattern traverse operation with conditional traverse operation
  • Make updating of source matrices of a named path pattern more clear.
  • Make a path pattern and path pattern context building more clear. Delegate the processing of algebraic expressions to the calling function.
    Also, we should provide validation of the query:
  • NamedPathPredicate. Named path patterns consist of exactly one path pattern.
    Grammar:
    NamedPathPredicate = 'PATH', 'PATTERN', NamedPathName, '=', NodePattern, {(EdgePattern | PathPattern), NodePattern}, [Where]
    Supported: NamedPathPredicate = 'PATH', 'PATTERN', NamedPathName, '=', NodePattern, PathPattern, NodePattern
  • PathRepetition. Only * is supported.
    Grammar: PathRepetition = PathDirection, [('*', [RangeDetail]) | '+' | '?']
    Supported: PathRepetition = PathDirection ['*']
  • PathAny. We should implement it or add restrictions in the validation.
  • PathNode. Properties of nodes aren't supported.
    Grammar: PathNode = '(', [NodeLabels], [Properties], ')'
    Supported: PathNode = '(', ':', LabelName, ')'
  • PathGroup. Common properties of several path patterns are something strange. Maybe it is a mistake of the specification. We should check their absence.
    Grammar: PathGroup = '[', PathExpression, [Properties], ']'
    Supported: PathGroup = '[', PathExpression, ']'

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.