SlideShare una empresa de Scribd logo
1 de 17
General Architecture for
Generation of Slide
Presentations
Making slide presentations from XML
through a general framework, with a
focus on PowerPoint.
Eliot Kimber, Contrext, LLCBalisage, 2013
About the Author
• Doing SGML and XML for cough 30 years cough
• Member of the DITA Technical Committee
• Founding member of the XML Working Group
• Co-editor of HyTime standard (ISO/IEC 10744)
• Primary developer and founder of the DITA for
Publishers project
• Independent consultant focusing on DITA
analysis, design, and implementation
• Author of DITA for Practitioners, Vol 1 (XML Press)
Agenda
• General problem statement
• Framework for general XML to slide
presentation transformation
• Implementation details
• Conclusions and future work
• Demonstration
Immediate Problem: PowerPoint
from DITA
• Client requirement: generate PowerPoint
slides from DITA XML source
More General: XML to Slides
• Given arbitrary XML content...
• ...produce a slide-style presentation of some
form
• Many ways to present slides:
– PowerPoint and whatever Apple provides
– Slidey and similar HTML5-based slide
systems
– PDF, etc.
Implied Requirements
• General transformation framework
• Implies intermediate format:
– Single target from XML
– Single source to slide presentation
• Style definition and application convenience
• Relative ease of implementation and
extension
Framework for Slide Generation
• Transform through a generic slide representation
XML format
• Abstract things that are important and interesting
about slides
• Transforms from arbitrary XML vocabularies to
intermediate format
• Transforms from intermediate format to arbitrary
slide presentation formats
• Separation of concerns between source-to-slides
generally and detail of generating a specific slide
format
Framework Diagram
Implementation
• SlideSetML: intermediate format for abstract
slides
• XSLT from base source to SlideSetML
• Java to generate non-XML/HTML outputs
• XSLT to generate XML or HTML outputs
• Initial focus is PPTX from DITA XML
SimpleSlideSetML
• Purely pragmatic XML representation of slide presentation content
– Slides
– Slide masters
– Named styles for content elements
– Reasonable grouping structures (slide sets, sections, etc.)
<sld:simpleslideset
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:ns:dita4publishers.org:doctypes:simpleslideset
../simpleslideset.xsd"
xmlns:sld="urn:ns:dita4publishers.org:doctypes:simpleslideset">
<sld:prolog>
...
</sld:prolog>
<sld:styles>
...
</sld:styles>
<sld:slides>
<sld:slide>
<sld:title>
<sld:p style="Title">The Slide Title</sld:p>
</sld:title>
<sld:slidebody>
<sld:p>The slide body</sld:p>
</sld:slidebody>
</sld:slide>
...
</sld:slides>
</sld:simpleslideset>
DITA-to-SimpleSlideSet
• Produces SimpleSlideSet XML from DITA maps
and topics
• Uses DITA for Publishers and DITA Open
Toolkit DITA processing infrastructure
• Not very interesting
SimpleSlideSet to PPTX
• Apache POI Java library for generating PPTX files
• D4P Java data model for SimpleSlideSet
• Visitor pattern for operating on the
SimpleSlideSet model
• PPTX-generating visitor
• No surprise: mapping from SimpleSlideSet to
PPTX model is pretty direct
• POI handles most of the detail complexity
Implementation Challenges
• POI library is not fully baked
• Understanding the intricacies of PPTX
• Time
Conclusions
• POI made initial implementation quite easy
• Utility seems pretty obvious
• Challenges imposed by constrained
presentation space remain
Future Work
• Finish out set of slide body elements needed
for reasonable presentation options
• DITA specializations to enable appropriate
crafting of slide content
• Finish out initial implementation
• How to handle things like animation
• Output to other slide presentation formats
Demo
• These slides as presented in PowerPoint
format
• If time permits, let's look at code.
Resources
• DITA for Publishers:
http://dita4publishers.sourceforge.net
• Apache POI: http://poi.apache.org
• Me: ekimber@contrext.com,
http://contrext.com

