Post has attachment

Post has attachment
ANN: Jekejeke Prolog 1.3.0 (Prolog dicts and functions on Prolog dicts)

Dear All,

We just uploaded a new release of Jekejeke Prolog. We realized Prolog dicts and functions on Prolog dicts. They have different aspects:

- Syntax Extensions:
We introduced a couple of syntax extensions, like postfix {} operator for Prolog dicts syntax, postfix () for zero argument syntax and infix '.' operator for functions on Prolog dicts. These extension don't change the underlying ISO core standard data model, instead they use ordinary compounds.

- Function Expansion:
It is now possible to define function expansions via a new multi-file predicate rest_expansion/2. This predicate can return a rewritten function term. Additionally it can also return sys_cond/2 which is a pair of a rewritten function term and a side condition goal to prepend.

- Prolog Dicts:
The module library(advanced/dict) can be imported and it will enable Prolog dicts syntax and also do pre-sorting through function expansion. The module library(advanced/func) can be imported and it will enable dot notation and allow functions on Prolog dicts.

We tried to implemented the Prolog dicts with the same functionality as SWI-Prolog 7 but without the drawback that the ISO core module data model is changed. This means that in our Prolog system, despite now having Prolog dicts, a list is still built via pairs based on the functor ('.')/2.

We might do some improvements to the Prolog dicts in the future. For example the pre-sorted representation is not yet compressed, and the dot-notation is not yet call-site aware and thus can only call public functions. On the other hand we already use a Pythonesk translation.

Happy coding!

Android Appstores:
https://play.google.com/store/apps/details

Download:
http://www.jekejeke.ch/…/do…/prod/en/docs/05_run/05_down.jsp
Photo

Post has attachment
Hello

I updated O-Prolog. It is ver1.26.
DCG was added. It is included in the library.
In addition to list operations,
libraries related to mathematics are included.

http://eisl.kan-be.com/library/oprolog1.html

O-Prolog Ver 1.26(yoko)
| ?- use_module(library(dcg)).
yes
| as-->[].
| as-->[a],as.
| ?- phrase(as,Ls).
Ls = [];
Ls = [a];
Ls = [a,a];
Ls = [a,a,a];
Ls = [a,a,a,a]
yes
|

| ?- use_module(library(math)).
yes
| ?- factorization(1231223,X).
X = [[7,2],[25127,1]]
yes
|

| ?- use_module(library(compiler)).
yes
| ?- compile_file('queens.pl').
pass1
pass2
compiling test16
compiling test
compiling queen
compiling queen_2
compiling qdelete
compiling tail nodiag
invoke gcc
yes
| ?- ['queens.o'].
O-Prolog
O-Prolog
eisl.kan-be.com

Post has attachment
Google noticed ILP: Learning Explanatory Rules from Noisy Data

Artificial Neural Networks are powerful function approximators capable of modelling solutions to a wide variety of problems, both supervised and unsupervised. As their size and expressivity increases, so too does the variance of the model, yielding a nearly ubiquitous overfitting problem. Although mitigated by a variety of model regularisation methods, the common cure is to seek large amounts of training data, which is not necessarily easily obtained.

In contrast, logic programming methods such as Inductive Logic Programming offer an extremely data-efficient process by which models can be trained to reason on symbolic domains. In this paper, we propose a Differentiable Inductive Logic framework, which can not only solve tasks which traditional ILP systems are suited for, but shows a robustness to noise and error in the training data which ILP cannot cope with.

https://arxiv.org/pdf/1711.04574.pdf
Photo

Post has attachment
ANN: Jekejeke Prolog 1.2.7 (hierarchical knowledge bases)

Dear All,

We just uploaded a new release of Jekejeke Prolog. We introduced hierarchical knowledge bases. They have different aspects:

- Class Loader Aspect:
Knowledge bases can now be organized in hierarchies via a parent link like this is known from Java class loaders. Each knowledge base carries class paths and stores the corresponding static predicates which can then be shared by knowledge bases down in the hierarchy.

- Thread Group Aspect:
Each knowledge base also serves as a thread group. The state of dynamic predicates is now organized as a thread group local state. In as far each knowledge base provides a data silo that protects against threads running in other knowledge bases but from the same hierarchy.

