nikodemus / screamer

Screamer is an extension of Common Lisp that adds support for nondeterministic programming.
http://nikodemus.github.io/screamer/
Other
227 stars 29 forks source link

screamer with screamer+, robotic and construction projects #27

Open wpasieka opened 2 years ago

wpasieka commented 2 years ago

I suggest adding Screamer+ to this repo, from for example github/danlentz/screamer-plus. Next we could create a library specific for robotic and construction projects.

There is practically no literature about it.

1) This is a big project, but a proprietary one: https://doczz.net/doc/7257969/house-designer

2) Here is a nice of example of a construction wall (NP-hard problems) part in the article: https://chriskohlhepp.wordpress.com/reasoning-systems/specification-driven-programming-in-common-lisp/

I am trying to contact C. Kohlhepp, but he stopped updating the website some time ago. There is no referral to the original source, which could be much bigger.

Does anybody now , where this "wall" code is coming from?


The examples in the Screamer package are general ones only - but we could create some real stuff. The existing robotics-construction examples of using Screamer could be added to this repo.

This would be a starting point to take all benefits of Screamer and Screamer+.


swapneils commented 1 year ago

Per #16 I believe Screamer+ is being avoided due to the author not responding to nikodemus re: relicensing; the original license at the top of screamer+.lisp is too restrictive to reasonably follow.

I suppose we might be able to implement some features (like object-based values and constraints) ourselves? It would pretty clearly be inspired by the screamer+ code, though, so I'm not sure whether that counts as copyright infringement.

The links you provide are quite interesting, however, and definitely could be added as practical examples of Screamer's usefulness. They also suggest some other directions for development; for instance, presumably one could write a way to save a set of rules as data to share across screamer calls, for easier integration with the type of domain-modeling done in house-designer.