Skip to content

feat: MQA quality scoring — Phase 3a URL reachability (opt-in, v2.15.0)#57

Merged
daimpad merged 1 commit into
mainfrom
claude/fix-data-prep-errors-kJYpl
Jul 8, 2026
Merged

feat: MQA quality scoring — Phase 3a URL reachability (opt-in, v2.15.0)#57
daimpad merged 1 commit into
mainfrom
claude/fix-data-prep-errors-kJYpl

Conversation

@daimpad

@daimpad daimpad commented Jul 8, 2026

Copy link
Copy Markdown
Owner

MQA-Scoring — Phase 3a: URL-Erreichbarkeit (opt-in)

Ergänzt die netzwerkabhängigen Erreichbarkeits-Metriken der Zugänglichkeits-Dimension (80 Punkte) — als Opt-in, wie besprochen (Option A: nur Erreichbarkeit, kein Fremddienst).

Umsetzung

  • Neue Einstellung „URL-Erreichbarkeit prüfen" (Bereich Qualitätsprüfung (MQA), standardmäßig aus).
  • Bei Aktivierung werden dcat:accessURL und dcat:downloadURL beim Speichern per HTTP HEAD geprüft (GET-Fallback bei 405/501); Status 200–399 = erreichbar.
  • Ergebnisse werden 24 h pro URL als Transient gecacht → keine erneuten Requests bei wiederholtem Speichern. Timeout 5 s.
  • Damit steigt das bewertbare Maximum bei aktiver Prüfung von ~295 auf ~375 / 405. Es verbleibt nur DCAT-AP-SHACL (30) als „nicht bewertet".

Datenschutz / Performance

  • Opt-in; ausgehende Anfragen gehen nur an die Datensatz-eigenen URLs (kein externer Dienst). Kurzer Timeout + Cache.

Verifikation

  • ✅ PHPUnit 151 (neu: Cache-Hit ohne Request, 2xx→erreichbar mit Caching), PHPStan clean, PHPCS exit 0
  • i18n: 4 neue Strings, en_US.mo neu kompiliert · Version → 2.15.0
  • ⚠️ Bitte im Browser gegenprüfen: Einstellung aktivieren, Datensatz mit gültiger/ungültiger URL speichern → Zugänglichkeits-Punkte in der Meta-Box.

Verbleibend: nur noch Phase 3b (DCAT-AP-SHACL, 30 P) über einen externen Validator — separat/optional.

🤖 Generated with Claude Code


Generated by Claude Code

Add the optional URL-reachability metrics of the MQA accessibility dimension.

- New setting "URL-Erreichbarkeit prüfen" (Quality (MQA) section, default OFF).
  When enabled, dcat:accessURL and dcat:downloadURL are checked via HTTP HEAD
  (GET fallback on 405/501) on save; status 200–399 counts as reachable.
- Results are cached for 24h in a per-URL transient, so repeated saves don't
  re-request. Short 5s timeout.
- With the setting on, the assessable maximum rises from ~295 to ~375 of 405;
  only DCAT-AP SHACL (30) remains "not assessed".

Privacy/perf: opt-in, requests go only to the dataset's own URLs (no third-party
service). Meta-box "not assessed" hint made phase-agnostic (points to the "–"
markers). i18n: 4 new strings; en_US.mo recompiled.

Version 2.15.0. Tests: 151 pass (2 added: reachability cache-hit + 2xx mapping),
PHPStan clean, PHPCS exit 0.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JB1xUQM892bVZ4Yv3MZjvq
@daimpad daimpad merged commit 60f40f0 into main Jul 8, 2026
10 checks passed
@daimpad daimpad deleted the claude/fix-data-prep-errors-kJYpl branch July 8, 2026 13:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants