{"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/relational-graph-convolutional-networks-do","title":"Relational Graph Convolutional Networks Do Not Learn Sound Rules","arxiv_id":"2408.10261","date":"2024-08-14","proceeding":"KR 2024 11","authors":["Matthew Morris","David J. Tena Cucala","Bernardo Cuenca Grau","Ian Horrocks"],"abstract":"Graph neural networks (GNNs) are frequently used to predict missing facts in knowledge graphs (KGs). Motivated by the lack of explainability for the outputs of these models, recent work has aimed to explain their predictions using Datalog, a widely used logic-based formalism. However, such work has been restricted to certain subclasses of GNNs. In this paper, we consider one of the most popular GNN architectures for KGs, R-GCN, and we provide two methods to extract rules that explain its predictions and are sound, in the sense that each fact derived by the rules is also predicted by the GNN, for any input dataset. Furthermore, we provide a method that can verify that certain classes of Datalog rules are not sound for the R-GCN. In our experiments, we train R-GCNs on KG completion benchmarks, and we are able to verify that no Datalog rule is sound for these models, even though the models often obtain high to near-perfect accuracy. This raises some concerns about the ability of R-GCN models to generalise and about the explainability of their predictions. We further provide two variations to the training paradigm of R-GCN that encourage it to learn sound rules and find a trade-off between model accuracy and the number of learned sound rules.","url_abs":"https://arxiv.org/abs/2408.10261v1","url_pdf":"https://arxiv.org/pdf/2408.10261v1.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":"relational-graph-convolutional-networks-do","repo_url":"https://github.com/mmorris44/gnn-sound-rule-extraction","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"knowledge-graphs","task_name":"Knowledge Graphs"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2408.10261","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2408.10261"}},"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/mmorris44/gnn-sound-rule-extraction","reach":null}],"summary":{"ran_honours":2,"ran_fixture":1},"by_repo_kind":{"official":{"samples":3,"ran":3,"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":3,"samples":[{"code_sha256_prefix":"ca4be9a35858e78f","entry":"model_stats","repo":"mmorris44/gnn-sound-rule-extraction","repo_kind":"official","path":"src/sound_rule_extraction.py","file_url":"https://github.com/mmorris44/gnn-sound-rule-extraction/blob/HEAD/src/sound_rule_extraction.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"ca4be9a35858e78f"}},{"code_sha256_prefix":"767351dd6998611c","entry":"nabn","repo":"mmorris44/gnn-sound-rule-extraction","repo_kind":"official","path":"src/sound_rule_extraction.py","file_url":"https://github.com/mmorris44/gnn-sound-rule-extraction/blob/HEAD/src/sound_rule_extraction.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"767351dd6998611c"}},{"code_sha256_prefix":"7a76e4f16ce591b9","entry":"value_breakdown","repo":"mmorris44/gnn-sound-rule-extraction","repo_kind":"official","path":"src/sound_rule_extraction.py","file_url":"https://github.com/mmorris44/gnn-sound-rule-extraction/blob/HEAD/src/sound_rule_extraction.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"7a76e4f16ce591b9"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}