Did you know ... Search Documentation:
Packs (add-ons) for SWI-Prolog

Package "pfc"

Title:Pfc -- a package for forward chaining in Prolog
Rating:Not rated. Create the first rating!
Latest version:3.0.3
SHA1 sum:d64c64d096f9cfe1712d31a460e114870819e666
Author:Douglas R. Miles <logicmoo@gmail.com>
Packager:logicmoo/LogicMoo https://github.com/logicmoo/
Home page:https://github.com/logicmoo/pfc
Download URL:https://github.com/logicmoo/pfc/releases/*.zip
Requires:dictoo
logicmoo_utils

Reviews

No reviews. Create the first review!.

Details by download location

VersionSHA1#DownloadsURL
1.1.112db70fff18fe098c0ae8c18045b7eb1d498de2fcc1https://github.com/TeamSPoon/pfc.git
1.1.11308e13aa2064bd8de32ce65e60cc5b179dfce95c41https://github.com/TeamSPoon/pfc.git
1.1.1152f366ef1710687347b735ad98db5081b2316d02a1https://github.com/TeamSPoon/pfc.git
cc04c3cc61f5a9d5e60f0f322669af758fac65b71https://github.com/TeamSPoon/pfc.git
df9882230b91e267d92bc4ff7840725de95892b91https://github.com/TeamSPoon/pfc.git
eb43667bf38c50d270d324749938ad69b056ca351https://github.com/TeamSPoon/pfc.git
f2bd70062707e40a444b9c60e7b87308f5b2c47b1https://github.com/TeamSPoon/pfc.git
1.1.117192823383aebd397118833e76411611eb79179cb1https://github.com/TeamSPoon/pfc.git
773f51b729e21ac310586cb37aaabf278f66acdb1https://github.com/TeamSPoon/pfc.git
1.1.11801ea47617108b2d203143d1cf48b72ae6683fead2https://github.com/TeamSPoon/pfc.git
0486402a2cfc21ea006b21b10f36cc7b3197329a1https://github.com/TeamSPoon/pfc.git
05c92da7e49c961889267dd2e27a828190e5517a1https://github.com/TeamSPoon/pfc.git
071ce2b6f73189da694da04c6459aee3e4a7b6201https://github.com/TeamSPoon/pfc.git
0db388546a390753adafa2e3b95137c2169819051https://github.com/TeamSPoon/pfc.git
11cc2d61c93e6a8a007af5a5f58eaadc0dc88a1e1https://github.com/TeamSPoon/pfc.git
1252db944cc218e9b56ba7f21614eb0c9a91778c1https://github.com/TeamSPoon/pfc.git
18b30cfe2192c5a5cfac9203f34dd00fe7e6a46b8https://github.com/TeamSPoon/pfc.git
1e10ca045531f5bebb05bc641ad7b771514287671https://github.com/TeamSPoon/pfc.git
1edf2378abeb1b1879402f3cb30136db02f346581https://github.com/TeamSPoon/pfc.git
26ef4e93cdef03d42135a6d5cdd0df9dfd6a71e06https://github.com/TeamSPoon/pfc.git
2d2933446d6c00e87c20652af8f8f78dc9772ec11https://github.com/TeamSPoon/pfc.git
3018aa82116e7ffd332a19722c326eda6298fa461https://github.com/TeamSPoon/pfc.git
5fd9adb70c76305faa0b7a80561d9eb59fcbe9701https://github.com/TeamSPoon/pfc.git
65a8e3776545d731cf7227cc0911381a09d21eee1https://github.com/TeamSPoon/pfc.git
7dc00d87df058ca873d0bce319a9ba121b5b507a1https://github.com/TeamSPoon/pfc.git
888f30dc0ed57cbbd8a778bcd4b901eff63419cd1https://github.com/TeamSPoon/pfc.git
acc5f0240a5826d689f112e5d67e2363b0b726c41https://github.com/TeamSPoon/pfc.git
b2e69e18fc231ded24a97ed6260b59a1837fc7f61https://github.com/TeamSPoon/pfc.git
bd0dd1d157da3308ca5a674c5c1205e0032f2eb91https://github.com/TeamSPoon/pfc.git
c9b4e5a4baf994bae4d11165303f4fcab6b306fc1https://github.com/TeamSPoon/pfc.git
d4484477c4ac4172e43cad45d069242e138922a34https://github.com/TeamSPoon/pfc.git
e94d30b4abf65558e5dd0ab8139b67b4e1bc4d3d2https://github.com/TeamSPoon/pfc.git
f615179dd90549624edaf477687647c5f62deed42https://github.com/TeamSPoon/pfc.git
1.2.111141cd9be713204996b91ad89a81399b382d8705714https://github.com/TeamSPoon/pfc.git
43346d9af287a9a23d652b857a6f3eca89f1ddd82https://github.com/TeamSPoon/pfc.git
1.3.1115428f2bb46324a4adfb3d04eeeeea6d4b82a8aaa4https://github.com/TeamSPoon/pfc.git
f13e22e0590b57119d04ca828e91fa2bdffbc1073https://github.com/TeamSPoon/pfc.git
1.4.1114671c2519d03bc99e9f4d118028f05649d8dd7032https://github.com/TeamSPoon/pfc.git
58cca57e50b6e53b89c63abd18c95799f9477ccd1https://github.com/TeamSPoon/pfc.git
80524b88eebee41926e488e6c1a88fb77d3aeb9b1https://github.com/TeamSPoon/pfc.git
8316008099412cf9c98b58f7db944fedbca069f23https://github.com/TeamSPoon/pfc.git
f2f1d986d3296c934f123d17936dae1ac3b0ccb75https://github.com/TeamSPoon/pfc.git
1.5.66502c37b1b3f779ca2286137dad49f1b1eda0a18632https://github.com/TeamSPoon/pfc.git
0af713fcaa540ab907198e905d365585ceafae6c1https://github.com/TeamSPoon/pfc.git
800d7f6ee381f988042df4407beeacfe0f6f5a2a2https://github.com/TeamSPoon/pfc.git
a556f280fb2c3331b444957e28d07704590cc1de1https://github.com/TeamSPoon/pfc.git
abe649c17675abaf30fa5904a733f228d2a8cdbc1https://github.com/TeamSPoon/pfc.git
d52f46d999171d2ebecb4c98e3762a4e110feb6c1https://github.com/TeamSPoon/pfc.git
2.0.15cf5edac2a0ae1ec9b1d9dd158de891da1b7a96a2https://github.com/TeamSPoon/pfc.git
2.0.30da4ab965f9be161d77c6247859f89c293d7babd1https://github.com/TeamSPoon/pfc.git
1a0ab438d9c91799b9852a3d7862eb4bb12821d31https://github.com/TeamSPoon/pfc.git
6bb80932ba9a61905846a3ee1abcb002afcee85a7https://github.com/TeamSPoon/pfc.git
a26290cd35d37d9c926cf5e5dd2797e019553a3d10https://github.com/TeamSPoon/pfc.git
c922e1a77044fcda8ac36efa3214a596b3ab0f923https://github.com/TeamSPoon/pfc.git
e848c449f36c08e050d00c28e1ed6d744436e84813https://github.com/TeamSPoon/pfc.git
3.0.30ec7c68969b4c62665a2727e9ec183c2b0cf378b4https://github.com/TeamSPoon/pfc.git
4071390e4351223b04fac0e716e6b3cff8b758ea2https://github.com/TeamSPoon/pfc.git
8dc198ded74ba7e19fcb67a0177f1900e926b0e013https://github.com/TeamSPoon/pfc.git
b746a6443f4084ade6c4df8ae3a848ac9adafd5e24https://github.com/TeamSPoon/pfc.git
d64c64d096f9cfe1712d31a460e114870819e6661https://github.com/TeamSPoon/pfc.git

