fsvieira / zebradb-core Goto Github PK
View Code? Open in Web Editor NEWSymbolic Computation Query System
Home Page: http://fsvieira.github.io/zebradb-core/
Symbolic Computation Query System
Home Page: http://fsvieira.github.io/zebradb-core/
There is already a npm package but there is a lot of garbage published, they is the need to select files to be published.
Also we need to add instructions on readme file on how to install zebrajs using npm.
Zebradb-core has an database api alike, but currently stores everything on memory.
We need a storage engine to make data persistent, like other databases this should be plugged to zebradb-core like a plugin or something. We should be able to have different storage solutions to different context like browser (localstorage), node filesystem storage ... and so on.
Put history information on wki, documentation or issues and remove it.
Currently zebrajs works using a pipeline, data flows to states that process data and send it to other state, we need to organize this transitions states into folders and clean up the code to be as simple as possible.
Currently there are some tests with infinite data, they stop because the zebradb-core allows to put a limit on branch depth creation.
For example natural numbers are infinite, one of the definitions can be (nat 0) (nat (nat 'x)) witch are
infinite, the idea is to make an finite representation something like (nat (nat 'x=[0 | (nat 'x)]).
Send more money is one of the tests that doesn't work yet.
The reason to not work is not incorrect definitions, because with a different planner zebradb-core is able to solve it reasonable fast.
There is two problems, one is resource consumption, where zebradb-core creates to many branches that
will growth exponential and consumes time and memory, the other problem is the way zebradb-core is working right now it makes it difficult to make a good general planner.
So the plan is a part of zebradb-core to extract variable domains, or partial variable domains and apply a kind of constrain satisfaction algorithm.
Update documentation and make a wiki.
Add a Linter to the project with a good guideline rules file.
Update all documentation including latex documentation, now that almost everything is defined.
Every project needs a website, I think its time to get one.
There is already a test with cyclic definitions currently not active until a way to handle them is decided.
The normal way to handle cyclic definitions is not allowing cyclic definitions by ignoring them or just by throwing an error.
I would prefer to make it as a feature, and treat them as equivalent definitions.
For example x = 0 or x = 0 + 0, they are the same but not exactly equal to zebradb-core.
This is obviously a simple example, I came across cyclic definitions when I was trying to define propositional logical rules, I got cyclic definitions because a variable could be two things, but logically speaking it was correct, they work as reduction rules.
Improve readme file, make it more clear and minimal.
Making kanban an independent project will help to keep the code more clean, and maybe be useful to other projects, that would help to improve it.
Multi-threading support using web-workers or threads, we should get a lib that works on node and browser.
Currently zebradb-core almost everything is prepared for multi-threading on the processing side, data is already serialize able and branches are isolated from other branches, so there should be a big deal to make the processing of multiple branches on different threads.
The conversion of results to strings prints misleading variable names, has it keeps the original variable names, this must be changed to output original variable name and an id, has different variables can have the same name but they can't have the same id.
Also the printed string is using @ to mark checked tuples, this should not be used for negations on any tuple or inner-tuples, because negation are successfully (and marked with !) when a negated query fails and therefor all its inner-tuples don't need to be checked, this will also solve the problem of tests with different outputs when planner changes.
Currently output can be transformed using a crippled JavaScript, but there is the need for a better transformation language, with the following features:
Other features like recursive functions and basic arithmetic operations are a plus but not a priority.
Remove transformation language from the project, make it a external lib to process zebradb output.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.