Más contenido relacionado

La actualidad más candente (14)

INFT132 093 04 HTML and XHTML
INFT132 093 04 HTML and XHTMLINFT132 093 04 HTML and XHTML
INFT132 093 04 HTML and XHTML
 
DITA Quick Start
DITA Quick StartDITA Quick Start
DITA Quick Start
 
Xml
XmlXml
Xml
 
They Worked Before, What Happened? Understanding DITA Cross-Book Links
They Worked Before, What Happened? Understanding DITA Cross-Book Links They Worked Before, What Happened? Understanding DITA Cross-Book Links
They Worked Before, What Happened? Understanding DITA Cross-Book Links
 
Xml
XmlXml
Xml
 
Learning sparql 2012 12
Learning sparql 2012 12Learning sparql 2012 12
Learning sparql 2012 12
 
Introduction to DITA
Introduction to DITAIntroduction to DITA
Introduction to DITA
 
Intro
IntroIntro
Intro
 
6 Months PHP internship in Noida
6 Months PHP internship in Noida6 Months PHP internship in Noida
6 Months PHP internship in Noida
 
Html dom & j query
Html dom & j queryHtml dom & j query
Html dom & j query
 
Html,CSS & UI/UX design
Html,CSS & UI/UX designHtml,CSS & UI/UX design
Html,CSS & UI/UX design
 
Instant ECM with SharePoint 2010
Instant ECM with SharePoint 2010Instant ECM with SharePoint 2010
Instant ECM with SharePoint 2010
 
DITA 101
DITA 101DITA 101
DITA 101
 
RDF validation tutorial
RDF validation tutorialRDF validation tutorial
RDF validation tutorial
 

Destacado

Philippine Churches Architechture
Philippine Churches ArchitechturePhilippine Churches Architechture
Philippine Churches ArchitechtureEdison Dela Merced
 
Philippine colonial churches
Philippine colonial churchesPhilippine colonial churches
Philippine colonial churchesSugar Oziur
 
Art history 1 lec 1 pre historic art period
Art history 1 lec 1 pre historic art periodArt history 1 lec 1 pre historic art period
Art history 1 lec 1 pre historic art periodWilfred Dexter Tanedo
 
Churches of the philippines
Churches of the philippinesChurches of the philippines
Churches of the philippineskaizer fernandez
 
Philippine church history ( CFE ME 1A )
Philippine church history ( CFE ME 1A ) Philippine church history ( CFE ME 1A )
Philippine church history ( CFE ME 1A ) Jemimah Pangilinan
 
HISTORY: Philippine Architecture 2.0
HISTORY: Philippine Architecture 2.0HISTORY: Philippine Architecture 2.0
HISTORY: Philippine Architecture 2.0ArchiEducPH
 
Churches In The Philippines Ppp
Churches In The Philippines PppChurches In The Philippines Ppp
Churches In The Philippines Ppptonysantillan
 
Tausug Architecture
Tausug ArchitectureTausug Architecture
Tausug ArchitectureCarla Faner
 
Philippine society under spain
Philippine society under spainPhilippine society under spain
Philippine society under spainschool
 
10 Famous Old Churches In The Philippines
10 Famous Old Churches In The Philippines10 Famous Old Churches In The Philippines
10 Famous Old Churches In The Philippineslotrom
 
HISTORY: Architectural Character of the Spanish Period
HISTORY: Architectural Character of the Spanish PeriodHISTORY: Architectural Character of the Spanish Period
HISTORY: Architectural Character of the Spanish PeriodArchiEducPH
 
HISTORY: Philippine Architecture 1.0
HISTORY: Philippine Architecture 1.0HISTORY: Philippine Architecture 1.0
HISTORY: Philippine Architecture 1.0ArchiEducPH
 
