{"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/xerte-explainable-reasoning-on-temporal","title":"xERTE: Explainable Reasoning on Temporal Knowledge Graphs for Forecasting Future Links","arxiv_id":"2012.15537","date":"2020-12-31","proceeding":null,"authors":["Zhen Han","Peng Chen","Yunpu Ma","Volker Tresp"],"abstract":"Modeling time-evolving knowledge graphs (KGs) has recently gained increasing interest. Here, graph representation learning has become the dominant paradigm for link prediction on temporal KGs. However, the embedding-based approaches largely operate in a black-box fashion, lacking the ability to interpret their predictions. This paper provides a link forecasting framework that reasons over query-relevant subgraphs of temporal KGs and jointly models the structural dependencies and the temporal dynamics. Especially, we propose a temporal relational attention mechanism and a novel reverse representation update scheme to guide the extraction of an enclosing subgraph around the query. The subgraph is expanded by an iterative sampling of temporal neighbors and by attention propagation. Our approach provides human-understandable evidence explaining the forecast. We evaluate our model on four benchmark temporal knowledge graphs for the link forecasting task. While being more explainable, our model obtains a relative improvement of up to 20% on Hits@1 compared to the previous best KG forecasting method. We also conduct a survey with 53 respondents, and the results show that the evidence extracted by the model for link forecasting is aligned with human understanding.","url_abs":"https://arxiv.org/abs/2012.15537v5","url_pdf":"https://arxiv.org/pdf/2012.15537v5.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":"xerte-explainable-reasoning-on-temporal","repo_url":"https://github.com/TemporalKGTeam/xERTE","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null},{"paper_slug":"xerte-explainable-reasoning-on-temporal","repo_url":"https://github.com/zjs123/streame","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"unanswered"}}],"tasks":[{"task_slug":"graph-representation-learning","task_name":"Graph Representation Learning"},{"task_slug":"knowledge-graphs","task_name":"Knowledge Graphs"},{"task_slug":"link-prediction","task_name":"Link Prediction"},{"task_slug":"representation-learning","task_name":"Representation Learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2012.15537","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2012.15537"}},"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/TemporalKGTeam/xERTE","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/zjs123/streame","reach":{"status":"unanswered"}}],"summary":{"ran":2,"ran_draft_wrong":1,"unverified":4},"by_repo_kind":{"official":{"samples":7,"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":7,"samples":[{"code_sha256_prefix":"db853d8b63d979af","entry":"G3","repo":"TemporalKGTeam/xERTE","repo_kind":"official","path":"tKGR/model.py","file_url":"https://github.com/TemporalKGTeam/xERTE/blob/HEAD/tKGR/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"db853d8b63d979af"}},{"code_sha256_prefix":"deadb7c4f6315358","entry":"TimeEncode","repo":"TemporalKGTeam/xERTE","repo_kind":"official","path":"tKGR/model.py","file_url":"https://github.com/TemporalKGTeam/xERTE/blob/HEAD/tKGR/model.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":"deadb7c4f6315358"}},{"code_sha256_prefix":"89f78f83a7a22054","entry":"segment_norm_l1","repo":"TemporalKGTeam/xERTE","repo_kind":"official","path":"tKGR/model.py","file_url":"https://github.com/TemporalKGTeam/xERTE/blob/HEAD/tKGR/model.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":"89f78f83a7a22054"}},{"code_sha256_prefix":"4c954ceeae6bada6","entry":"AttentionFlow","repo":"TemporalKGTeam/xERTE","repo_kind":"official","path":"tKGR/model.py","file_url":"https://github.com/TemporalKGTeam/xERTE/blob/HEAD/tKGR/model.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":"4c954ceeae6bada6"}},{"code_sha256_prefix":"24b1461a6ccd2b84","entry":"segment_max","repo":"TemporalKGTeam/xERTE","repo_kind":"official","path":"tKGR/model.py","file_url":"https://github.com/TemporalKGTeam/xERTE/blob/HEAD/tKGR/model.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":"24b1461a6ccd2b84"}},{"code_sha256_prefix":"51805f466d0acdbf","entry":"segment_softmax_op_v2","repo":"TemporalKGTeam/xERTE","repo_kind":"official","path":"tKGR/model.py","file_url":"https://github.com/TemporalKGTeam/xERTE/blob/HEAD/tKGR/model.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":"51805f466d0acdbf"}},{"code_sha256_prefix":"e0401d2eedd75ab1","entry":"xERTE","repo":"TemporalKGTeam/xERTE","repo_kind":"official","path":"tKGR/model.py","file_url":"https://github.com/TemporalKGTeam/xERTE/blob/HEAD/tKGR/model.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":"e0401d2eedd75ab1"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}