{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/learning-big-logical-rules-by-joining-small","title":"Learning big logical rules by joining small rules","arxiv_id":"2401.16215","date":"2024-01-29","proceeding":null,"authors":["Céline Hocquette","Andreas Niskanen","Rolf Morel","Matti Järvisalo","Andrew Cropper"],"abstract":"A major challenge in inductive logic programming is learning big rules. To address this challenge, we introduce an approach where we join small rules to learn big rules. We implement our approach in a constraint-driven system and use constraint solvers to efficiently join rules. Our experiments on many domains, including game playing and drug design, show that our approach can (i) learn rules with more than 100 literals, and (ii) drastically outperform existing approaches in terms of predictive accuracies.","url_abs":"https://arxiv.org/abs/2401.16215v1","url_pdf":"https://arxiv.org/pdf/2401.16215v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"learning-big-logical-rules-by-joining-small","repo_url":"https://github.com/celinehocquette/ijcai24-joiner","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok"}}],"tasks":[{"task_slug":"drug-design","task_name":"Drug Design"},{"task_slug":"inductive-logic-programming","task_name":"Inductive logic programming"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2401.16215","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2401.16215"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/celinehocquette/ijcai24-joiner","reach":{"status":"ok"}}],"summary":{"ran":13,"unverified":4},"by_repo_kind":{"official":{"samples":17,"ran":13,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":17,"samples":[{"code_sha256_prefix":"47d20265bdd28060","entry":"anytime_maxsat_solve","repo":"celinehocquette/ijcai24-joiner","repo_kind":"official","path":"joiner/popper/maxsat.py","file_url":"https://github.com/celinehocquette/ijcai24-joiner/blob/HEAD/joiner/popper/maxsat.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"47d20265bdd28060"}},{"code_sha256_prefix":"73dace4ea6fdd27a","entry":"connected","repo":"celinehocquette/ijcai24-joiner","repo_kind":"official","path":"joiner/popper/bkcons.py","file_url":"https://github.com/celinehocquette/ijcai24-joiner/blob/HEAD/joiner/popper/bkcons.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"73dace4ea6fdd27a"}},{"code_sha256_prefix":"5987bedd63b8b6ae","entry":"generate_binary_strings","repo":"celinehocquette/ijcai24-joiner","repo_kind":"official","path":"joiner/popper/tester.py","file_url":"https://github.com/celinehocquette/ijcai24-joiner/blob/HEAD/joiner/popper/tester.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"5987bedd63b8b6ae"}},{"code_sha256_prefix":"cb0157ebd2d31531","entry":"get_prog_hash","repo":"celinehocquette/ijcai24-joiner","repo_kind":"official","path":"joiner/popper/specialiser_ms.py","file_url":"https://github.com/celinehocquette/ijcai24-joiner/blob/HEAD/joiner/popper/specialiser_ms.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"cb0157ebd2d31531"}},{"code_sha256_prefix":"3b7a257af2da5644","entry":"get_raw_prog","repo":"celinehocquette/ijcai24-joiner","repo_kind":"official","path":"joiner/popper/explain.py","file_url":"https://github.com/celinehocquette/ijcai24-joiner/blob/HEAD/joiner/popper/explain.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"3b7a257af2da5644"}},{"code_sha256_prefix":"e98d3a560d2de563","entry":"get_rule_hash","repo":"celinehocquette/ijcai24-joiner","repo_kind":"official","path":"joiner/popper/combine.py","file_url":"https://github.com/celinehocquette/ijcai24-joiner/blob/HEAD/joiner/popper/combine.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e98d3a560d2de563"}},{"code_sha256_prefix":"afb7b4f11952b250","entry":"get_rule_hash","repo":"celinehocquette/ijcai24-joiner","repo_kind":"official","path":"joiner/popper/combine_ms.py","file_url":"https://github.com/celinehocquette/ijcai24-joiner/blob/HEAD/joiner/popper/combine_ms.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"afb7b4f11952b250"}},{"code_sha256_prefix":"602159b0b120f776","entry":"lit_is_true","repo":"celinehocquette/ijcai24-joiner","repo_kind":"official","path":"joiner/popper/specialiser_ms.py","file_url":"https://github.com/celinehocquette/ijcai24-joiner/blob/HEAD/joiner/popper/specialiser_ms.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"602159b0b120f776"}},{"code_sha256_prefix":"57c48bcb82175cdb","entry":"load_kbpath","repo":"celinehocquette/ijcai24-joiner","repo_kind":"official","path":"joiner/popper/util.py","file_url":"https://github.com/celinehocquette/ijcai24-joiner/blob/HEAD/joiner/popper/util.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"57c48bcb82175cdb"}},{"code_sha256_prefix":"b069752a8647832a","entry":"rename_variables","repo":"celinehocquette/ijcai24-joiner","repo_kind":"official","path":"joiner/popper/explain.py","file_url":"https://github.com/celinehocquette/ijcai24-joiner/blob/HEAD/joiner/popper/explain.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"b069752a8647832a"}},{"code_sha256_prefix":"10793ecbdcfe2e56","entry":"rule_hash","repo":"celinehocquette/ijcai24-joiner","repo_kind":"official","path":"joiner/popper/explain.py","file_url":"https://github.com/celinehocquette/ijcai24-joiner/blob/HEAD/joiner/popper/explain.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"10793ecbdcfe2e56"}},{"code_sha256_prefix":"829094d074a416ac","entry":"timeout","repo":"celinehocquette/ijcai24-joiner","repo_kind":"official","path":"joiner/popper/util.py","file_url":"https://github.com/celinehocquette/ijcai24-joiner/blob/HEAD/joiner/popper/util.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"829094d074a416ac"}},{"code_sha256_prefix":"0a8b887de0aca751","entry":"uses_in_order","repo":"celinehocquette/ijcai24-joiner","repo_kind":"official","path":"joiner/popper/bkcons.py","file_url":"https://github.com/celinehocquette/ijcai24-joiner/blob/HEAD/joiner/popper/bkcons.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"0a8b887de0aca751"}},{"code_sha256_prefix":"608967d0ef7cc9c4","entry":"explain_incomplete","repo":"celinehocquette/ijcai24-joiner","repo_kind":"official","path":"joiner/popper/loop.py","file_url":"https://github.com/celinehocquette/ijcai24-joiner/blob/HEAD/joiner/popper/loop.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"608967d0ef7cc9c4"}},{"code_sha256_prefix":"c7919aea9aec45cd","entry":"find_all_vars","repo":"celinehocquette/ijcai24-joiner","repo_kind":"official","path":"joiner/popper/generate.py","file_url":"https://github.com/celinehocquette/ijcai24-joiner/blob/HEAD/joiner/popper/generate.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"c7919aea9aec45cd"}},{"code_sha256_prefix":"6bb964af4be6e01c","entry":"format_prog","repo":"celinehocquette/ijcai24-joiner","repo_kind":"official","path":"joiner/popper/util.py","file_url":"https://github.com/celinehocquette/ijcai24-joiner/blob/HEAD/joiner/popper/util.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"6bb964af4be6e01c"}},{"code_sha256_prefix":"1a71e2d0cd945b4a","entry":"learn_solution","repo":"celinehocquette/ijcai24-joiner","repo_kind":"official","path":"joiner/popper/loop.py","file_url":"https://github.com/celinehocquette/ijcai24-joiner/blob/HEAD/joiner/popper/loop.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"1a71e2d0cd945b4a"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}