Hum 1 philippine architecture (history)
Hum 1   philippine architecture (history)Hum 1   philippine architecture (history)
Hum 1 philippine architecture (history)Mark Ian Tagami
 
Philippine architecture ( post war period )
Philippine architecture ( post war period )Philippine architecture ( post war period )
Philippine architecture ( post war period )pupoy
 
The Philippines under Spanish rule
The Philippines under Spanish ruleThe Philippines under Spanish rule
The Philippines under Spanish ruleIloveWatty
 
HISTORY: Philippine Architecture (Prehistoric)
HISTORY: Philippine Architecture (Prehistoric)HISTORY: Philippine Architecture (Prehistoric)
HISTORY: Philippine Architecture (Prehistoric)ArchiEducPH
 
Pre-Spanish Architecture Presentation
Pre-Spanish Architecture PresentationPre-Spanish Architecture Presentation
Pre-Spanish Architecture PresentationAira Altovar
 

Destacado (20)

Philippine Churches Architechture
Philippine Churches ArchitechturePhilippine Churches Architechture
Philippine Churches Architechture
 
Philippine colonial churches
Philippine colonial churchesPhilippine colonial churches
Philippine colonial churches
 
Art history 1 lec 1 pre historic art period
Art history 1 lec 1 pre historic art periodArt history 1 lec 1 pre historic art period
Art history 1 lec 1 pre historic art period
 
Churches of the philippines
Churches of the philippinesChurches of the philippines
Churches of the philippines
 
Philippine church history ( CFE ME 1A )
Philippine church history ( CFE ME 1A ) Philippine church history ( CFE ME 1A )
Philippine church history ( CFE ME 1A )
 
HISTORY: Philippine Architecture 2.0
HISTORY: Philippine Architecture 2.0HISTORY: Philippine Architecture 2.0
HISTORY: Philippine Architecture 2.0
 
Churches In The Philippines Ppp
Churches In The Philippines PppChurches In The Philippines Ppp
Churches In The Philippines Ppp
 
Tausug Architecture
Tausug ArchitectureTausug Architecture
Tausug Architecture
 
Philippine society under spain
Philippine society under spainPhilippine society under spain
Philippine society under spain
 
10 Famous Old Churches In The Philippines
10 Famous Old Churches In The Philippines10 Famous Old Churches In The Philippines
10 Famous Old Churches In The Philippines
 
Pre spanish
Pre spanishPre spanish
Pre spanish
 
HISTORY: Architectural Character of the Spanish Period
HISTORY: Architectural Character of the Spanish PeriodHISTORY: Architectural Character of the Spanish Period
HISTORY: Architectural Character of the Spanish Period
 
HISTORY: Philippine Architecture 1.0
HISTORY: Philippine Architecture 1.0HISTORY: Philippine Architecture 1.0
HISTORY: Philippine Architecture 1.0
 
Hum 1 philippine architecture (history)
Hum 1   philippine architecture (history)Hum 1   philippine architecture (history)
Hum 1 philippine architecture (history)
 
Philippine architecture ( post war period )
Philippine architecture ( post war period )Philippine architecture ( post war period )
Philippine architecture ( post war period )
 
The Philippines under Spanish rule
The Philippines under Spanish ruleThe Philippines under Spanish rule
The Philippines under Spanish rule
 
The Spanish Period
The Spanish PeriodThe Spanish Period
The Spanish Period
 
HISTORY: Philippine Architecture (Prehistoric)
HISTORY: Philippine Architecture (Prehistoric)HISTORY: Philippine Architecture (Prehistoric)
HISTORY: Philippine Architecture (Prehistoric)
 
Maranao
MaranaoMaranao
Maranao
 
Pre-Spanish Architecture Presentation
Pre-Spanish Architecture PresentationPre-Spanish Architecture Presentation
Pre-Spanish Architecture Presentation
 

Similar a General Architecture for Generation of Slide Presentations

