frequent_pattern_mining_protocols

This library provides support entities for frequent itemset mining algorithms. Transactional datasets are represented as objects implementing the transaction_dataset_protocol protocol. The generic pattern_miner_protocol protocol and the pattern_miner_common category used by concrete miners are loaded from the pattern_mining_protocols core library.

The frequent_pattern_mining_common category builds on that generic core with frequent-itemset-specific helpers for dataset validation, support accumulation, and itemset ordering/filtering.

This library also provides reusable transaction smoke-test datasets and a small smoke-test suite.

API documentation

Open the ../../apis/library_index.html#frequent_pattern_mining_protocols link in a web browser.

Loading

To load all entities in this library, load the loader.lgt file:

| ?- logtalk_load(frequent_pattern_mining_protocols(loader)).

Testing

To run the library smoke tests, load the tester.lgt file:

| ?- logtalk_load(frequent_pattern_mining_protocols(tester)).

Test datasets

Several sample transaction datasets are included in the test_datasets directory:

  • market_basket_basics.lgt: A compact transaction dataset with 6 transactions and 5 items intended for frequent-itemset smoke tests.

  • layered_baskets.lgt: A transaction dataset with overlapping co-occurrence layers intended for support-count and candidate-pruning tests.

  • deep_intersection_baskets.lgt: A compact transaction dataset with one frequent length-4 itemset and multiple overlapping length-3 itemsets intended to stress deeper vertical tidset intersections.

The directory also includes invalid fixtures useful for validation and error-handling tests:

  • invalid_undeclared_item_baskets.lgt: Uses an item not listed in the declared item domain.

  • invalid_unsorted_transaction_baskets.lgt: Uses a transaction whose items are not in canonical sorted order.

  • invalid_duplicate_item_baskets.lgt: Uses a transaction with a duplicate item.

  • invalid_empty_baskets.lgt: Declares an item domain but no transactions.

  • invalid_item_domain_baskets.lgt: Declares a non-canonical item domain with duplicate items.