From b4ebdc06aa6817922a0adafb97ed2bd334bff155 Mon Sep 17 00:00:00 2001 From: Demfier Date: Wed, 2 Sep 2026 09:39:32 +0530 Subject: [PATCH 1/3] Add SciKG Verify dielectric benchmark result --- .../matbench_v0.1_SciKG_Verify/info.json | 15 +++++++ .../results.json.gz | Bin 0 -> 61498 bytes .../submission_client.py | 41 ++++++++++++++++++ 3 files changed, 56 insertions(+) create mode 100644 benchmarks/matbench_v0.1_SciKG_Verify/info.json create mode 100644 benchmarks/matbench_v0.1_SciKG_Verify/results.json.gz create mode 100644 benchmarks/matbench_v0.1_SciKG_Verify/submission_client.py diff --git a/benchmarks/matbench_v0.1_SciKG_Verify/info.json b/benchmarks/matbench_v0.1_SciKG_Verify/info.json new file mode 100644 index 00000000..c44117c3 --- /dev/null +++ b/benchmarks/matbench_v0.1_SciKG_Verify/info.json @@ -0,0 +1,15 @@ +{ + "authors": "Gaurav Sahu", + "algorithm": "SciKG Verify", + "algorithm_long": "A temporally filtered scientific-knowledge-graph verifier applied to frozen MODNet v0.1.12 MatBench dielectric predictions. The method retrieves compatible pre-cutoff external measurements and relations, applies strict structure/property/source compatibility checks, and uses nested out-of-fold selection to decide whether and how strongly to correct each prediction.", + "bibtex_refs": "", + "notes": "Evidence-augmented evaluation: the method uses external literature and database evidence available before the benchmark cutoff at inference time. Mean official-fold MAE is 0.24932956785914703. The outer fold is excluded from all selector fitting and parameter selection. This external-evidence contract should be displayed explicitly in any leaderboard entry.", + "requirements": { + "python": [ + "matbench==0.6", + "numpy", + "pandas", + "scikit-learn" + ] + } +} diff --git a/benchmarks/matbench_v0.1_SciKG_Verify/results.json.gz b/benchmarks/matbench_v0.1_SciKG_Verify/results.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..0b7ca2cef1663b04934161da5c56a01d49d39676 GIT binary patch literal 61498 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 H*AN2$9$uvx literal 0 HcmV?d00001 diff --git a/benchmarks/matbench_v0.1_SciKG_Verify/submission_client.py b/benchmarks/matbench_v0.1_SciKG_Verify/submission_client.py new file mode 100644 index 00000000..e650da39 --- /dev/null +++ b/benchmarks/matbench_v0.1_SciKG_Verify/submission_client.py @@ -0,0 +1,41 @@ +"""Thin public client for the private Scientia verifier service. + +The service URL and a revocable benchmark key are supplied at runtime. No +knowledge graph, extracted evidence, model weights, or verifier logic is +distributed with this client. +""" + +from __future__ import annotations + +import json +import os +from urllib.request import Request, urlopen + + +def verify_materials(endpoint: str, fold: int, candidates: list[dict]) -> list[dict]: + base_url = os.environ["SCIENTIA_VERIFIER_API_URL"].rstrip("/") + api_key = os.environ["SCIENTIA_VERIFIER_API_KEY"] + payload = json.dumps({ + "endpoint": endpoint, + "fold": fold, + "candidates": candidates, + }).encode("utf-8") + request = Request( + f"{base_url}/v1/verify/materials", + data=payload, + headers={ + "Authorization": f"Bearer {api_key}", + "Content-Type": "application/json", + }, + method="POST", + ) + with urlopen(request, timeout=300) as response: + body = json.load(response) + predictions = body.get("predictions") + if not isinstance(predictions, list) or len(predictions) != len(candidates): + raise RuntimeError("verifier API returned a malformed prediction batch") + expected = [str(row["id"]) for row in candidates] + received = [str(row["id"]) for row in predictions] + if received != expected: + raise RuntimeError("verifier API changed candidate order or identity") + return predictions From c0c4f8de9c3f50a761895322f600d19ff6d7a7de Mon Sep 17 00:00:00 2001 From: Demfier Date: Wed, 2 Sep 2026 11:07:55 +0530 Subject: [PATCH 2/3] Fix CI dependency and artifact action failures --- .github/workflows/python-package.yml | 14 +++++++------- requirements-dev.txt | 7 +++++-- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 60725c1d..a4c01319 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -17,9 +17,9 @@ jobs: python-version: ["3.9"] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Test @@ -31,7 +31,7 @@ jobs: coverage run -m unittest discover coverage json - name: Upload coverage artifact - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: name: coverage_artifact path: coverage.json @@ -40,9 +40,9 @@ jobs: needs: test runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Download coverage artifact - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v4 with: name: coverage_artifact - name: Check coverage @@ -54,9 +54,9 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Set up python 3.9 - uses: actions/setup-python@v2 + uses: actions/setup-python@v5 with: python-version: 3.9 - name: Run submission check diff --git a/requirements-dev.txt b/requirements-dev.txt index 4c2ec0e9..f67dc203 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,7 +1,10 @@ pytest coverage==6.4.3 wheel==0.37.1 -monty==2022.4.26 +# Matminer and pymatgen installed by matbench require a current Monty. The +# previous 2022 pin downgraded the compatible version selected by pip and made +# both the test and benchmark-submission jobs fail during import. +monty>=2024.7.29 isort==5.10.1 black==22.3.0 -flake8==4.0.1 \ No newline at end of file +flake8==4.0.1 From 254019c414c11c1ce9da21a0e51b43a28d2f658d Mon Sep 17 00:00:00 2001 From: Demfier Date: Wed, 2 Sep 2026 11:22:06 +0530 Subject: [PATCH 3/3] Pin NumPy below removed scalar aliases --- requirements-dev.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/requirements-dev.txt b/requirements-dev.txt index f67dc203..97a35f33 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,6 +1,8 @@ pytest coverage==6.4.3 wheel==0.37.1 +# The current test suite still references np.float_, removed in NumPy 2. +numpy<2 # Matminer and pymatgen installed by matbench require a current Monty. The # previous 2022 pin downgraded the compatible version selected by pip and made # both the test and benchmark-submission jobs fail during import.