odoyle-rules
asami
odoyle-rules | asami | |
---|---|---|
10 | 5 | |
517 | 304 | |
- | - | |
6.2 | 3.0 | |
7 months ago | 27 days ago | |
Clojure | Clojure | |
The Unlicense | Eclipse Public License 1.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
odoyle-rules
-
Use of Posh for frontend development?
If you're going down this route I'd second the recommendation for O'Doyle Rules. (Haven't used it since I switched away from SPAs altogether, but when I was investigating stuff in that space, O'Doyle appeared to be taking the "correct approach" from what I could tell.)
-
[Blog] The Web Before Teatime
That's what this tiny library does https://github.com/oakes/odoyle-rules
- [ANN] odoyle-rules 1.0.0
-
Ideas for DataScript 2
Reactive updates is the big one, in my opinion. DataScript is a triumph and arguably is the reason why so many note-taking tools (Roam, Athens, Logseq, etc) are written in Clojure. But there are so many cases where it would be nice to react when some set of entities is changed.
I think what we need is to figure out how to combine DataScript with a rules engine. I'm wrote a rules engine and made a writeup that compares the two together: "Using O'Doyle Rules as a poor man's DataScript" https://github.com/oakes/odoyle-rules/blob/master/bench-src/...
Subscribing to individual entities is nice but with a rules engine you have so much more fine-grained control over your reactions. And with the RETE algorithm this can be done efficiently. Most libraries in this space just ignore it and make their own ad-hoc solution -- an informally-specified, bug-ridden, slow implementation of half of a rules engine.
- UIs Are Streaming Dags
-
Datalog for HTTP APIs
Odoyle-rules lets you write rules (forwards chaining) engine that you can run on client and server. There are a couple ways you can twist that idea to achieve a more unified system.
-
Next Web
I suspect it'd be too much of a mismatch to be useful, but i haven't thought about it enough. I think a more promising idea is to try implementing a database with o'doyle. I wrote about my first attempt here: Using O'Doyle Rules as a poor man's DataScript Right now it would be too inefficient for large data sets because it has to constantly rebuild its index but i think with some small changes i could improve that and basically turn o'doyle into a tool for creating databases that come with reactivity for free.
-
O'Doyle Rules - a Clojure rules engine for the best of us
No doubt there's a runtime cost in joining the facts together, so naturally a system that lumps facts together into records (like clara) will have to do fewer joins, and should be faster. I figured out that i could at least deduplicate my joins with derived facts as i explained here, which ended up being a really big perf boost. But there's still a tradeoff, and one where almost everyone should favor flexibility, i think.
asami
-
datahike for reagent SPA?
Consider using Asami which also has time travel on the ClojureScript side: https://github.com/quoll/asami
-
Hacker News top posts: Nov 18, 2022
Asami: A flexible graph store in Clojure\ (0 comments)
- Asami: A flexible graph store in Clojure
-
Ideas for DataScript 2
The "Optimized B-Trees" section I _think_ is suggesting to get rid of datoms, which I 100% agree with. I do not think they add anything at all; IME you can have a collection of all attributes indexed by entity ID and then have additional indexes on top of that collection.
My stupid question is: why even bother with B-Trees? I believe asami[0] stores everything in memory using Clojure maps & sets.
[0] https://github.com/quoll/asami
-
Does anyone have experience with ALM/PLM tools (Application/Product Lifecycle Management)?
Personally, I make use of Aristotle to build the Danish WordNet based on standard schemas, while I use Asami for a different project at work where I don't have the need for a shared vocabulary.
What are some alternatives?
pararules - A Nim rules engine
cozo - A transactional, relational-graph-vector database that uses Datalog for query. The hippocampus for AI!
paranim_examples
tuple-database
posh - A luxuriously simple and powerful way to make front-ends with DataScript and Reagent in Clojure.
ai-cli - Get answers for CLI commands from ChatGPT right from your terminal
spork - Spoon's Operations Research Kit
abcl - Armed Bear Common Lisp <git+https://github.com/armedbear/abcl/> <--> <svn+https://abcl.org/svn> Bridge
missionary - A functional effect and streaming system for Clojure/Script
pathom - Pathom is a Clojure(script) engine for processing EQL requests.
relic - Functional relational programming for Clojure(Script).
owoof - A program for querying and modifying information in a datalog-like format backed by SQLite.