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:1.1.118
SHA1 sum:f615179dd90549624edaf477687647c5f62deed4
Author:Douglas R. Miles <logicmoo@gmail.com>
Packager:TeamSPoon/LogicMoo https://github.com/TeamSPoon/
Home page:https://github.com/TeamSPoon/pfc
Download URL:https://github.com/TeamSPoon/pfc/releases/*.zip
Requires:each_call_cleanup
file_scope
hook_hybrid
logicmoo_utils
loop_check
must_trace
no_repeats
s_expression
with_thread_local
xlisting

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
1252db944cc218e9b56ba7f21614eb0c9a91778c1https://github.com/TeamSPoon/pfc.git
18b30cfe2192c5a5cfac9203f34dd00fe7e6a46b3https://github.com/TeamSPoon/pfc.git
1e10ca045531f5bebb05bc641ad7b771514287671https://github.com/TeamSPoon/pfc.git
1edf2378abeb1b1879402f3cb30136db02f346581https://github.com/TeamSPoon/pfc.git
3018aa82116e7ffd332a19722c326eda6298fa461https://github.com/TeamSPoon/pfc.git
5fd9adb70c76305faa0b7a80561d9eb59fcbe9701https://github.com/TeamSPoon/pfc.git
65a8e3776545d731cf7227cc0911381a09d21eee1https://github.com/TeamSPoon/pfc.git
acc5f0240a5826d689f112e5d67e2363b0b726c41https://github.com/TeamSPoon/pfc.git
b2e69e18fc231ded24a97ed6260b59a1837fc7f61https://github.com/TeamSPoon/pfc.git
c9b4e5a4baf994bae4d11165303f4fcab6b306fc1https://github.com/TeamSPoon/pfc.git
e94d30b4abf65558e5dd0ab8139b67b4e1bc4d3d2https://github.com/TeamSPoon/pfc.git
f615179dd90549624edaf477687647c5f62deed42https://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 387 files holding a total of 1.9M bytes.