ODF 1.4 Extension Proposal for Zooming Presentations and AI Metadata
1. Overview
This proposal defines two independent extension modules for ODF 1.4:
Presentation Zoom Extension
(presentation-ext
)
adds support for hierarchical, zoomable presentation
canvases (similar to Prezi or PowerPoint Zoom).
AI Metadata Extension (ai-ext
)
embeds AI interaction metadata within documents to record
prompts, model versions, and generated annotations.
Each extension includes:
A namespace declaration.
XSD fragment defining new elements and attributes.
META-INF/manifest.xml
entries.
Sample XML snippets.
2. Zooming Presentation Extension (presentation-ext
)
2.1 Namespace
xmlns:presentation-ext="urn:oasis:names:tc:opendocument:xmlns:presentation-ext:1.0"
2.2 XSD Fragment
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="urn:oasis:names:tc:opendocument:xmlns:presentation-ext:1.0"
xmlns:presentation-ext="urn:oasis:names:tc:opendocument:xmlns:presentation-ext:1.0"
elementFormDefault="qualified">
<!-- A zoom frame defining a viewport rectangle -->
<xs:element name="zoom-frame">
<xs:complexType>
<xs:attribute name="target-id" type="xs:IDREF" use="required"/>
<xs:attribute name="x" type="xs:decimal" use="required"/>
<xs:attribute name="y" type="xs:decimal" use="required"/>
<xs:attribute name="width" type="xs:decimal" use="required"/>
<xs:attribute name="height" type="xs:decimal" use="required"/>
</xs:complexType>
</xs:element>
<!-- A zoom target grouping one or more slides -->
<xs:element name="zoom-target">
<xs:complexType>
<xs:sequence>
<xs:element ref="presentation:page" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="id" type="xs:ID" use="required"/>
<xs:attribute name="label" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
</xs:schema>
2.3 Manifest Entries
Add to META-INF/manifest.xml
:
<manifest:file-entry
manifest:full-path="presentation-ext.xml"
manifest:media-type="application/vnd.oasis.opendocument.presentation-ext+xml"/>
2.4 Sample Usage
In content.xml
:
<presentation:page draw:name="Overview" draw:id="page1">
<presentation-ext:zoom-frame target-id="target1"
x="0" y="0"
width="400" height="300"/>
</presentation:page>
<presentation-ext:zoom-target id="target1" label="Module A">
<presentation:page xlink:href="#page2"/>
<presentation:page xlink:href="#page3"/>
</presentation-ext:zoom-target>
3. AI Metadata Extension (ai-ext
)
3.1 Namespace
xmlns:ai-ext="urn:oasis:names:tc:opendocument:xmlns:ai-ext:1.0"
3.2 XSD Fragment
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="urn:oasis:names:tc:opendocument:xmlns:ai-ext:1.0"
xmlns:ai-ext="urn:oasis:names:tc:opendocument:xmlns:ai-ext:1.0"
elementFormDefault="qualified">
<!-- Metadata about the AI prompt that generated content -->
<xs:element name="prompt">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="timestamp" type="xs:dateTime" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<!-- Metadata about the model used -->
<xs:element name="model-version">
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="version" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<!-- AI-generated annotation or summary -->
<xs:element name="annotation">
<xs:complexType mixed="true">
<xs:attribute name="author" type="xs:string" use="optional"/>
<xs:attribute name="timestamp" type="xs:dateTime" use="required"/>
</xs:complexType>
</xs:element>
</xs:schema>
3.3 Manifest Entries
<manifest:file-entry
manifest:full-path="ai-ext.xml"
manifest:media-type="application/vnd.oasis.opendocument.ai-ext+xml"/>
3.4 Sample Usage
Within meta.xml
or
inline in content.xml
:
<office:meta>
<ai-ext:prompt timestamp="2025-07-22T14:30:00Z">
"Generate an overview slide describing project goals."
</ai-ext:prompt>
<ai-ext:model-version name="ExampleAI" version="3.2"/>
</office:meta>
<draw:frame>
<draw:text-box>
<text:p>Generated slide content goes here...</text:p>
<ai-ext:annotation author="AI-Bot-01" timestamp="2025-07-22T14:30:05Z">
"Bullet list created based on input prompt."
</ai-ext:annotation>
</draw:text-box>
</draw:frame>
4. Backwards Compatibility
Applications unaware of extensions will ignore unknown namespaces and elements, rendering only base document content.
Encourage implementers to perform fallback to linear slide view if no zoom frames are recognized.
5. Next Steps
Publish draft XSD files (presentation-ext.xsd
,
ai-ext.xsd
) under OASIS
Git repository.
Circulate proposal to ODF TC for review and comment.
Define compliance levels (e.g., ODF
1.4+Zoom
, ODF
1.4+AI
, ODF
1.4+Zoom+AI
, or
better just: ODF 1.4
extended
- like currently is).