harvardpl / abcdatalog Goto Github PK
View Code? Open in Web Editor NEWDatalog that's as easy as ABC.
Home Page: https://harvardpl.github.io/AbcDatalog/
License: Other
Datalog that's as easy as ABC.
Home Page: https://harvardpl.github.io/AbcDatalog/
License: Other
I tried running the "ExecutorExample" program and encountered this exception:
Exception in thread "main" java.lang.IllegalArgumentException: Predicate true is not marked as extensible.
at edu.harvard.seas.pl.abcdatalog.engine.bottomup.concurrent.ExtensibleBottomUpEvalManager.addFact(ExtensibleBottomUpEvalManager.java:182)
at edu.harvard.seas.pl.abcdatalog.engine.bottomup.concurrent.ExtensibleBottomUpEvalManager.eval(ExtensibleBottomUpEvalManager.java:123)
at edu.harvard.seas.pl.abcdatalog.executor.DatalogParallelExecutor.start(DatalogParallelExecutor.java:90)
at edu.harvard.seas.pl.abcdatalog.executor.ExecutorExample.main(ExecutorExample.java:122)
After some poking around I found there is a fact "true" that always gets added to the list of initial facts:
The example uses the DatalogParallelExecutor, which uses the ExtensibleBottomUpEvalManager.
The exception is thrown here when trying to add the "true" fact:
In the example file, the executor is initialized here:
However, there doesn't seem to be a way to add the "true" predicate here as it is private.
Thus, it seems this exception will occur whenever the DatalogParallelExecutor is used.
I have a small UI suggestion that should complement the autocompleting parentheses feature: "overtyping" closing brackets. This would allow users to type over an existing closing bracket without adding an extra bracket.
For example, when typing edge(a, b).
, one first types edge(
, which automatically creates the closing bracket, resulting in the text edge()
. Without this feature, users would have to manually move their cursor around the existing closing bracket.
This is the standard behavior in text editors such as VSCode and Sublime Text (https://stackoverflow.com/questions/75002527/how-editor-autoclosingovertype-works-in-vscode-settings).
I have a patch to implement this, and I'm happy to submit a PR. I just wanted to check whether you would welcome this change to the UI.
We should add a couple basic tests for the DatalogParallelExecutor
class (to avoid issues like #11).
First, thank you to the authors for this wonderful tool.
I think there are a lot of improvements that can be made in terms of the interface and user experience. Some little additions can bring this program a long way and make it much more convenient for students to use.
Some suggestions
Beyond these additions, there are a couple of line operations that could be very convenient (ones that I wish I had when completing assignments with the tool)
I have experience with Swing and desktop development, and I am more than willing to spearhead these changes. No changes are needed to anything but the gui directory.
Currently, tests are not run when the project is packaged because Maven does not know where to find them. The project should be restructured so that tests are in the src/test/java
directory (following Maven conventions).
We should add a GitHub Action that packages the project and runs tests when PRs are made.
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.