- GUI Aspect:
In the programming API the new feature is seen by a new constructor for the Java class Knowledgebase with a parent link as an argument. The Swing GUI does this now automatically and creates a new additional knowledge base for all the threads of a console window.

We did not yet implement the GUI aspect for Android. The current knowledge base stack can be inspected by the new command kbs/0. As a canary in the coalmine we have already our sales system www.jekejeke.ch which now uses a hierarchy.

Happy coding!

Android Appstores:
https://play.google.com/store/apps/details?id=jekpro.platform.headless

Download:
http://www.jekejeke.ch/idatab/doclet/prod/en/docs/05_run/05_down.jsp
Photo

Post has attachment
Hello

I updated O-Prolog today and uploaded it.
It is ver0.70. I added tail recursive optimization
to the compiler, although incomplete.
Also, I simplified the code of cut operator
and improved robustness.

kenichi sasagawa

http://eisl.kan-be.com/library/oprolog1.html
O-Prolog
O-Prolog
eisl.kan-be.com

Post has attachment
Prolog Tutorials, Videos, Books and Implementations. Enjoy!

https://www.whoishostingthis.com/resources/prolog/

In the above link you find these text tutorials:

- Introduction to Prolog: this is a very simple tutorial, but one which deals with some basic issues that other tutorials tend to gloss over.
http://www.doc.gold.ac.uk/.../prolog_tutorial/prologpages/
- Try Logic Programming! A Gentle Introduction to Prolog: this is focused on logic programming as a different programming paradigm.
https://bernardopires.com/.../try-logic-programming-a.../
- Prolog :- Tutorial: this is a detailed, example oriented introduction to the language.
http://www.cpp.edu/~jrf.../www/prolog_tutorial/contents.html
- Learn Prolog Now: this is a thorough tutorial that starts at the beginning and gets into advanced subjects.
http://learnprolognow.org/lpnpage.php?pageid=online
Photo

Post has attachment
LambdaConf 2015 - Introduction to Constraint
Logic Programming - Sergii Dymchenko
https://www.youtube.com/watch?v=84amHOgCEe8

"Constraint logic programming is a paradigm that allows solving hard combinatorial problems with minimal programming effort. In this workshop you will learn the basics of the Prolog-based constraint logic programming system ECLiPSe, solve several puzzles, and get hints how constraint logic programming can be useful in your real-life projects."

Post has attachment
Solution to the Happy New Year 2018 Prolog Challenge

Here is a solution to the Happy New Year 2018 Prolog challenge, solving the coloruid. We only bothered with representing the problem domain straight away and then doing a brute force search. We do not yet show time measures.

The problem is interesting, since it uses some manipulations which are similar to equational logic. So in the future we might look again into this problem. To represent the problem domain we numbered the regions:

The game:
https://www.crazygames.com/game/coloruid

The Prolog solution:
https://gist.github.com/jburse/c3362733ed08ee2e92db58723d529ad2#gistcomment-2334088
Photo

Post has attachment
ANN: Jekejeke Prolog 1.2.5 (better XML/new XSL binding)

Dear All,

We have just uploaded the new release of Jekejeke Prolog. We were mainly working on a new XSL binding. So whats new in this release:

- SAT Solver New card/2 Predicate:
We did not yet arrive at an improved version of our sat_count/2 predicate, that does counting without labeling. But we managed to implement a new card/2 predicate that has a quick set-up time during model building. Here is an example:

?- card(2,[X,Y,Z]).
sat((X->(Y->(Z->0;1);Z->1;0);Y->(Z->1;0);Z->0;0))

- Better XML binding:
Some improvements have arrived at our module system/xml. The API now consists of predicates that have an additional option list. In this option list "empty" or "any" complex type elements can be configured. Further number nametoken attributes are automatically recognized and stored as Java Long attribute values in a DOM model.

- New XSL binding:
There is a new module stream/xsl which provides validation and transformation. The validation is based on XSD schema files and it is possible to validated XML data files and XSL style sheets. The transformation makes use of the XPath expressions in XSL style sheets and also allows XPath variables with the syntax $<name>.

Happy coding!

Android Appstores:
https://play.google.com/store/apps/details?id=jekpro.platform.headless

Download:
http://www.jekejeke.ch/idatab/doclet/prod/en/docs/05_run/05_down.jsp
Photo
Wait while more posts are being loaded