Skip to content

Commit 3076ff2

Browse files
Address spec gaps identified from cdx-pandoc analysis
- Add semantic.schema.json for validating semantic extension blocks/marks - Extend citation mark with CSL-compatible fields (prefix, suffix, locator, suppressAuthor) - Add source field to entity mark for knowledge graph origin - Add creators field to Dublin Core for structured author data with ORCID - Document bibliography block inline entries with renderedText support - Clarify linebreak semantics (soft breaks vs hard breaks) - Document tableCell simplified form for text node children - Document core vs semantic measurement type relationship - Update CI workflow to validate semantic schema
1 parent 80eb0bb commit 3076ff2

5 files changed

Lines changed: 561 additions & 6 deletions

File tree

.github/workflows/validate-schemas.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ jobs:
3131
for f in schemas/anchor.schema.json schemas/asset-index.schema.json \
3232
schemas/content.schema.json schemas/dublin-core.schema.json \
3333
schemas/manifest.schema.json schemas/precise-layout.schema.json \
34-
schemas/presentation.schema.json schemas/provenance.schema.json; do
34+
schemas/presentation.schema.json schemas/provenance.schema.json \
35+
schemas/semantic.schema.json; do
3536
echo "Compiling $f..."
3637
ajv compile -s "$f" --spec=draft2020 --strict=false
3738
done

schemas/dublin-core.schema.json

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,13 @@
2525
{ "type": "string", "minLength": 1 },
2626
{ "type": "array", "items": { "type": "string" }, "minItems": 1 }
2727
],
28-
"description": "Primary author(s)"
28+
"description": "Primary author(s) - simple string names for Dublin Core compatibility"
29+
},
30+
"creators": {
31+
"type": "array",
32+
"description": "Structured author data with ORCID and affiliation support",
33+
"items": { "$ref": "#/$defs/creatorObject" },
34+
"minItems": 1
2935
},
3036
"subject": {
3137
"oneOf": [
@@ -126,6 +132,32 @@
126132
"description": "License URL"
127133
}
128134
}
135+
},
136+
"creatorObject": {
137+
"type": "object",
138+
"description": "Structured creator/author information",
139+
"required": ["name"],
140+
"properties": {
141+
"name": {
142+
"type": "string",
143+
"description": "Full name of the creator",
144+
"minLength": 1
145+
},
146+
"orcid": {
147+
"type": "string",
148+
"description": "ORCID identifier (e.g., '0000-0001-2345-6789')",
149+
"pattern": "^[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{3}[0-9X]$"
150+
},
151+
"affiliation": {
152+
"type": "string",
153+
"description": "Institutional affiliation"
154+
},
155+
"email": {
156+
"type": "string",
157+
"format": "email",
158+
"description": "Contact email address"
159+
}
160+
}
129161
}
130162
}
131163
}

0 commit comments

Comments
 (0)