XSLT Magic Tricks with DITA and FrameMaker
XSLT Magic Tricks with DITA and FrameMakerXSLT Magic Tricks with DITA and FrameMaker
XSLT Magic Tricks with DITA and FrameMakerContrext Solutions
 
Introduction to Sightly and Sling Models
Introduction to Sightly and Sling ModelsIntroduction to Sightly and Sling Models
Introduction to Sightly and Sling ModelsStefano Celentano
 
Getting Started With Xsl Templates
Getting Started With Xsl TemplatesGetting Started With Xsl Templates
Getting Started With Xsl TemplatesWill Trillich
 
TYPO3 Transition Tool
TYPO3 Transition ToolTYPO3 Transition Tool
TYPO3 Transition Toolcrus0e
 
Stencil the time for vanilla web components has arrived
Stencil the time for vanilla web components has arrivedStencil the time for vanilla web components has arrived
Stencil the time for vanilla web components has arrivedGil Fink
 
Face off apex template and themes - 3.0 - k-scope11
Face off   apex template and themes - 3.0 - k-scope11Face off   apex template and themes - 3.0 - k-scope11
Face off apex template and themes - 3.0 - k-scope11Christian Rokitta
 
How to Write Custom Modules for PHP-based E-Commerce Systems (2011)
How to Write Custom Modules for PHP-based E-Commerce Systems (2011)How to Write Custom Modules for PHP-based E-Commerce Systems (2011)
How to Write Custom Modules for PHP-based E-Commerce Systems (2011)Roman Zenner
 
Using js link and display templates
Using js link and display templatesUsing js link and display templates
Using js link and display templatesPaul Hunt
 
Jdom how it works & how it opened the java process
Jdom how it works & how it opened the java processJdom how it works & how it opened the java process
Jdom how it works & how it opened the java processHicham QAISSI
 
"Getting Started with XSLT" presentation slides
"Getting Started with XSLT" presentation slides"Getting Started with XSLT" presentation slides
"Getting Started with XSLT" presentation slidesRussell Ward
 
Handlebars and Require.js
Handlebars and Require.jsHandlebars and Require.js
Handlebars and Require.jsIvano Malavolta
 

Similar a General Architecture for Generation of Slide Presentations (20)

XSLT Magic Tricks with DITA and FrameMaker
XSLT Magic Tricks with DITA and FrameMakerXSLT Magic Tricks with DITA and FrameMaker
XSLT Magic Tricks with DITA and FrameMaker
 
Introduction to Sightly and Sling Models
Introduction to Sightly and Sling ModelsIntroduction to Sightly and Sling Models
Introduction to Sightly and Sling Models
 
Getting Started With Xsl Templates
Getting Started With Xsl TemplatesGetting Started With Xsl Templates
Getting Started With Xsl Templates
 
TYPO3 Transition Tool
TYPO3 Transition ToolTYPO3 Transition Tool
TYPO3 Transition Tool
 
ow.ppt
ow.pptow.ppt
ow.ppt
 
ow.ppt
ow.pptow.ppt
ow.ppt
 
Ow
OwOw
Ow
 
Stencil the time for vanilla web components has arrived
Stencil the time for vanilla web components has arrivedStencil the time for vanilla web components has arrived
Stencil the time for vanilla web components has arrived
 
Face off apex template and themes - 3.0 - k-scope11
Face off   apex template and themes - 3.0 - k-scope11Face off   apex template and themes - 3.0 - k-scope11
Face off apex template and themes - 3.0 - k-scope11
 
How to Write Custom Modules for PHP-based E-Commerce Systems (2011)
How to Write Custom Modules for PHP-based E-Commerce Systems (2011)How to Write Custom Modules for PHP-based E-Commerce Systems (2011)
How to Write Custom Modules for PHP-based E-Commerce Systems (2011)
 
Plantilla oracle
Plantilla oraclePlantilla oracle
Plantilla oracle
 
