{"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/extracting-interpretable-logic-rules-from","title":"Extracting Interpretable Logic Rules from Graph Neural Networks","arxiv_id":"2503.19476","date":"2025-03-25","proceeding":null,"authors":["Chuqin Geng","Zhaoyue Wang","Ziyu Zhao","Haolin Ye","Xujie Si"],"abstract":"Graph neural networks (GNNs) operate over both input feature spaces and combinatorial graph structures, making it challenging to understand the rationale behind their predictions. As GNNs gain widespread popularity and demonstrate success across various domains, such as drug discovery, studying their interpretability has become a critical task. To address this, many explainability methods have been proposed, with recent efforts shifting from instance-specific explanations to global concept-based explainability. However, these approaches face several limitations, such as relying on predefined concepts and explaining only a limited set of patterns. To address this, we propose a novel framework, LOGICXGNN, for extracting interpretable logic rules from GNNs. LOGICXGNN is model-agnostic, efficient, and data-driven, eliminating the need for predefined concepts. More importantly, it can serve as a rule-based classifier and even outperform the original neural models. Its interpretability facilitates knowledge discovery, as demonstrated by its ability to extract detailed and accurate chemistry knowledge that is often overlooked by existing methods. Another key advantage of LOGICXGNN is its ability to generate new graph instances in a controlled and transparent manner, offering significant potential for applications such as drug design. We empirically demonstrate these merits through experiments on real-world datasets such as MUTAG and BBBP.","url_abs":"https://arxiv.org/abs/2503.19476v1","url_pdf":"https://arxiv.org/pdf/2503.19476v1.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":[],"tasks":[{"task_slug":"drug-design","task_name":"Drug Design"},{"task_slug":"drug-discovery","task_name":"Drug Discovery"}],"methods":[{"method_slug":"set","method_name":"SET"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2503.19476","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2503.19476"}},"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":"deterministic:regex_extraction","url":"https://github.com/allengeng123/LogicXGNN","reach":null}],"summary":{"ran_draft_wrong":2,"ran":2,"ran_fixture":2,"unverified":1},"by_repo_kind":{"found_in_text":{"samples":7,"ran":6,"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":7,"samples":[{"code_sha256_prefix":"0fb0f8056142c95e","entry":"create_expanded_encoding","repo":"allengeng123/LogicXGNN","repo_kind":"found_in_text","path":"grounding.py","file_url":"https://github.com/allengeng123/LogicXGNN/blob/HEAD/grounding.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"0fb0f8056142c95e"}},{"code_sha256_prefix":"97c2b59861e2f6e1","entry":"handle_no_unique_nodes_case","repo":"allengeng123/LogicXGNN","repo_kind":"found_in_text","path":"grounding.py","file_url":"https://github.com/allengeng123/LogicXGNN/blob/HEAD/grounding.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":"97c2b59861e2f6e1"}},{"code_sha256_prefix":"f3b276758079b08a","entry":"merge_orbits_by_distance_with_paths","repo":"allengeng123/LogicXGNN","repo_kind":"found_in_text","path":"grounding.py","file_url":"https://github.com/allengeng123/LogicXGNN/blob/HEAD/grounding.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":"f3b276758079b08a"}},{"code_sha256_prefix":"97073fdd8279a8e5","entry":"plot_k_hop_subgraph","repo":"allengeng123/LogicXGNN","repo_kind":"found_in_text","path":"grounding.py","file_url":"https://github.com/allengeng123/LogicXGNN/blob/HEAD/grounding.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"97073fdd8279a8e5"}},{"code_sha256_prefix":"702455ee1909aa03","entry":"predicate_features_z","repo":"allengeng123/LogicXGNN","repo_kind":"found_in_text","path":"grounding.py","file_url":"https://github.com/allengeng123/LogicXGNN/blob/HEAD/grounding.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"702455ee1909aa03"}},{"code_sha256_prefix":"5c6a2fbe120a6d53","entry":"stable_orbits_with_anchor","repo":"allengeng123/LogicXGNN","repo_kind":"found_in_text","path":"grounding.py","file_url":"https://github.com/allengeng123/LogicXGNN/blob/HEAD/grounding.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"5c6a2fbe120a6d53"}},{"code_sha256_prefix":"4140724d77297ee2","entry":"get_the_rule_iso_z","repo":"allengeng123/LogicXGNN","repo_kind":"found_in_text","path":"grounding.py","file_url":"https://github.com/allengeng123/LogicXGNN/blob/HEAD/grounding.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":"4140724d77297ee2"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}