Pfc -- forward chaining in Prolog

Installation using SWI-Prolog 7.1 or later:

`?- pack_install('https://github.com/TeamSPoon/pfc.git').`

This is a modification of Tim Finin's PFC.

Notable changes are:

  • Forward chaining => is renamed to ==> to avoid conflict with extensive downstream use of =>/2 to mean logical implication.
  • Bidirectional Forward chaining <=> renamed to <==> to avoid conflict with logical equivance <=>
  • Memoized backchain <= is renamed to <- to avoid conflict with extensive downstream use of <=/2 to mean reverse implication.. Historically '<-' had meant what is now know as ":-" being unused it was borrowed as it means "Backchaining"
  • Added Macro Transform =@=> so instead of asserting the Anteceedant to assert the Consequent @TODO - MANY MORE CHANGES TO WRITE - for now back to coding... @TODO = Added Cutted Forward Chaining =!=> as a signal to stop processing rules on first success

Original README

The Pfc system is a package that provides a forward reasoning capability to be used together with conventional Prolog programs. The Pfc inference rules are Prolog terms which are asserted as clauses into the regular Prolog database. When new facts or forward reasoning rules are added to the Prolog database (via a special predicate add/1, forward reasoning is triggered and additional facts that can be deduced via the application of the forward chaining rules are also added to the database. A simple justification-based truth-maintenance system is provided as well as simple predicates to explore the resulting proof trees.

It was originally written circa 1988 at the Unisys Paoli Research Center. For more information, see

  • Tim Finin,Rich Fritzson and Dave Matuszek, Adding Forward Chaining and Truth Maintenance to Prolog, IEEE Conf. on Artificial Intelligence Applications, pp. 123-130, Miami, March 1989.
  • Tim Finin, Pfc User Manual, Technical Report, COmputer Science and Electrical Engineering, University of Maryland, Baltimore COunty, August 1999. or contact Tim Finin, finin@umbc.edu

    If you use Pfc in your research, please cite the 1989 IEEE CAIA paper.

Some TODOs

Document this pack! Write tests Untangle the 'pack' install deps Still in progress (Moving predicates over here from logicmoo_base)

BSD 2-Clause License

Copyright (c) 2017, Douglas Miles <logicmoo@gmail.com> and TeamSPoon All rights reserved.

Not obligated to maintain a git fork just to contribute

Dislike having tons of forks that are several commits behind the main git repo?

Be old school - Please ask to be added to TeamSPoon and Contribute directly ! Still, we wont stop you from doing it the Fork+PullRequest method

Contents of pack "pfc"

Pack contains 459 files holding a total of 2.3M bytes.