JSON-LD Examples
Structured data examples for SEO and discoverability
Scholarly Article — Root (latest) page
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "ScholarlyArticle",
"@id": "https://nobleid.org/20092025/7X9K2Q",
"identifier": [
"ark:/nobleid/20092025/7X9K2Q"
],
"headline": "Climate impacts in 2025",
"author": [
{
"@type": "Person",
"name": "A. Researcher",
"identifier": "https://nobleid.org/p/ppid:abcd1234"
},
{
"@type": "Person",
"name": "B. Collaborator"
}
],
"datePublished": "2025-09-20",
"inLanguage": "en",
"keywords": ["climate", "impact", "2025"],
"license": "https://creativecommons.org/licenses/by/4.0/",
"sameAs": [
"https://publisher.org/articles/123"
],
"isBasedOn": "https://publisher.org/articles/123",
"encoding": [
{
"@type": "MediaObject",
"contentUrl": "https://publisher.org/articles/123.pdf",
"encodingFormat": "application/pdf"
}
]
}
</script>
Scholarly Article — Pinned version (v2) page
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "ScholarlyArticle",
"@id": "https://nobleid.org/20092025/7X9K2Q:v2",
"identifier": [
"ark:/nobleid/20092025/7X9K2Q",
"ark:/nobleid/20092025/7X9K2Q:v2"
],
"version": "v2",
"headline": "Climate impacts in 2025 (Revised)",
"author": [
{ "@type": "Person", "name": "A. Researcher", "identifier": "https://nobleid.org/p/ppid:abcd1234" },
{ "@type": "Person", "name": "B. Collaborator" }
],
"datePublished": "2025-09-20",
"dateModified": "2025-10-01",
"inLanguage": "en",
"license": "https://creativecommons.org/licenses/by/4.0/",
"sameAs": ["https://publisher.org/articles/123"],
"isBasedOn": "https://publisher.org/articles/123",
"encoding": [
{ "@type": "MediaObject", "contentUrl": "https://publisher.org/articles/123-v2.pdf", "encodingFormat": "application/pdf" }
]
}
</script>
Dataset page
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Dataset",
"@id": "https://nobleid.org/20092025/7X9K2Q",
"identifier": ["ark:/nobleid/20092025/7X9K2Q"],
"name": "Global rainfall anomalies, 1990–2025",
"creator": [
{ "@type": "Person", "name": "A. Researcher", "identifier": "https://nobleid.org/p/ppid:abcd1234" }
],
"datePublished": "2025-09-20",
"inLanguage": "en",
"keywords": ["rainfall","climate","anomaly"],
"license": "https://creativecommons.org/licenses/by/4.0/",
"sameAs": ["https://repo.example.edu/datasets/xyz"],
"distribution": [
{
"@type": "DataDownload",
"contentUrl": "https://repo.example.edu/datasets/xyz.csv",
"encodingFormat": "text/csv"
}
]
}
</script>
NobleID-P Person page (public profile)
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Person",
"@id": "https://nobleid.org/p/ppid:abcd1234",
"name": "A. Researcher",
"identifier": [
"ppid:abcd1234",
"https://orcid.org/0000-0002-1825-0097"
],
"affiliation": {
"@type": "Organization",
"name": "Example University",
"identifier": "https://ror.org/01bj3aw26"
},
"sameAs": [
"https://scholar.google.com/citations?user=XXXX",
"https://orcid.org/0000-0002-1825-0097"
]
}
</script>
Page-head helpers (SEO/citation)
Add these in the <head> of article/dataset pages
<link rel="canonical" href="https://publisher.org/articles/123" />
<link rel="alternate" type="application/vnd.citationstyles.csl+json" href="https://nobleid.org/20092025/7X9K2Q:v2?format=csl-json" />
<link rel="alternate" type="application/x-bibtex" href="https://nobleid.org/20092025/7X9K2Q:v2?format=bibtex" />
<link rel="alternate" type="application/x-research-info-systems" href="https://nobleid.org/20092025/7X9K2Q:v2?format=ris" />
<meta name="nobleid" content="ark:/nobleid/20092025/7X9K2Q" />
Update-Checker widget (drop-in)
Paste near the end of <body> on your article/dataset template
<link rel="preload" href="https://cdn.nobleid.org/widget.js" as="script" crossorigin>
<script
src="https://cdn.nobleid.org/widget.js"
data-ark="ark:/nobleid/20092025/7X9K2Q" <!-- set to the root ARK -->
data-style="badge" <!-- badge | inline -->
integrity="sha384-REPLACE_WITH_REAL_SRI"
crossorigin="anonymous"
async></script>
CSP (example)
Content Security Policy configuration for the widget
Content-Security-Policy:
default-src 'self';
script-src 'self' https://cdn.nobleid.org 'strict-dynamic' 'unsafe-inline';
connect-src 'self' https://nobleblocks.org https://nobleid.org;
img-src 'self' data:;
style-src 'self' 'unsafe-inline';
(If you use nonces instead of SRI, drop the integrity attribute and add your nonce="..." to the script tag.)
What it does
Calls:
GET https://nobleblocks.org/api/v1/nobleid/check-update?ark=ark:/nobleid/20092025/7X9K2Q
Renders:
"Up-to-date" or "New version available" with a link to the latest.
No cookies, respects Do-Not-Track, accessible (ARIA role="status").
Quick validation tips
- • Test JSON-LD with Google's Rich Results / SDTT; expect the object type to be recognized (ScholarlyArticle/Dataset/Person)
- • Verify the badge by publishing v2; it should flip within your cache window (60–120s)
- • Keep the root ARK in the widget (:vN is only for pinned links)