Markup For Dummies (Russ Ward)
Markup For Dummies (Russ Ward)Markup For Dummies (Russ Ward)
Markup For Dummies (Russ Ward)
 
Linq To XML Overview
Linq To XML OverviewLinq To XML Overview
Linq To XML Overview
 
Mwml
MwmlMwml
Mwml
 
Using js link and display templates
Using js link and display templatesUsing js link and display templates
Using js link and display templates
 
Jdom how it works & how it opened the java process
Jdom how it works & how it opened the java processJdom how it works & how it opened the java process
Jdom how it works & how it opened the java process
 
dmBridge & dmMonocle
dmBridge & dmMonocledmBridge & dmMonocle
dmBridge & dmMonocle
 
Ie9 overview
Ie9 overviewIe9 overview
Ie9 overview
 
"Getting Started with XSLT" presentation slides
"Getting Started with XSLT" presentation slides"Getting Started with XSLT" presentation slides
"Getting Started with XSLT" presentation slides
 
Handlebars and Require.js
Handlebars and Require.jsHandlebars and Require.js
Handlebars and Require.js
 

Más de Contrext Solutions

Stupid DITA Tricks: After-The-Fact Specialization: Treating Aircraft Manuals ...
Stupid DITA Tricks:After-The-Fact Specialization: Treating Aircraft Manuals ...Stupid DITA Tricks:After-The-Fact Specialization: Treating Aircraft Manuals ...
Stupid DITA Tricks: After-The-Fact Specialization: Treating Aircraft Manuals ...Contrext Solutions
 
Loose Leaf Publishing Using Antenna House Formatter and CSS for Pagination
Loose Leaf Publishing Using Antenna House Formatter and CSS for PaginationLoose Leaf Publishing Using Antenna House Formatter and CSS for Pagination
Loose Leaf Publishing Using Antenna House Formatter and CSS for PaginationContrext Solutions
 
Definition of the DITA Glossary: Or How to Get Some Cool Glossary Tools for Free
Definition of the DITA Glossary: Or How to Get Some Cool Glossary Tools for FreeDefinition of the DITA Glossary: Or How to Get Some Cool Glossary Tools for Free
Definition of the DITA Glossary: Or How to Get Some Cool Glossary Tools for FreeContrext Solutions
 
Twisted XSL Tricks: Column Switching for FOP
Twisted XSL Tricks: Column Switching for FOPTwisted XSL Tricks: Column Switching for FOP
Twisted XSL Tricks: Column Switching for FOPContrext Solutions
 
Can I Have a Word: Managing Shared Glossaries and References to Terms With DITA
Can I Have a Word: Managing Shared Glossaries and References to Terms With DITACan I Have a Word: Managing Shared Glossaries and References to Terms With DITA
Can I Have a Word: Managing Shared Glossaries and References to Terms With DITAContrext Solutions
 
Ki, Qi, Key: The Way of DITA Harmony With Keys and Key References
Ki, Qi, Key: The Way of DITA Harmony With Keys and Key ReferencesKi, Qi, Key: The Way of DITA Harmony With Keys and Key References
Ki, Qi, Key: The Way of DITA Harmony With Keys and Key ReferencesContrext Solutions
 
Content Management on Zero Budget: DITA for Small Teams
Content Management on Zero Budget: DITA for Small TeamsContent Management on Zero Budget: DITA for Small Teams
Content Management on Zero Budget: DITA for Small TeamsContrext Solutions
 
Using CSS Paging to Render DITA Documents
Using CSS Paging to Render DITA DocumentsUsing CSS Paging to Render DITA Documents
Using CSS Paging to Render DITA DocumentsContrext Solutions
 
Locale-Aware Sorting and Text Handling in the Open Toolkit
Locale-Aware Sorting and Text Handling in the Open ToolkitLocale-Aware Sorting and Text Handling in the Open Toolkit
Locale-Aware Sorting and Text Handling in the Open ToolkitContrext Solutions
 
