{"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/arxiv-2602-02215","title":"Scientific Theory of a Black-Box: A Life Cycle-Scale XAI Framework Based on Constructive Empiricism","arxiv_id":"2602.02215","date":"2026-02-02","proceeding":null,"authors":["Sebastian Müller","Vanessa Toborek","Eike Stadtländer","Tamás Horváth","Brendan Balcerak Jackson","Christian Bauckhage"],"abstract":"Explainable AI (XAI) offers a growing number of algorithms that aim to answer specific questions about black-box models. What is missing is a principled way to consolidate explanatory information about a fixed black-box model into a persistent, auditable artefact, that accompanies the black-box throughout its life cycle. We address this gap by introducing the notion of a scientific theory of a black (SToBB). Grounded in Constructive Empiricism, a SToBB fulfils three obligations: (i) empirical adequacy with respect to all available observations of black-box behaviour, (ii) adaptability via explicit update commitments that restore adequacy when new observations arrive, and (iii) auditability through transparent documentation of assumptions, construction choices, and update behaviour. We operationalise these obligations as a general framework that specifies an extensible observation base, a traceable hypothesis class, algorithmic components for construction and revision, and documentation sufficient for third-party assessment. Explanations for concrete stakeholder needs are then obtained by querying the maintained record through interfaces, rather than by producing isolated method outputs. As a proof of concept, we instantiate a complete SToBB for a neural-network classifier on a tabular task and introduce the Constructive Box Theoriser (CoBoT) algorithm, an online procedure that constructs and maintains an empirically adequate rule-based surrogate as observations accumulate. Together, these contributions position SToBBs as a life cycle-scale, inspectable point of reference that supports consistent, reusable analyses and systematic external scrutiny.","url_abs":"https://arxiv.org/abs/2602.02215","url_pdf":"https://arxiv.org/pdf/2602.02215","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2602.02215","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2602.02215"}},"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":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/semueller/stobb_cobot","reach":null}],"summary":{"unverified":9},"by_repo_kind":{"found_in_text":{"samples":9,"ran":0,"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":9,"samples":[{"code_sha256_prefix":"a6a7cb1a78fbefe6","entry":"get_abalone","repo":"semueller/stobb_cobot","repo_kind":"found_in_text","path":"lxg/util.py","file_url":"https://github.com/semueller/stobb_cobot/blob/HEAD/lxg/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":"a6a7cb1a78fbefe6"}},{"code_sha256_prefix":"c143b4dc224b6c1b","entry":"get_observation_base","repo":"semueller/stobb_cobot","repo_kind":"found_in_text","path":"interfaces.py","file_url":"https://github.com/semueller/stobb_cobot/blob/HEAD/interfaces.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":"c143b4dc224b6c1b"}},{"code_sha256_prefix":"ec41f5c0e545eb27","entry":"get_support_labels","repo":"semueller/stobb_cobot","repo_kind":"found_in_text","path":"interfaces.py","file_url":"https://github.com/semueller/stobb_cobot/blob/HEAD/interfaces.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":"ec41f5c0e545eb27"}},{"code_sha256_prefix":"667758f31b1b6656","entry":"integrated_gradients","repo":"semueller/stobb_cobot","repo_kind":"found_in_text","path":"lxg/attribution.py","file_url":"https://github.com/semueller/stobb_cobot/blob/HEAD/lxg/attribution.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":"667758f31b1b6656"}},{"code_sha256_prefix":"d403a53e43a72df5","entry":"load_csv","repo":"semueller/stobb_cobot","repo_kind":"found_in_text","path":"show_example.py","file_url":"https://github.com/semueller/stobb_cobot/blob/HEAD/show_example.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":"d403a53e43a72df5"}},{"code_sha256_prefix":"249e1c82fd0a206b","entry":"load_pkl","repo":"semueller/stobb_cobot","repo_kind":"found_in_text","path":"show_example.py","file_url":"https://github.com/semueller/stobb_cobot/blob/HEAD/show_example.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":"249e1c82fd0a206b"}},{"code_sha256_prefix":"09f32aad82ceb1ba","entry":"make_ff","repo":"semueller/stobb_cobot","repo_kind":"found_in_text","path":"lxg/models.py","file_url":"https://github.com/semueller/stobb_cobot/blob/HEAD/lxg/models.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":"09f32aad82ceb1ba"}},{"code_sha256_prefix":"62506f5a23645283","entry":"rect_contains","repo":"semueller/stobb_cobot","repo_kind":"found_in_text","path":"interfaces.py","file_url":"https://github.com/semueller/stobb_cobot/blob/HEAD/interfaces.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":"62506f5a23645283"}},{"code_sha256_prefix":"bbe9ed448fc931fc","entry":"train_nn","repo":"semueller/stobb_cobot","repo_kind":"found_in_text","path":"lxg/util.py","file_url":"https://github.com/semueller/stobb_cobot/blob/HEAD/lxg/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":"bbe9ed448fc931fc"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.LG","source":"arxiv_2026.jsonl"},"syntology_extracted_results":null}