I started using Prolog in my self written home automation system over 20 years ago. At first I was using CORBA and I linked ACE/Tao into SWI-Prolog so that Prolog could catch and send CORBA messages. That worked for years but was too annoying to add new message types since a wrapper had to be written for each, plus threading had to be coordinated between C++ and Prolog. Eventually I ditched the CORBA stuff and switched to MQTT, but instead of binding the C++ and Prolog together I found and extended MQTT support for Prolog directly, actually I've mostly replaced the C++ parts of my HA system with Java. The Prolog is pretty nice the way I can now specify predicates for MQTT topic paths, and I use shared topics for scalability. Now all of this is running deployed in k3s.
> We recently installed Gateway multi-media kits on our PCs, but found the installation less than trivial because of conflicts in our interrupt (IRQ) channels. A simple expert system could have helped to resolve those IRQ conflicts. ... The sample program is set up to allow installation of two different devices, a 'Sound Blaster' and a 'Mitsumi CD- ROM'.
This was a real blast from the past. I wonder why more systems today don't have this kind of logic solving built in. Possibly, too many complex behaviours that are not cleanly quantified.
Pepperidge Farm remembers when reasoning systems could actually reason, instead of backing out the part of the context they're told is erroneous, appending "Wait..." and then continuing to predict tokens as before.
I often wonder what a Prolog implemented as an Objective-C like extension to C would look like. Since WAM has proper stack and heap IIRC, it might be possible to plug that in through some region-based memory management on C side. Is there some prior art like this?
I ported from Pascal to C a Lisp interpreter system that had an embedded Prolog in it (that used Lisp syntax) (and wrote a new memory subsystem) in my spare time in College. Later I helped a grad student a little bit with their implementation of a Warren machine (runtime for a Prolog compiler) for it. That’s the only embedded Prolog I’m aware of.
FWIW (not much), around the time of that article, I reversed this: I used Arity Prolog for a morphological parsing program, with C calls for the bit fiddling (because I needed 64 bits, and the Prolog I was using only handled 16 bit strings).
Things have moved on since 1994, not only can you still embed it in C and a load of other languages, you can even run it directly in your browser as there's a WASM port.
There's another updated version of that prolog here along with some links, including an archived article from Microsoft Research on how it was (once upon a time) used in Windows NT network configuration:
https://github.com/opless/small-prolog
sprior|5 days ago
justinhj|5 days ago
vintagedave|7 days ago
This was a real blast from the past. I wonder why more systems today don't have this kind of logic solving built in. Possibly, too many complex behaviours that are not cleanly quantified.
bitwize|4 days ago
krzyk|5 days ago
I see three stories already.
Davidbrcz|5 days ago
rramadass|5 days ago
In case you weren't aware, people are using Prolog with LLMs;
https://news.ycombinator.com/item?id=42039527
https://news.ycombinator.com/item?id=45712934
dgxyz|5 days ago
Antibabelic|5 days ago
ofrzeta|5 days ago
HexDecOctBin|5 days ago
NetMageSCW|5 days ago
mcswell|5 days ago
juancn|4 days ago
https://web.archive.org/web/20030218034509/http://www.resear...
crustycoder|5 days ago
https://www.swi-prolog.org/pldoc/man?section=wasm-version
buescher|5 days ago
umairnadeem123|5 days ago
[deleted]
dirtytoken7|5 days ago
[deleted]
mcswell|5 days ago
Disclaimer: I'm no expert on LLMs.