Live data from Hacker News

The IDP Knowledge Base System

idp-z3.be

1–10 of 19 posts

Re: The IDP Knowledge Base System

#3
I read through the syntax tutorial, and based on that alone I'm guessing this thing would be a huge pain to work with. The operators `==`, and `=>` are easily confusable/typo-able, and I have to imagine the for-all operator is `!` only because someone had already decided to use `?` for there-exists, since who in their right mind would use a `!` prefix to mean anything other than boolean negation?

Re: The IDP Knowledge Base System

#5

I've read the entire landing page and I'm still not sure what IDP is or does. Which, to be fair, is a common failure pattern with many landing pages.

looks potentially interesting but a lot of it is kind of baffling, assumes a lot of familiarity with fairly esoteric topic, not clear where to start

the tutorial page https://www.idp-z3.be/tutorial.html is a bit more enlightening

as is https://interactive-idp.gitlab.io/ learning material

but I didn't find those first, I found the docs first (via the four "learn more" links on the landing page)

and I don't think they are the best starting point

https://docs.idp-z3.be/en/latest/introduction.html

> IDP-Z3 can be installed using the python package ecosystem.

> install python 3, with pip3, making sure that python3 is in the PATH.

> use git to clone https://gitlab.com/krr/IDP-Z3 to a directory on your machine

> (For Linux and MacOS) open a terminal in that directory and run the following command

First thought is... why isn't it published to PyPI?

But then elsewhere https://docs.idp-z3.be/en/latest/IDP-Z3.html

> the idp_engine package available on Pypi.

And looking in the git repo it seems like this is the same package published as https://pypi.org/project/idp-engine/

Why not just say "pip install idp-engine"...?

Re: The IDP Knowledge Base System

#6

It seems it has a lot in common with Lamport's TLA+, can someone compare?

Hi, I'm one of the main devs. TLA+ is useful to prove properties of programs. By contrast, IDP-Z3 is a reasoning engine that can be used as a module in a program. It is closer to a constraint solver, but offers more functionality than a traditional CSP solver. For example, it can compute what are relevant questions, given some inputs. This is useful to build "interactive consultants".

For example, you give IDP-Z3 the formula that links a tax-free amount, a tax rate and a tax-included amount, and the values of any two of its parameters, and it will compute the missing parameter. You do not need to write 3 different formula, one for each case. If you give him only one parameter, it will say that the other two parameters are relevant.

Re: The IDP Knowledge Base System

#7

I've read the entire landing page and I'm still not sure what IDP is or does. Which, to be fair, is a common failure pattern with many landing pages.

looks potentially interesting but a lot of it is kind of baffling, assumes a lot of familiarity with fairly esoteric topic, not clear where to start the tutorial page https://www.idp-z3.be/tutorial.html is a bit more enlightening as is https://interactive-idp.gitlab.io/ learning material but I didn't find those first, I found the docs first (via the four "learn more" links on the landing page) and I don't think they…

Thanks for the feedback. We'll see how we can improve the communication.

Quick response: with pypi, you can only install the reasoning engine. By cloning the repository, you get the full suite of tools, including the "interactive consultant".

Re: The IDP Knowledge Base System

#8
post #6

It seems it has a lot in common with Lamport's TLA+, can someone compare?

Hi, I'm one of the main devs. TLA+ is useful to prove properties of programs. By contrast, IDP-Z3 is a reasoning engine that can be used as a module in a program. It is closer to a constraint solver, but offers more functionality than a traditional CSP solver. For example, it can compute what are relevant questions, given some inputs. This is useful to build "interactive consultants". For example, you give IDP-Z3 the…

So it's layer on top of the z3-solver right? That's a way to see it?

Re: The IDP Knowledge Base System

#9
post #6

Earlier quoted context omitted.

Hi, I'm one of the main devs. TLA+ is useful to prove properties of programs. By contrast, IDP-Z3 is a reasoning engine that can be used as a module in a program. It is closer to a constraint solver, but offers more functionality than a traditional CSP solver. For example, it can compute what are relevant questions, given some inputs. This is useful to build "interactive consultants". For example, you give IDP-Z3 the…

So it's layer on top of the z3-solver right? That's a way to see it?

Yes. It uses a more convenient language than SMT-Lib to express "knowledge", and offers more functionality.

Re: The IDP Knowledge Base System

#10
I'm glad to see the design of the knowledge base language is aware of context (here called a domain). This is better than other systems, like what is used to parse / dump data from Wikipedia, where the context is basically "the real world right now". However, it doesn't seem like they wanted systems to be able to use and switch between domains easily, nor be able to backtrack (where you have inferred some knowledge, and you are trying to figure out what domain(s) you should be operating inside).

Contextual reasoning is very important for many situations, because time is one of the most important contexts. You can have a fact like "the iPhone is the best selling phone". This fact is true or false based on the context. It is definitely false in the real world year 2006 and before, because the first iPhone was not released yet. While the fact may be true right now in a global context, if we are talking about a specific country or region, it may be false. For example, I would expect that satellite-capable phones may be more popular in a highly remote (non-urban) country or region.

Post reply on HN