C-Farmr homepage
Bibliography
Download
Here is a .tar.gz file.
Documentation
Data preparation
Data should be loaded before running apriori. Also, settings and rmodes should be present.
- rmodes.pl contains the rmodes
- background knowledge in bg.pl
The downloadable distribution loads the mutagenesis dataset by default as an example.
Settings
Settings go into the file msettings5.pl
- key/1 predicate must be defined in datafile; ?-key(K) succeeds for every example. it determines what is being counted.
- :- dynamic theory/2 . in settings
- minfreq(N). N is minimum no of examples to be frequent
- rmode(predicate(modes...)) for each predicate;
the arguments can be - (input) or + (output) or constant (specified).
The rmode key is always - .
The rmode of other predicates is always entirely + or entirely -
with the exception of the one key argument that identifies the key type
- realmode(predicate(modes ... )).
for predicates that can loop
- optional theory :
theory(conclusion, condition) defines a background theory about the queries of interest. If no theory is defined, define theory(_,_) :- fail. to avoid sicstus errors. theory/2 influences s-free-ness
- predicates([p/a, ...]) list of all predicates p iwth arity a
- types([types ...]) list of types
- type(pred(types ...)) for all predicates
- before(X,Y). predicate X is before predicate Y where predicates of type ---- always come before predicates of ++++++++
- subsume_meth(Meth). where Meth is obj_ident or theta
specifies which subsumption setting is to be used: object identity or theta subsumption.
- delta(off). specifies that no delta-free rules should be produced. delta(Delta). specifies that delta-free rules should be produced with Delta the value of the delta-parameter.
Output
- in files f* one finds the different sets of frequent queries
- in files stream.pl one finds the tested infrequent ones.
- in files f*.closed one finds the closed rules.
Running
To run the system, first start sicstus and load the program:
sicstus -l mfarmr4
Next, run apriori from the command line:
?- apriori(Depth).
where you should replace Depth by the actual number of levels you want to mine.
After patterns have been mined, you can optionally make closed rules with
?- [closed]. % loading closed.pl
?- close_ff_upto(Depth). % compute closed rules; Depth is the number of levels
For producing statistics the scripts run and
runall can be useful.
More info/contact