> 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.
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 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.
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).
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
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.
Preamble addresses human dignity, equality, reason, conscience, and freedom from oppression. Article content does not directly address Preamble themes; no observable positive or negative signal.
ND
Article 1Freedom, Equality, Brotherhood
Article 1 addresses equal rights and dignity of all human beings. Technical article on programming languages does not address human equality or dignity.
ND
Article 2Non-Discrimination
Article 2 prohibits discrimination. Technical article contains no observable discriminatory language or exclusionary practices in content structure.
ND
Article 3Life, Liberty, Security
Article 3 protects right to life, liberty, and personal security. Not addressed in technical programming content.
ND
Article 4No Slavery
Article 4 prohibits slavery and servitude. Not applicable to technical educational content.
ND
Article 5No Torture
Article 5 prohibits torture and cruel treatment. Not addressed in technical content.
ND
Article 6Legal Personhood
Article 6 protects right to recognition as a person before the law. Not addressed in technical programming article.
ND
Article 7Equality Before Law
Article 7 guarantees equal protection and remedy against discrimination. No observable signal in technical content.
ND
Article 8Right to Remedy
Article 8 protects right to effective remedy by competent tribunals. Not addressed in programming article.
ND
Article 9No Arbitrary Detention
Article 9 prohibits arbitrary arrest and detention. Not applicable to technical content.
ND
Article 10Fair Hearing
Article 10 guarantees fair and public hearing by independent tribunal. Not addressed in technical content.
ND
Article 11Presumption of Innocence
Article 11 protects presumption of innocence and rights in criminal proceedings. Not applicable to technical programming content.
ND
Article 12Privacy
Article 12 protects privacy, family, home, and correspondence from arbitrary interference. No observable signal in technical content.
ND
Article 13Freedom of Movement
Article 13 protects freedom of movement and residence. Not addressed in technical article.
ND
Article 14Asylum
Article 14 protects right to seek asylum. Not applicable to technical programming content.
ND
Article 15Nationality
Article 15 protects right to a nationality. Not addressed in technical content.
ND
Article 16Marriage & Family
Article 16 protects rights to marry and family. Not addressed in technical article.
ND
Article 17Property
Article 17 protects right to own property. Not addressed in technical programming content.
ND
Article 18Freedom of Thought
Article 18 protects freedom of thought, conscience, and religion. Not observable in technical content.
+0.25
Article 19Freedom of Expression
Medium A: Educational sharing of technical knowledge facilitates informed discourse F: Free access to article without paywall supports information distribution
Editorial
+0.20
Structural
+0.30
SETL
-0.17
Combined
ND
Context Modifier
ND
Article 19 protects freedom of opinion and expression, and to seek, receive, and impart information. Content demonstrates mild positive signal: article is freely accessible without registration, attribution to Dr. Dobbs Journal is provided (transparency), and educational material is shared openly. No censorship or restriction observed. However, content is purely technical and not explicitly advocating for freedom of expression.
ND
Article 20Assembly & Association
Article 20 protects freedom of peaceful assembly and association. Not addressed in technical programming article.
ND
Article 21Political Participation
Article 21 protects right to participate in government and equal access to public service. Not applicable to technical content.
ND
Article 22Social Security
Article 22 protects right to social security and economic, social, and cultural rights. Not addressed in technical article.
ND
Article 23Work & Equal Pay
Article 23 protects right to work, free choice of employment, and fair working conditions. Not directly addressed in technical content; article is educational resource rather than workplace context.
ND
Article 24Rest & Leisure
Article 24 protects right to rest and leisure. Not addressed in technical programming content.
ND
Article 25Standard of Living
Article 25 protects right to adequate standard of living including food, clothing, housing, and medical care. Not applicable to technical content.
+0.30
Article 26Education
Medium A: Educational content promotes development of human faculties F: Technical knowledge is presented to enable informed learning
Editorial
+0.30
Structural
+0.30
SETL
0.00
Combined
ND
Context Modifier
ND
Article 26 protects right to education and development of human personality. Content demonstrates mild positive signal: article provides educational material on programming and software design, supporting intellectual development. Content aims to teach and develop professional competencies. However, article does not explicitly address education rights or accessibility principles.
ND
Article 27Cultural Participation
Article 27 protects right to participate in cultural life and share scientific advancement. Not directly observable in technical content.
ND
Article 28Social & International Order
Article 28 provides for social and international order to realize human rights. Not addressed in technical content.
ND
Article 29Duties to Community
Article 29 establishes duties and limitations of rights. Not addressed in technical programming article.
ND
Article 30No Destruction of Rights
Article 30 prohibits use of rights to destroy other rights. Not applicable to technical content.