DITA for Small Teams Workshop (Tekom 2017)
DITA for Small Teams Workshop (Tekom 2017)DITA for Small Teams Workshop (Tekom 2017)
DITA for Small Teams Workshop (Tekom 2017)Contrext Solutions
 
Can I Have a Word: Managing Shared Glossaries and References to Terms With DITA
Can I Have a Word: Managing Shared Glossaries and References to Terms With DITACan I Have a Word: Managing Shared Glossaries and References to Terms With DITA
Can I Have a Word: Managing Shared Glossaries and References to Terms With DITAContrext Solutions
 
FrameMaker and the DITA Open Toolkit
FrameMaker and the DITA Open ToolkitFrameMaker and the DITA Open Toolkit
FrameMaker and the DITA Open ToolkitContrext Solutions
 
DITA Reuse Challenges and Response
DITA Reuse Challenges and ResponseDITA Reuse Challenges and Response
DITA Reuse Challenges and ResponseContrext Solutions
 
Managing Multiple Open Toolkit Configurations Using git Lightning Talk
Managing Multiple Open Toolkit Configurations Using git Lightning TalkManaging Multiple Open Toolkit Configurations Using git Lightning Talk
Managing Multiple Open Toolkit Configurations Using git Lightning TalkContrext Solutions
 
DITA OT Day 2015 Lightning Talk On The DITA Community Project
DITA OT Day 2015 Lightning Talk On The DITA Community ProjectDITA OT Day 2015 Lightning Talk On The DITA Community Project
DITA OT Day 2015 Lightning Talk On The DITA Community ProjectContrext Solutions
 
No Ki Magic: Managing Complex DITA Hyperdocuments
No Ki Magic: Managing Complex DITA HyperdocumentsNo Ki Magic: Managing Complex DITA Hyperdocuments
No Ki Magic: Managing Complex DITA HyperdocumentsContrext Solutions
 
Poster: Cross-Document Linking in DITA
Poster: Cross-Document Linking in DITAPoster: Cross-Document Linking in DITA
Poster: Cross-Document Linking in DITAContrext Solutions
 
Managing Deliverable-Specific Link Anchors: New Suggested Best Practice for Keys
Managing Deliverable-Specific Link Anchors: New Suggested Best Practice for KeysManaging Deliverable-Specific Link Anchors: New Suggested Best Practice for Keys
Managing Deliverable-Specific Link Anchors: New Suggested Best Practice for KeysContrext Solutions
 

Más de Contrext Solutions (20)

Stupid DITA Tricks: After-The-Fact Specialization: Treating Aircraft Manuals ...
Stupid DITA Tricks:After-The-Fact Specialization: Treating Aircraft Manuals ...Stupid DITA Tricks:After-The-Fact Specialization: Treating Aircraft Manuals ...
Stupid DITA Tricks: After-The-Fact Specialization: Treating Aircraft Manuals ...
 
Loose Leaf Publishing Using Antenna House Formatter and CSS for Pagination
Loose Leaf Publishing Using Antenna House Formatter and CSS for PaginationLoose Leaf Publishing Using Antenna House Formatter and CSS for Pagination
Loose Leaf Publishing Using Antenna House Formatter and CSS for Pagination
 
Definition of the DITA Glossary: Or How to Get Some Cool Glossary Tools for Free
Definition of the DITA Glossary: Or How to Get Some Cool Glossary Tools for FreeDefinition of the DITA Glossary: Or How to Get Some Cool Glossary Tools for Free
Definition of the DITA Glossary: Or How to Get Some Cool Glossary Tools for Free
 
Twisted XSL Tricks: Column Switching for FOP
Twisted XSL Tricks: Column Switching for FOPTwisted XSL Tricks: Column Switching for FOP
Twisted XSL Tricks: Column Switching for FOP
 
