GithubHelp home page GithubHelp logo

thi-ng / fabric Goto Github PK

View Code? Open in Web Editor NEW
155.0 155.0 6.0 2.81 MB

Signal/Collect inspired compute graph infrastructure for Clojure & Clojurescript

Home Page: http://thi.ng/fabric

License: Apache License 2.0

Shell 100.00%

fabric's People

Contributors

postspectacular avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fabric's Issues

add support for index groups (enable sharding)

Currently all facts are centrally indexed by the graph's N index vertices (e.g. subject, predicate, object). Not scalable.

Ideas/tasks:

  • add index group vertex/entity (set of N index vertices), each providing filter range (or rather predicate fn) of acceptable fact IDs and acts as facade to actual index vertices
  • redistribution/re-indexing when adding/removing/failing index groups
  • refactor fact vertex adding/removing

query subscriptions via WS/SSE

Users might want to subscribe to registered queries so that when result set is changing, a notification is pushed automatically via WS/SSE.

Ideas/tasks:

  • add new vertex type (SubscriptionVertex), where each vertex manages its own subscribers
  • add new handler to register/unregister subscriptions

[Question] Is it possible to attach a unique label to a vertex

Hi,
Thanks for this library. It looks really interesting and powerful.

I am looking at the spreadsheet example and trying to understand the vertex collection functions. By the looks of it, (f/signal-map v) returns a map of type {<id> value ...}, where <id> is the vertex number in the graph.

Is it possible to change that <id> into something user specified, so that the end user can reason about which value is associated with which node without trying to look it up in the graph.

I hope this makes sense.

cheers

visual query editor

Non-tech users would benefit from a graphical web UI to define queries by "drawing" out the graph patterns and qvars to be matched. The s-expr DSL is also well suited to be built up incrementally (e.g. via dropdowns and then filling in or visually linking placeholders to qvars/literals)

Ideas/tasks:

  • update results w/ each edit for direct feedback loop
  • display results as graph (super-imposed) or table
  • use thi.ng.geom.physics for graph layout

Prior art:

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.