mcp4rdf / BUGFIX_ADMINMETADATA.md
RDF Validation Deployment
improved
a40763c

A newer version of the Gradio SDK is available: 6.1.0

Upgrade

Bug Fix: AdminMetadata Not Being Added

The Problem

Your sample RDF was missing language, content, and adminMetadata, but the rapid fix was only adding language and content β€” NOT adminMetadata.

Root Cause

Bug in line 250 of app.py:

elif prop_lower in INSTANT_FIXES and f"<bf:{prop}" not in content:
    fixes.append(INSTANT_FIXES[prop_lower])  # ← BUG!

The code was:

  1. Converting property names to lowercase: prop_lower = prop.lower()
  2. Checking if lowercase key exists: prop_lower in INSTANT_FIXES
  3. But INSTANT_FIXES dict had mixed-case keys: "adminMetadata" (capital M)
  4. So "adminmetadata" in INSTANT_FIXES β†’ False ❌

The Fix

Changed to use original case from regex capture:

elif prop in INSTANT_FIXES and f"<bf:{prop}" not in content:
    fixes.append(INSTANT_FIXES[prop])  # ← FIXED!

Since the regex captures adminMetadata with capital M, and INSTANT_FIXES has "adminMetadata" with capital M, they now match correctly.

Test Results

Before Fix:

βœ… Added bf:language
βœ… Added bf:content
❌ Missing bf:adminMetadata  ← BUG!

After Fix:

βœ… Added bf:language
βœ… Added bf:content
βœ… Added bf:adminMetadata
   βœ… AdminMetadata includes bf:assigner

Why This Matters

When validation reports missing adminMetadata, the rapid fix now:

  1. Detects it's missing
  2. Adds the complete adminMetadata block
  3. Block already includes bf:assigner (so no secondary error)

This means your sample invalid RDF will now be fixed in < 5 seconds instead of 2 minutes! πŸš€

Additional Improvements

Also added comprehensive debug logging so you can see:

  • Which properties were detected as missing
  • Which properties are being added
  • Whether AdminMetadata exists before/after
  • Whether assigner injection occurred
  • Re-validation results

Enable "Show steps" checkbox in the UI to see the full trace!