This directory contains the text for Soufflé docs site, www.souffle-lang.org.
To test locally: bundle exec jekyll serve --watch
(requires ruby
with jekyll
and webrick
gems).
Soufflé
This directory contains the text for Soufflé docs site, www.souffle-lang.org.
To test locally: bundle exec jekyll serve --watch
(requires ruby
with jekyll
and webrick
gems).
The doc points to a dead link,.
Doop is here
https://github.com/KnowSciEng/doop
The rule description does not cover the semantics of the type system. Instead, it should explain how information (via variables) flows from the positive literals in the body to the head.
When using .input directive to input data from files with hexadecimal numbers, its interpreted incorrectly. For eg. 0x34 is interpreted as 0.
Please do the required changes.
Thanks!
URL: https://souffle-lang.github.io/aggregates#the-witness-problem
The second sample has a problem, it has no "Witness Problem Error".
.decl family(name:symbol, age:number)
.decl youngest(name:symbol, age:number)
family("Alissa", 10).
family("Maria", 46).
family("Mark", 50).
youngest(p, n) :- n = min x : family(p, x).
Souffle version info:
----------------------------------------------------------------------------
Version: 2.3-179-g8aae5218d
Word size: 32 bits
Options enabled: ffi ncurses sqlite zlib
----------------------------------------------------------------------------
Copyright (c) 2016-22 The Souffle Developers.
Copyright (c) 2013-16 Oracle and/or its affiliates.
All rights reserved.
============================================================================
I was trying to check the solution of the exercise in tutorial/first example/transitive closure, but pressing the "solution" button doesn't show the solution? The solutions for other exercises can show normally.
I was following the "A simple example" article from the docs website (file: simple.md) and spend some time figuring out why the example wasn't working locally for me. The reason was that I was using spaces in the input file (I even copied the example by my editor overrides tabs :) ). I was wondering whether adding in the article the detail that the input file should be "tab-separated" would be useful to other new people reading the docs.
Edit:
With "wasn't working" I mean I was getting an error "Error loading data: Values missing in line 1; cannot parse fact file edge.facts!" which at that point didn't make sense to me, but now it does because I know that the parser probably looks for a tab separator.
I think @b-scholz copy pasted @azreika's article to post this one: https://souffle-lang.github.io/news/2017/11/17/ds/
They both have the same title, and this post isn't really related to inlining....
Perhaps a better title would be "Additional Data Structures in Souffle"?
The grammar for choice-domain
looks like this:
<relation-declaration> ::= ".decl" <relation-name> "(" <attributes> ")" <choice-domain>
<choice-domain> ::= "" | "choice-domain" (<constraint>)+
<constraint> ::= <attribute> | "(" <attributes> ")"
The <attributes>
non-terminal is not defined, but if we assume from context that it's what fits between the parentheses in a .decl
, it should have the form <variable>: <type>, ...
. But that isn't true:
.decl foo(x: number, y: number) choice-domain (x: number, y: number)
$ souffle --version
Souffle: 2.0.2-987-gbcb2a08e5(32bit Domains)
Copyright (c) 2016-19 The Souffle Developers.
Copyright (c) 2013-16 Oracle and/or its affiliates.
$ souffle test.dl
Error: syntax error, unexpected :, expecting ) or "," in file test.dl at line 1
.decl foo(x: number, y: number) choice-domain (x: number, y: number)
------------------------------------------------^--------------------
1 errors generated, evaluation aborted
Instead, two different non-terminals are needed, one for <relation-declaration>
and one for <constraint>
, where the latter just includes variable names but the former includes their types.
After run the installation command for macOS "brew install --HEAD souffle-lang/souffle/souffle" in shell, I got the following message and the installation failed. Hope this issue can be solved. Thanks.
"Last 15 lines from /Users/xxx/Library/Logs/Homebrew/souffle/03.cmake:
In file included from /tmp/souffle-20240312-75627-c8k06y/src/interpreter/Index.h:18:
In file included from /tmp/souffle-20240312-75627-c8k06y/src/interpreter/Util.h:19:
/tmp/souffle-20240312-75627-c8k06y/src/include/souffle/RamTypes.h:83:5: error: static_assert failed due to requirement 'sizeof(int) == sizeof(double)' "Can't bit cast types with different size."
static_assert(sizeof(To) == sizeof(From), "Can't bit cast types with different size.");
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~
2 errors generated.
make[2]: *** [src/CMakeFiles/libsouffle.dir/MainDriver.cpp.o] Error 1
[ 84%] Linking CXX executable souffleprof
[ 84%] Built target souffleprof
[ 85%] Linking CXX executable test_brie
[ 85%] Built target test_brie
4 errors generated.
make[2]: *** [src/CMakeFiles/libsouffle.dir/interpreter/Engine.cpp.o] Error 1
make[1]: *** [src/CMakeFiles/libsouffle.dir/all] Error 2
make: *** [all] Error 2
If reporting this issue please do so at (not Homebrew/brew or Homebrew/homebrew-core):
https://github.com/souffle-lang/homebrew-souffle/issues
These open issues may also help:
Build of Souffle 2.3 fails on macOS 12.6 souffle-lang/homebrew-souffle#10
Build of Souffle 2.1 fails on macOS 11.5.2 souffle-lang/homebrew-souffle#7
souffle's formula was built from an unstable upstream --HEAD.
This build failure is expected behaviour.
Do not create issues about this on Homebrew's GitHub repositories.
Any opened issues will be immediately closed without response.
Do not ask for help from Homebrew or its maintainers on social media.
You may ask for help in Homebrew's discussions but are unlikely to receive a response.
Try to figure out the problem yourself and submit a fix as a pull request.
We will review it but may or may not accept it."
I'm using Ubuntu 20.04 and I installed soufflé by following commands.
curl -s https://packagecloud.io/install/repositories/souffle-lang/souffle/script.deb.sh | sudo bash
sudo apt install souffle
I found souffle
, souffle-compile
and souffleprof
, obviously souffle-profile
has changed to souffleprof
.
Recommend to update the doc, just 4 search results in this repo 😄. found many usage in ./pages/docs/*.md
The tuning section is not described so well. It should explain the .plan statement better. Also, the rule description does not give the precise semantics for the .plan statement, i.e., what is the version number and what is the rule number.
Hello, I tried to follow the installation instructions from here.
Though I can run the script without any error messages, I cannot install souffle afterwards:
sudo curl -s https://packagecloud.io/install/repositories/souffle-lang/souffle/script.deb.sh | sudo bash
[sudo] Password for lukas: #I translated this line from German
Detected operating system as Ubuntu/focal.
Checking for curl...
Detected curl...
Checking for gpg...
Detected gpg...
Running apt-get update... done.
Installing apt-transport-https... done.
Installing /etc/apt/sources.list.d/souffle-lang_souffle.list...done.
Importing packagecloud gpg key... done.
Running apt-get update... done.
The repository is setup! You can now install packages.
lukas@lukas-XX-XXXX:~/PycharmProjects/test-bed$ sudo apt-get install souffle
Reading package lists...Done #I translated this line from German
Building dependency tree. #I translated this line from German
Reading status information...Done #I translated this line from German
E: Cannot find package souffle. #I translated this line from German
curl --version
gives me:
curl 7.68.0 (x86_64-pc-linux-gnu) libcurl/7.68.0 OpenSSL/1.1.1f zlib/1.2.11 brotli/1.0.7 libidn2/2.2.0 libpsl/0.21.0 (+libidn2/2.2.0) libssh/0.9.3/openssl/zlib nghttp2/1.40.0 librtmp/2.3
Release-Date: 2020-01-08
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: AsynchDNS brotli GSS-API HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM NTLM_WB PSL SPNEGO SSL TLS-SRP UnixSockets
Visiting https://souffle-lang.org/ results in a certificate error. It appears that the certificate being used is for *.github.com
, and does not include souffle-lang.org
in the CN or SAN fields.
This is especially bad because Google has indexed the Souffle documentation using HTTPS URIs, so clicking on documentation links from Google search results leads to an error message like the one shown below:
Explain the notion of binding variables for rules.
When is a variable grounded, i.e., a variable must occur at least once in a positive predicate in the body of the rule.
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.