OpenDocument Version 1.4 comments, proposals

3 views
Skip to first unread message

Edmund Laugasson

unread,
Jul 22, 2025, 11:01:59 AMJul 22
to Technical-Comm...@oasis-open.org
Dear OASIS TC members,

ODF 1.4 Extension Proposal for Zooming Presentations and AI Metadata

1. Overview

This proposal defines two independent extension modules for ODF 1.4:

  1. Presentation Zoom Extension (presentation-ext) adds support for hierarchical, zoomable presentation canvases (similar to Prezi or PowerPoint Zoom).

  2. 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

  1. Publish draft XSD files (presentation-ext.xsd, ai-ext.xsd) under OASIS Git repository.

  2. Circulate proposal to ODF TC for review and comment.

  3. Define compliance levels (e.g., ODF 1.4+Zoom, ODF 1.4+AIODF 1.4+Zoom+AI, or better just: ODF 1.4 extended - like currently is).

---
Best Regards,
Edmund Laugasson

Reply all
Reply to author
Forward
0 new messages