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
3.0.34071390e4351223b04fac0e716e6b3cff8b758ea2https://github.com/TeamSPoon/pfc.git
8dc198ded74ba7e19fcb67a0177f1900e926b0e013https://github.com/TeamSPoon/pfc.git
d64c64d096f9cfe1712d31a460e114870819e6661https://github.com/TeamSPoon/pfc.git
0ec7c68969b4c62665a2727e9ec183c2b0cf378b4https://github.com/TeamSPoon/pfc.git
b746a6443f4084ade6c4df8ae3a848ac9adafd5e25https://github.com/TeamSPoon/pfc.git
2.0.3e848c449f36c08e050d00c28e1ed6d744436e84813https://github.com/TeamSPoon/pfc.git
1a0ab438d9c91799b9852a3d7862eb4bb12821d31https://github.com/TeamSPoon/pfc.git
6bb80932ba9a61905846a3ee1abcb002afcee85a7https://github.com/TeamSPoon/pfc.git
0da4ab965f9be161d77c6247859f89c293d7babd1https://github.com/TeamSPoon/pfc.git
c922e1a77044fcda8ac36efa3214a596b3ab0f923https://github.com/TeamSPoon/pfc.git
a26290cd35d37d9c926cf5e5dd2797e019553a3d10https://github.com/TeamSPoon/pfc.git
2.0.15cf5edac2a0ae1ec9b1d9dd158de891da1b7a96a2https://github.com/TeamSPoon/pfc.git
1.5.665a556f280fb2c3331b444957e28d07704590cc1de1https://github.com/TeamSPoon/pfc.git
02c37b1b3f779ca2286137dad49f1b1eda0a18632https://github.com/TeamSPoon/pfc.git
d52f46d999171d2ebecb4c98e3762a4e110feb6c1https://github.com/TeamSPoon/pfc.git
abe649c17675abaf30fa5904a733f228d2a8cdbc1https://github.com/TeamSPoon/pfc.git
800d7f6ee381f988042df4407beeacfe0f6f5a2a2https://github.com/TeamSPoon/pfc.git
0af713fcaa540ab907198e905d365585ceafae6c1https://github.com/TeamSPoon/pfc.git
1.4.11158cca57e50b6e53b89c63abd18c95799f9477ccd1https://github.com/TeamSPoon/pfc.git
f2f1d986d3296c934f123d17936dae1ac3b0ccb75https://github.com/TeamSPoon/pfc.git
4671c2519d03bc99e9f4d118028f05649d8dd7032https://github.com/TeamSPoon/pfc.git
80524b88eebee41926e488e6c1a88fb77d3aeb9b1https://github.com/TeamSPoon/pfc.git
8316008099412cf9c98b58f7db944fedbca069f23https://github.com/TeamSPoon/pfc.git
1.3.111f13e22e0590b57119d04ca828e91fa2bdffbc1073https://github.com/TeamSPoon/pfc.git
5428f2bb46324a4adfb3d04eeeeea6d4b82a8aaa4https://github.com/TeamSPoon/pfc.git
1.2.11143346d9af287a9a23d652b857a6f3eca89f1ddd82https://github.com/TeamSPoon/pfc.git
141cd9be713204996b91ad89a81399b382d8705714https://github.com/TeamSPoon/pfc.git
1.1.11805c92da7e49c961889267dd2e27a828190e5517a1https://github.com/TeamSPoon/pfc.git
3018aa82116e7ffd332a19722c326eda6298fa461https://github.com/TeamSPoon/pfc.git
b2e69e18fc231ded24a97ed6260b59a1837fc7f61https://github.com/TeamSPoon/pfc.git
f615179dd90549624edaf477687647c5f62deed42https://github.com/TeamSPoon/pfc.git
e94d30b4abf65558e5dd0ab8139b67b4e1bc4d3d2https://github.com/TeamSPoon/pfc.git
01ea47617108b2d203143d1cf48b72ae6683fead2https://github.com/TeamSPoon/pfc.git
acc5f0240a5826d689f112e5d67e2363b0b726c41https://github.com/TeamSPoon/pfc.git
071ce2b6f73189da694da04c6459aee3e4a7b6201https://github.com/TeamSPoon/pfc.git
65a8e3776545d731cf7227cc0911381a09d21eee1https://github.com/TeamSPoon/pfc.git
0486402a2cfc21ea006b21b10f36cc7b3197329a1https://github.com/TeamSPoon/pfc.git
1edf2378abeb1b1879402f3cb30136db02f346581https://github.com/TeamSPoon/pfc.git
1e10ca045531f5bebb05bc641ad7b771514287671https://github.com/TeamSPoon/pfc.git
1252db944cc218e9b56ba7f21614eb0c9a91778c1https://github.com/TeamSPoon/pfc.git
0db388546a390753adafa2e3b95137c2169819051https://github.com/TeamSPoon/pfc.git
c9b4e5a4baf994bae4d11165303f4fcab6b306fc1https://github.com/TeamSPoon/pfc.git
5fd9adb70c76305faa0b7a80561d9eb59fcbe9701https://github.com/TeamSPoon/pfc.git
18b30cfe2192c5a5cfac9203f34dd00fe7e6a46b8https://github.com/TeamSPoon/pfc.git
26ef4e93cdef03d42135a6d5cdd0df9dfd6a71e06https://github.com/TeamSPoon/pfc.git
888f30dc0ed57cbbd8a778bcd4b901eff63419cd1https://github.com/TeamSPoon/pfc.git
bd0dd1d157da3308ca5a674c5c1205e0032f2eb91https://github.com/TeamSPoon/pfc.git
7dc00d87df058ca873d0bce319a9ba121b5b507a1https://github.com/TeamSPoon/pfc.git
d4484477c4ac4172e43cad45d069242e138922a34https://github.com/TeamSPoon/pfc.git
2d2933446d6c00e87c20652af8f8f78dc9772ec11https://github.com/TeamSPoon/pfc.git
11cc2d61c93e6a8a007af5a5f58eaadc0dc88a1e1https://github.com/TeamSPoon/pfc.git
1.1.117773f51b729e21ac310586cb37aaabf278f66acdb1https://github.com/TeamSPoon/pfc.git
192823383aebd397118833e76411611eb79179cb1https://github.com/TeamSPoon/pfc.git
1.1.115cc04c3cc61f5a9d5e60f0f322669af758fac65b71https://github.com/TeamSPoon/pfc.git
f2bd70062707e40a444b9c60e7b87308f5b2c47b1https://github.com/TeamSPoon/pfc.git
eb43667bf38c50d270d324749938ad69b056ca351https://github.com/TeamSPoon/pfc.git
df9882230b91e267d92bc4ff7840725de95892b91https://github.com/TeamSPoon/pfc.git
2f366ef1710687347b735ad98db5081b2316d02a1https://github.com/TeamSPoon/pfc.git
1.1.11308e13aa2064bd8de32ce65e60cc5b179dfce95c41https://github.com/TeamSPoon/pfc.git
1.1.112db70fff18fe098c0ae8c18045b7eb1d498de2fcc1https://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.