Can I Have a Word: Managing Shared Glossaries and References to Terms With DITA
Can I Have a Word: Managing Shared Glossaries and References to Terms With DITACan I Have a Word: Managing Shared Glossaries and References to Terms With DITA
Can I Have a Word: Managing Shared Glossaries and References to Terms With DITA
 
Ki, Qi, Key: The Way of DITA Harmony With Keys and Key References
Ki, Qi, Key: The Way of DITA Harmony With Keys and Key ReferencesKi, Qi, Key: The Way of DITA Harmony With Keys and Key References
Ki, Qi, Key: The Way of DITA Harmony With Keys and Key References
 
Content Management on Zero Budget: DITA for Small Teams
Content Management on Zero Budget: DITA for Small TeamsContent Management on Zero Budget: DITA for Small Teams
Content Management on Zero Budget: DITA for Small Teams
 
Using CSS Paging to Render DITA Documents
Using CSS Paging to Render DITA DocumentsUsing CSS Paging to Render DITA Documents
Using CSS Paging to Render DITA Documents
 
Locale-Aware Sorting and Text Handling in the Open Toolkit
Locale-Aware Sorting and Text Handling in the Open ToolkitLocale-Aware Sorting and Text Handling in the Open Toolkit
Locale-Aware Sorting and Text Handling in the Open Toolkit
 
DITA for Small Teams Workshop (Tekom 2017)
DITA for Small Teams Workshop (Tekom 2017)DITA for Small Teams Workshop (Tekom 2017)
DITA for Small Teams Workshop (Tekom 2017)
 
Can I Have a Word: Managing Shared Glossaries and References to Terms With DITA
Can I Have a Word: Managing Shared Glossaries and References to Terms With DITACan I Have a Word: Managing Shared Glossaries and References to Terms With DITA
Can I Have a Word: Managing Shared Glossaries and References to Terms With DITA
 
FrameMaker and the DITA Open Toolkit
FrameMaker and the DITA Open ToolkitFrameMaker and the DITA Open Toolkit
FrameMaker and the DITA Open Toolkit
 
DITA Reuse Challenges and Response
DITA Reuse Challenges and ResponseDITA Reuse Challenges and Response
DITA Reuse Challenges and Response
 
Managing Multiple Open Toolkit Configurations Using git Lightning Talk
Managing Multiple Open Toolkit Configurations Using git Lightning TalkManaging Multiple Open Toolkit Configurations Using git Lightning Talk
Managing Multiple Open Toolkit Configurations Using git Lightning Talk
 
DITA OT Day 2015 Lightning Talk On The DITA Community Project
DITA OT Day 2015 Lightning Talk On The DITA Community ProjectDITA OT Day 2015 Lightning Talk On The DITA Community Project
DITA OT Day 2015 Lightning Talk On The DITA Community Project
 
Why Is DITA So Hard?
Why Is DITA So Hard?Why Is DITA So Hard?
Why Is DITA So Hard?
 
No Ki Magic: Managing Complex DITA Hyperdocuments
No Ki Magic: Managing Complex DITA HyperdocumentsNo Ki Magic: Managing Complex DITA Hyperdocuments
No Ki Magic: Managing Complex DITA Hyperdocuments
 
Poster: Cross-Document Linking in DITA
Poster: Cross-Document Linking in DITAPoster: Cross-Document Linking in DITA
Poster: Cross-Document Linking in DITA
 
DITA for Small Teams
DITA for Small TeamsDITA for Small Teams
DITA for Small Teams
 
Managing Deliverable-Specific Link Anchors: New Suggested Best Practice for Keys
Managing Deliverable-Specific Link Anchors: New Suggested Best Practice for KeysManaging Deliverable-Specific Link Anchors: New Suggested Best Practice for Keys
Managing Deliverable-Specific Link Anchors: New Suggested Best Practice for Keys
 

Último

Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 

Último (20)

Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 

