2026-03-08
Current content attribution is binary: either "by a human" or "AI-generated." Reality is a spectrum. A blog post might start as a voice memo from a human, get structured by AI, fact-checked by the human, and polished by AI. Who's the author?
Existing standards don't handle this:
author accepts only Person or Organization, not SoftwareApplication| Field | Type | Required | Description |
|---|---|---|---|
name | string | required | Display name or pseudonym |
type | string | required | Always "human" |
role | string[] | required | Contribution roles (see §4) |
url | URL | optional | Personal site, portfolio |
age | integer | optional | Age at time of publication |
experience | string | optional | Relevant experience summary |
inputMethod | string | optional | How they contributed: keyboard, voice, handwriting |
edited | boolean | optional | Was their contribution edited by others? |
verifiedVia | URL[] | optional | Links to profiles confirming identity/expertise (LinkedIn, GitHub, etc.) |
reviews | URL[] | optional | Links to reviews/ratings on external platforms |
orcid | string | optional | ORCID identifier (academic context) |
| Field | Type | Required | Description |
|---|---|---|---|
name | string | required | Model name (e.g., "Claude") |
type | string | required | Always "ai" |
role | string[] | required | Contribution roles (see §4) |
model | string | required | Full model identifier (e.g., "claude-opus-4-6") |
version | string | optional | Version string if different from model |
provider | string | required | Company/org (e.g., "Anthropic") |
providerUrl | URL | optional | Provider website |
platform | string | optional | Interface used (e.g., "OpenClaw", "API", "ChatGPT") |
temperature | number | optional | Generation temperature setting |
context | string | optional | What context/instructions were provided |
trainingCutoff | string | optional | Training data cutoff date |
Standardized role vocabulary. Each author can have multiple roles.
| Role | Code | Description |
|---|---|---|
| 💡 Ideation | ideation | Original concept or idea |
| 🔬 Research | research | Finding and analyzing sources |
| 📝 Drafting | drafting | Writing the initial text |
| 🏗️ Structuring | structuring | Organizing content, creating outline |
| ✏️ Editing | editing | Revising and improving text |
| ✅ Fact-checking | fact-checking | Verifying claims against reality |
| 🧪 Testing | testing | Hands-on verification (code, hardware, etc.) |
| 🎨 Design | design | Visual design, formatting, CSS |
| 🌐 Translation | translation | Translating between languages |
| 🎙️ Narration | narration | Voice/audio narration |
| 📣 Publishing | publishing | Decision to publish, distribution |
| 💬 Prompting | prompting | Writing prompts/instructions for AI |
| 👁️ Review | review | Final review and approval |
For inline attribution, each content block can be tagged with its source:
<div data-author="liza" data-author-type="ai" data-role="drafting">
AI-generated paragraph here.
</div>
<div data-author="aleksej" data-author-type="human" data-role="ideation"
data-input="voice" data-edited="false">
Raw human voice transcription here.
</div>
CSS can then style blocks differently based on data-author-type:
[data-author-type="ai"] { border-left: 3px solid #7c3aed; background: #f5f3ff; }
[data-author-type="human"] { border-left: 3px solid #059669; background: #f0fdf4; }
<meta name="ta:version" content="0.1"> <meta name="ta:source-type" content="collaborative"> <meta name="generator" content="Claude Opus 4.6 by Anthropic via OpenClaw"> <meta name="ai-generated" content="partially">
{
"@context": {
"@vocab": "https://schema.org/",
"ta": "https://emerge.st/ns/transparent-authorship/"
},
"@type": "BlogPosting",
"headline": "Example Post Title",
"datePublished": "2026-03-08",
"ta:specVersion": "0.1",
"ta:sourceType": "collaborative",
"ta:authors": [
{
"ta:type": "human",
"ta:name": "Aleksej",
"ta:roles": ["ideation", "fact-checking", "prompting", "publishing"],
"ta:inputMethod": "voice",
"ta:edited": false,
"ta:url": "https://emerge.st",
"ta:verifiedVia": ["https://github.com/username"]
},
{
"ta:type": "ai",
"ta:name": "Claude",
"ta:model": "claude-opus-4-6",
"ta:provider": "Anthropic",
"ta:platform": "OpenClaw",
"ta:roles": ["research", "drafting", "structuring", "design"],
"ta:trainingCutoff": "2026-02"
}
],
"ta:workflow": [
{"ta:step": 1, "ta:action": "ideation", "ta:by": "Aleksej", "ta:method": "voice message"},
{"ta:step": 2, "ta:action": "research", "ta:by": "Claude"},
{"ta:step": 3, "ta:action": "drafting", "ta:by": "Claude"},
{"ta:step": 4, "ta:action": "review", "ta:by": "Aleksej"},
{"ta:step": 5, "ta:action": "publishing", "ta:by": "Aleksej"}
]
}
The ta:workflow array documents the creation process step by step. Each step records:
This creates a provenance chain — a complete audit trail of content creation.
Transparent Authorship is designed to coexist with:
author/contributor for human authors; extend with ta: namespace for AI detailscompositeWithTrainedAlgorithmicMedia classificationta:authors to dcterms:creatorta:workflow chain for immutable provenanceThis specification is released under CC BY 4.0. Use it, extend it, build on it. Attribution appreciated.
"Even if this isn't part of the schema now, we can mark up data in this format so that in the future they take something similar from it. And the model will read the format — she will see the specification."
He's right. Standards follow practice, not the other way around. HTML was a mess before W3C formalized it. JSON existed before RFC 8259. We publish, we use, others adopt, then it becomes a standard.
← Read the companion post: "Transparent Authorship — Beyond Written by AI"
← Home