Skip to content

jsonld: inline isBasedOn Dataset in StatisticalReport (fix 3rd GSC Dataset item) - #1442

Merged
Flotapponnier merged 2 commits into
mainfrom
fix/isbasedon-inline-dataset
Jul 25, 2026
Merged

jsonld: inline isBasedOn Dataset in StatisticalReport (fix 3rd GSC Dataset item)#1442
Flotapponnier merged 2 commits into
mainfrom
fix/isbasedon-inline-dataset

Conversation

@Flotapponnier

Copy link
Copy Markdown
Collaborator

Root cause

Rich Results Test on /benchmarks/ws-head-latency-ethereum (crawled 22:13, post-#1429 deploy) confirmed 3 Datasets detected, some invalid. My earlier scan only counted 2 (bench Dataset + isPartOf inline). The mystery 3rd was the @id-only isBasedOn ref inside StatisticalReport, line 269.

Same failure mode as PR #1429 (isPartOf): Google validates each Dataset in isolation and does NOT stitch @id refs, even within the same @graph. So isBasedOn: {"@id": ...} gets validated as a standalone Dataset and flagged for missing name/description/creator.

Fix

Inline the required Dataset fields on the isBasedOn ref. Same pattern as the isPartOf fix.

Test plan

  • pnpm typecheck
  • After deploy: re-run Rich Results Test on any bench URL, confirm Dataset count drops to 2 and both are valid
  • GSC → Validate Fix again on the 4 URLs (ws-head-latency-*, xstocks-peg) → should pass this time

Flotapponnier and others added 2 commits July 25, 2026 22:14
…tton style (#1440)

* fix: Virtuals chain detection + update methodology text for Relay/Mobula

* chart export v3: dimmer watermark, toBlob download path, unified Image/Video button style

---------

Co-authored-by: Florent Tapponnier <contact@mobula.io>
Rich Results Test on ws-head-latency-ethereum confirmed 3 Datasets
detected (bench + isPartOf + isBasedOn) with one invalid. The mystery
3rd was the @id-only isBasedOn ref inside StatisticalReport. Same
failure mode as isPartOf (already fixed in PR #1429): Google validates
each Dataset in isolation and does not stitch @id refs even inside
the same @graph.

Inline the required fields (name, description, url, creator, license)
on the isBasedOn ref so it validates on its own. Same pattern as
isPartOf.
@Flotapponnier
Flotapponnier merged commit 69fdfac into main Jul 25, 2026
1 check failed
Flotapponnier added a commit that referenced this pull request Jul 25, 2026
…+ alt pages) (#1443)

Deep-check after PR #1442 caught 4 more @id-only refs Google could
flag as standalone incomplete Datasets:

- benchmarks/[slug]/[chain] TechArticle: about + isPartOf (cross-page
  refs to parent bench Dataset + Article). about becomes {@type:Thing,
  name: metric}; isPartOf gets name+url inlined.
- benchmarks/[slug] TechArticle: about (same-page but Google flagged
  even same-graph refs). Becomes {@type:Thing, name: metric}.
- alternatives/[slug] Article: about (same-page). Becomes {@type:Thing,
  name: bench.metric}.

Semantically cleaner too: 'about' on an article should describe the
topic (Thing), not a data source. Matches the pattern already used by
StatisticalReport.about.

Co-authored-by: Florent Tapponnier <contact@mobula.io>
Flotapponnier added a commit that referenced this pull request Jul 25, 2026
…k) (#1444)

* jsonld: replace remaining @id-only refs with Thing/inline (fix chain + alt pages)

Deep-check after PR #1442 caught 4 more @id-only refs Google could
flag as standalone incomplete Datasets:

- benchmarks/[slug]/[chain] TechArticle: about + isPartOf (cross-page
  refs to parent bench Dataset + Article). about becomes {@type:Thing,
  name: metric}; isPartOf gets name+url inlined.
- benchmarks/[slug] TechArticle: about (same-page but Google flagged
  even same-graph refs). Becomes {@type:Thing, name: metric}.
- alternatives/[slug] Article: about (same-page). Becomes {@type:Thing,
  name: bench.metric}.

Semantically cleaner too: 'about' on an article should describe the
topic (Thing), not a data source. Matches the pattern already used by
StatisticalReport.about.

* chart watermark v4: branded composition — C-mark between two hairlines + openchainbench.com wordmark below

---------

Co-authored-by: Florent Tapponnier <contact@mobula.io>
Flotapponnier added a commit that referenced this pull request Jul 25, 2026
…k) (#1444) (#1445)

* jsonld: replace remaining @id-only refs with Thing/inline (fix chain + alt pages)

Deep-check after PR #1442 caught 4 more @id-only refs Google could
flag as standalone incomplete Datasets:

- benchmarks/[slug]/[chain] TechArticle: about + isPartOf (cross-page
  refs to parent bench Dataset + Article). about becomes {@type:Thing,
  name: metric}; isPartOf gets name+url inlined.
- benchmarks/[slug] TechArticle: about (same-page but Google flagged
  even same-graph refs). Becomes {@type:Thing, name: metric}.
- alternatives/[slug] Article: about (same-page). Becomes {@type:Thing,
  name: bench.metric}.

Semantically cleaner too: 'about' on an article should describe the
topic (Thing), not a data source. Matches the pattern already used by
StatisticalReport.about.

* chart watermark v4: branded composition — C-mark between two hairlines + openchainbench.com wordmark below

---------

Co-authored-by: Florent Tapponnier <contact@mobula.io>
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.

1 participant