General Architecture for Generation of Slide Presentations

  • 1. General Architecture for Generation of Slide Presentations Making slide presentations from XML through a general framework, with a focus on PowerPoint. Eliot Kimber, Contrext, LLCBalisage, 2013
  • 2. About the Author • Doing SGML and XML for cough 30 years cough • Member of the DITA Technical Committee • Founding member of the XML Working Group • Co-editor of HyTime standard (ISO/IEC 10744) • Primary developer and founder of the DITA for Publishers project • Independent consultant focusing on DITA analysis, design, and implementation • Author of DITA for Practitioners, Vol 1 (XML Press)
  • 3. Agenda • General problem statement • Framework for general XML to slide presentation transformation • Implementation details • Conclusions and future work • Demonstration
  • 4. Immediate Problem: PowerPoint from DITA • Client requirement: generate PowerPoint slides from DITA XML source
  • 5. More General: XML to Slides • Given arbitrary XML content... • ...produce a slide-style presentation of some form • Many ways to present slides: – PowerPoint and whatever Apple provides – Slidey and similar HTML5-based slide systems – PDF, etc.
  • 6. Implied Requirements • General transformation framework • Implies intermediate format: – Single target from XML – Single source to slide presentation • Style definition and application convenience • Relative ease of implementation and extension
  • 7. Framework for Slide Generation • Transform through a generic slide representation XML format • Abstract things that are important and interesting about slides • Transforms from arbitrary XML vocabularies to intermediate format • Transforms from intermediate format to arbitrary slide presentation formats • Separation of concerns between source-to-slides generally and detail of generating a specific slide format
  • 9. Implementation • SlideSetML: intermediate format for abstract slides • XSLT from base source to SlideSetML • Java to generate non-XML/HTML outputs • XSLT to generate XML or HTML outputs • Initial focus is PPTX from DITA XML
  • 10. SimpleSlideSetML • Purely pragmatic XML representation of slide presentation content – Slides – Slide masters – Named styles for content elements – Reasonable grouping structures (slide sets, sections, etc.) <sld:simpleslideset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:ns:dita4publishers.org:doctypes:simpleslideset ../simpleslideset.xsd" xmlns:sld="urn:ns:dita4publishers.org:doctypes:simpleslideset"> <sld:prolog> ... </sld:prolog> <sld:styles> ... </sld:styles> <sld:slides> <sld:slide> <sld:title> <sld:p style="Title">The Slide Title</sld:p> </sld:title> <sld:slidebody> <sld:p>The slide body</sld:p> </sld:slidebody> </sld:slide> ... </sld:slides> </sld:simpleslideset>
  • 11. DITA-to-SimpleSlideSet • Produces SimpleSlideSet XML from DITA maps and topics • Uses DITA for Publishers and DITA Open Toolkit DITA processing infrastructure • Not very interesting
  • 12. SimpleSlideSet to PPTX • Apache POI Java library for generating PPTX files • D4P Java data model for SimpleSlideSet • Visitor pattern for operating on the SimpleSlideSet model • PPTX-generating visitor • No surprise: mapping from SimpleSlideSet to PPTX model is pretty direct • POI handles most of the detail complexity
  • 13. Implementation Challenges • POI library is not fully baked • Understanding the intricacies of PPTX • Time
  • 14. Conclusions • POI made initial implementation quite easy • Utility seems pretty obvious • Challenges imposed by constrained presentation space remain
  • 15. Future Work • Finish out set of slide body elements needed for reasonable presentation options • DITA specializations to enable appropriate crafting of slide content • Finish out initial implementation • How to handle things like animation • Output to other slide presentation formats
  • 16. Demo • These slides as presented in PowerPoint format • If time permits, let's look at code.
  • 17. Resources • DITA for Publishers: http://dita4publishers.sourceforge.net • Apache POI: http://poi.apache.org • Me: ekimber@contrext.com, http://contrext.com