HackerTrans
TopNewTrendsCommentsPastAskShowJobs

triska

no profile record

Submissions

Kb – Prolog Knowledge Base

github.com
109 points·by triska·14 dni temu·18 comments

Conway's Game of Life in Prolog

manzikert.ca
2 points·by triska·w zeszłym miesiącu·0 comments

A local-first multimodal knowledge platform for managing entities

github.com
2 points·by triska·2 miesiące temu·0 comments

From Taxman to VATmiraal: Fifty Years of Teaching Machines the Law

vatmiraal.be
1 points·by triska·2 miesiące temu·1 comments

Prolog Implementation of the IRS Fact Graph

github.com
5 points·by triska·3 miesiące temu·0 comments

Tax Logic Evaluation with Prolog

github.com
2 points·by triska·3 miesiące temu·0 comments

A simple online forum written in Prolog

github.com
2 points·by triska·3 miesiące temu·0 comments

Forth VM and compiler written in C++ and Scryer Prolog

github.com
37 points·by triska·3 miesiące temu·0 comments

A high-performance bridge between Scryer Prolog and Python

github.com
2 points·by triska·4 miesiące temu·0 comments

Simple Maturin Based Python Bindings to Scryer Prolog

github.com
1 points·by triska·4 miesiące temu·0 comments

A lightweight, embeddable Prolog interpreter written in C11

github.com
4 points·by triska·4 miesiące temu·0 comments

Blue Prince Clock Tower (CLP(Z), Scryer)

web.liminal.cafe
3 points·by triska·5 miesięcy temu·0 comments

Pokemon Draft Tools in Prolog

github.com
4 points·by triska·6 miesięcy temu·0 comments

Flowlog: An ISO-style Prolog system with faster search on multicore CPUs

web.liminal.cafe
3 points·by triska·6 miesięcy temu·0 comments

A simple graph database implementation running on Scryer Prolog

github.com
2 points·by triska·7 miesięcy temu·0 comments

Dogalog: A realtime Prolog-based livecoding music environment

github.com
82 points·by triska·7 miesięcy temu·21 comments

Towards an Implementation-Independent Interface for Semantic Web in Prolog [pdf]

github.com
2 points·by triska·7 miesięcy temu·0 comments

Transforming legal texts into computational logic

sciencedirect.com
3 points·by triska·8 miesięcy temu·0 comments

Scryer Prolog library for Datomic: https://github.com/jjtolton/scrytomic

2 points·by triska·8 miesięcy temu·0 comments

Python Integration for Scryer Prolog Using FFI (Research Project)

github.com
2 points·by triska·8 miesięcy temu·0 comments

comments

triska
·2 miesiące temu·discuss
I think this is very well phrased, and I would argue the same holds for Prolog too.

In my opinion, a key difference between Prolog and other languages in that regard is one of degree, not kind: Compared to other languages, addressing performance problems in Prolog engines tends to have far greater effects on Prolog programs, because so much is implicit (i.e., left to the engine).

If the performance problem is not in the engine, but in the program itself, then we will face the same questions with Prolog as with other languages: How to formulate the program better, is there a better approach altogether?

For example, earlier today an interesting question regarding performance was posted in the Scryer discussions:

https://github.com/mthom/scryer-prolog/discussions/3341

The comparison in this case is between Gecode and Scryer on a seemingly simple but nontrivial combinatorial task. What is the problem here? Most likely the Scryer engine itself can be improved. And also very likely, there are better ways to model the task, and also better search strategies, and these tend to have far greater performance impact than the base language, and these questions remain also if we change the base language.

In my opinion, these questions regarding different kinds of formulations tend to be more frequently associated with Prolog than with other languages because Prolog is more frequently used for complex tasks where it is not a priori clear how to even approach the problem.
triska
·2 miesiące temu·discuss
How is this different from other programming languages though?

One example I often think about is from Ken Silverman: "sub eax, 128" → "add eax, -128". So equivalent ways to write the same program may have different performance characteristics also depending on the tools that are applied. How many people could tell without trying which way to write this example is preferable?

The same phenomenon will be encountered in all kinds of languages, where engine and compiler improvements make existing code faster or slower.
triska
·2 miesiące temu·discuss
Regarding distributed systems, I find Torbjörn Lager's recent work on Web Prolog particularly interesting. He recently posted about it here:

https://github.com/mthom/scryer-prolog/discussions/3322

and also in the course of a discussion on various approaches to implement concurrency in Prolog:

https://github.com/mthom/scryer-prolog/discussions/3307
triska
·2 miesiące temu·discuss
Very nice!

In the Scryer Prolog discussions, Alex has shared a few ideas and considerations for possible improvements to the Prolog code, including the use of metaprogramming to automatically generate more general relations:

https://github.com/mthom/scryer-prolog/discussions/3221

I hope for an interesting followup article!

Another very interesting Prolog program by Alex is factgraph.pl:

https://github.com/alexpetros/factgraph.pl

It's a Prolog implementation of the IRS Fact Graph, an application of Law as Code.
triska
·4 miesiące temu·discuss
Quoting from the Charter of Fundamental Rights of the European Union, https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:12... :

"Article 7

Respect for private and family life

Everyone has the right to respect for his or her private and family life, home and communications.

Article 8

Protection of personal data

1. Everyone has the right to the protection of personal data concerning him or her.

2. Such data must be processed fairly for specified purposes and on the basis of the consent of the person concerned or some other legitimate basis laid down by law. Everyone has the right of access to data which has been collected concerning him or her, and the right to have it rectified.

3. Compliance with these rules shall be subject to control by an independent authority."