What “Model” DITA Specializations Can Teach About Information Modelinc


Published on

The DITA Open Toolkit download site includes several demo specializations that few people discover and use. In this webinar, DITA maven, Don Day, will use these examples to highlight the role of information modelling that led to each specialization. Don will highlight the key points of how each specialization was created, or how semantics were introduced into the specialization, and a whole lot more.

Published in: Data & Analytics, Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

What “Model” DITA Specializations Can Teach About Information Modelinc

  1. 1. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. What "Model" DITA Specializations Can Teach Us About Information Modeling Don Day | donrday@contelligencegroup.com | @donrday
  2. 2. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. About Adobe 2  >74 Offices in 43 Countries  Corporate Headquarters in San Jose, California  Founded in December 1982  $4.06 billion in revenue in FY2013  >10,000 employees  Adobe donates a minimum of 1% of net income to philanthropy We simplify complicated, inefficient, and expensive workflows. We enable more engaging, compelling content. We drive greater return from digital media and marketing investments.
  3. 3. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Your Webinar Host  Maxwell Hoffmann  Adobe Global Product Evangelist, Technical Publishing (Tech Comm Suite)  Former Product Manager and Sales Training Director for Frame Technology  15 years in translation industry, working on “whatever documents walked through the door”  Trained over 1,200 people in hands-on, scalable publishing solutions  Claims to have published or touched up over 1,000,000 pages!  … and somebody here tonight knows MORE than HE does 3
  4. 4. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. About our Guest  Don Day  25 years involvement in IBM’s Information Development tools and strategy  Inventor with patents related to content and UX  A contributor and founding Chair for the OASIS DITA XML markup standard  Consultant on strategy, technology, and best practices for optimizing the value and usefulness of unstructured data  Speaker and author on emerging publishing technologies 4
  5. 5. Information Modeling from the Demo DITA* Specializations Don Day, Contelligence Group LLC * The Darwin Information Typing Architecture, an OASIS XML markup standard
  6. 6. Lead-up: High Octane Content • Adobe TechComm Central blog post: http://blogs.adobe.com/techcomm/2014/06/high-octane- documents-june-12-dita-model-webinar.html Imagine a Content Octane Rating that indicates whether content has the metadata and structural refinement necessary to keep the business engine running smoothly under load. • 85: Unleaded; Conventional text file • 87: Use of basic styling markers (HTML or Markdown) • 89: Use of semantic phrase markup (var, cite, kbd, code, etc.) • 90: Use of complex data models (e. g., structures for sections) • 91: Premium! Supports interaction with rules-driven processing • What is the Content Octane Rating (COR) of your documents? • Note also the formalized rating system, DITA Maturity Model
  7. 7. About This Presentation There is value in having structured information. How to get started? We’ll cover: 1. High level goals of an Information Model 2. Comparative overview of some sample designs from the DITA community: • What were they thinking, good or bad? • How would I organize and structure my own content? 3. Summarize a design approach you can apply for your content
  8. 8. 1. Goals of Information Models • “An Information Model is a set of principles that define how you intend to structure the information you develop.” -- JoAnn Hackos, CIDM Newsletter, Feb. 2010 • It is a contract between the document and the outside world: • For querying into the document (not just full text search) • For processing the content in ways that support the business • For publishing the content as its readers need or prefer
  9. 9. A Model Is: A representation of the underlying Information Architecture. It helps: • Builders (authors, tool vendors) to create conforming instances of the model • Occupants (readers, publishing tools) to navigate and get best use of those facilities. Photo credit: Cushing Memorial Library and Archives, Texas A&M /Foter / Creative Commons Attribution 2.0 Generic (CC BY 2.0)
  10. 10. An Information Model Promotes: • Consistency of writing style • Readers can anticipate where they want to look • Separation of formatting concerns from the model itself • Useful data types for processing: • Semantic intent for search relevance • Structure to indicate scope of relevant content • Association of business rules to the content: • Management of translation process • Automation of workflow and QA controls • Automation of backup, version control • Ability to share interoperable content with business partners, OEMs, and customers, as needed
  11. 11. Process enforcement Traditional Guides, templates, and manual verification Automated Information types, schemas and rules-driven processes
  12. 12. 2. Comparative Review • Available Cases: • XML Applications and Initiatives (at last count, 594!) • http://xml.coverpages.org/xmlApplications.html • DITA Open Toolkit plugins • Various locations, but manageable number • We will go with DITA OT-compatible designs • Methodology (CSI model): • The Lineup • Psychological Profile (What were they thinking?) • Motive (What were they trying to accomplish?) • Modus Operandi (How did they do it?) • Applicable Charges (What can we learn from mistakes and wins?)
  13. 13. The Lineup:
  14. 14. DITA Open Toolkit Plugins • For this particular lineup (a spectrum of quality): • Music: https://github.com/dita-ot/ext-plugins/tree/master/music • MsgRef: http://sourceforge.net/projects/dita-ot/files/Plug- in_message%20specialization/ • Faq: https://github.com/dita-ot/ext-plugins/tree/master/faq • eNote: https://github.com/dita-ot/ext-plugins/tree/master/enote • Known plugin repositories (some duplicates): • https://github.com/dita-ot/ext-plugins (models, extensions) • https://github.com/robander/metadita (extension points) • http://sourceforge.net/projects/dita-ot/files/ (stable releases) • https://groups.yahoo.com/neo/groups/dita-users/files/Demos/
  15. 15. Music plugin Characteristic Assessment Line of business Personal demo by Robert Anderson, DITA OT lead Apparent business driver Reduce Robert’s time spent in teaching plugin concepts; exemplar for plugin authors (DTDs and processing hooks); enable greater DITA-OT uptake Design methodology Model a typical “collector’s database” (portfolio) Use of typed data Sorting CDs/songs by categories and types; extends <simpletable> as a relational database. Usability Obvious, meaningful element names Utility For CD/song collections, mainly of personal interest; as a teaching tool, highly useful Compelling virtues Well documented; complete application with multiple outputs and even some editor support Odious flaws None https://github.com/dita-ot/ext-plugins/tree/master/music
  16. 16. Music DTD fragment • <!-- LONG NAME: Music Collection --> • <!ELEMENT songCollection (%title;, (%titlealts;)?, (%shortdesc; | %abstract;)?, • (%prolog;)?, (%songBody;)?, (%related-links;)?, • (%song-info-types;)* ) > • <!-- LONG NAME: Music Body --> • <!ELEMENT songBody ((%section; | %simpletable; | %songList;)* ) > • <!-- LONG NAME: --> • <!ELEMENT songList ((%songRow;)+) > • <!-- LONG NAME: --> • <!ELEMENT songRow ((%song;)?, (%album;)?, (%artist;)?,(%genre;)?, • (%rating;)?,(%count;)?,(%playdate;)?)> • <!-- LONG NAME: --> • <!ELEMENT song (%ph.cnt;)* > • <!-- LONG NAME: --> • <!ELEMENT album (%ph.cnt;)* > • <!-- LONG NAME: --> • <!ELEMENT artist (%ph.cnt;)* > • <!-- LONG NAME: --> • <!ELEMENT genre (%ph.cnt;)* > • <!-- LONG NAME: --> • <!ELEMENT count (%ph.cnt;)* > • • <!-- LONG NAME: --> • <!ELEMENT playdate (%ph.cnt;)* >
  17. 17. Music Instance
  18. 18. Msgref plugin Characteristic Assessment Line of business Software company (but could be hardware codes) Apparent business driver Single source for content that appears in both product interfaces and in documentation (to lower translation redundancy, for example) Design methodology Represent the Java Resource Bundle structure Use of typed data Deliberate, strongly fielded (see the msgID “title”) Usability Abbreviated element names (probably necessary due to wordiness of the domain, but an NLS issue); Difficult to write without a fielded editing tool. Utility Very good fit for the designed purpose (hands-off reuse of message strings) Compelling virtues Natural use of a “message” infotype and fields Odious flaws Development costs for authors and tools interfaces http://sourceforge.net/projects/dita-ot/files/Plug-in_message%20specialization/
  19. 19. msgRef DTD fragment • <!-- ============ Element definitions ============ --> <!ELEMENT msg ((%msgId;), (%titlealts;)?, (%msgText;), (%prolog;)?, (%msgBody;), (%related-links;)?, (%msg- info-types;)*)> <!ATTLIST msg id ID #REQUIRED conref CDATA #IMPLIED %select-atts; %localization-atts; outputclass CDATA #IMPLIED %arch-atts; domains CDATA "&included-domains;" > <!-- Specialize msgId from title, require three specialized phrases in the title --> <!ELEMENT msgId (((%msgPrefix;)*, (%msgNumber;)+, (%msgSuffix;)*)) > <!ATTLIST msgId %id-atts; %localization-atts; outputclass CDATA #IMPLIED > <!ELEMENT msgPrefix (%ph.cnt;)*> <!ATTLIST msgPrefix keyref CDATA #IMPLIED %univ-atts; outputclass CDATA #IMPLIED > <!ELEMENT msgNumber (%ph.cnt;)*> <!ATTLIST msgNumber keyref CDATA #IMPLIED %univ-atts; outputclass CDATA #IMPLIED
  20. 20. msgRef instance
  21. 21. FAQ plugin Characteristic Assessment Line of business Support organizations; call centers Apparent business driver Capture resolved issues as new best practice responses for subsequent problem calls Design methodology Assess the structure of conventional FAQs on the Web, model the design as a DITA specialization Use of typed data Rich information type (top-down) and categories; some internal semantic terms as well Usability Is functional, obvious; could be extended as needed Utility The authoring problem it addresses is already solved by knowledge base applications; better suited as a “delivery aggregator” Compelling virtues Simple, clear information model Odious flaws None; could actually be used for “DITA on the Web” https://github.com/dita-ot/ext-plugins/tree/master/faq
  22. 22. FAQ DTD fragment • <!-- ============ Element definitions ============ --> • <!ELEMENT faq ((%title;), (%titlealts;)?, (%shortdesc;)?, (%prolog;)?, (%faqbody;), (%related-links;)?, (%faq-info-types;)* )> • <!ATTLIST faq id ID #REQUIRED • conref CDATA #IMPLIED • outputclass CDATA #IMPLIED • xml:lang NMTOKEN #IMPLIED • %arch-atts; • domains CDATA "&included-domains;" • > • • <!ELEMENT faqbody ((%faqgroup;)+ | (%faqlist;))> • <!ATTLIST faqbody %univ-atts; • outputclass CDATA #IMPLIED • > • • <!ELEMENT faqgroup ((%title;), (%faqlist;))> • <!ATTLIST faqgroup spectitle CDATA #IMPLIED • %univ-atts; • outputclass CDATA #IMPLIED • > • • <!ELEMENT faqlist (%faqitem;)+> • <!ATTLIST faqlist relcolwidth CDATA #IMPLIED • keycol NMTOKEN #IMPLIED • refcols NMTOKENS #IMPLIED • %display-atts; • %univ-atts; • spectitle CDATA #IMPLIED • outputclass CDATA #IMPLIED • > • • <!ELEMENT faqitem ((%faqquest;), (%faqans;), (%faqprop;)?)> • <!ATTLIST faqitem %univ-atts; • outputclass CDATA #IMPLIED • >
  23. 23. FAQ instance
  24. 24. Enote plugin Characteristic Assessment Line of business Mimics existing email tools; demonstrates using content structures for header metadata Apparent business driver Demo only; not in response to a business need Design methodology Demonstrate “XML data islands” within standard note structures. Use of typed data Yes, for the header data islands Usability Good to see how content can be used for data; to some extent, this need is handled by DITA 1.2 + Utility Not a real application Compelling virtues Good teaching tool (like a car engine cut in half) Odious flaws No longer a best practice for embedded data; use the new <data> element https://github.com/dita-ot/ext-plugins/tree/master/enote
  25. 25. Enote DTD fragment • <!-- ============ Element definitions ============ --> • <!ELEMENT enote ((%subject;), (%prolog;)?, (%notedetail;), (%enote-info-types;)* )> • <!ATTLIST enote id ID #REQUIRED • conref CDATA #IMPLIED • outputclass CDATA #IMPLIED • xml:lang NMTOKEN #IMPLIED • %arch-atts; • domains CDATA "&included-domains;" • > • • <!ELEMENT subject (#PCDATA)*> • <!ATTLIST subject %id-atts; • outputclass CDATA #IMPLIED • > • • <!ELEMENT notedetail ((%noteheader;), (%notebody;)?)> • <!ATTLIST notedetail %univ-atts; • outputclass CDATA #IMPLIED • > • • <!ELEMENT noteheader ((%From;), (%To;)?, (%Cc;)?, (%Bcc;)?, (%Date;)?, (%delivery;)?, (%references;)?, (%attachments;)?)> • <!ATTLIST noteheader %univ-atts; • outputclass CDATA #IMPLIED • > • • <!ELEMENT From (#PCDATA | %recipient;)*> • <!ATTLIST From %univ-atts; • outputclass CDATA #IMPLIED • > •
  26. 26. Enote instance
  27. 27. 3. A Design Approach for DITA 1. Determine the business imperative 2. Identify stakeholders 3. Get sponsorship and team 4. Analysis & design: • Top-down: Identify information types and content structures • Bottom-up: Identify keywords and data types • Find a good-enough depth of concerns (Best is enemy of good) • Test usability of names (elements, attributes, value keywords) • Test usability of design in an actual XML editor • Test publishing/processing/search effectiveness • Document early; capture lessons often 5. Report up 6. “Make it so, Number One!”
  28. 28. On your own: Smaller project ideas • Recipes • Meeting minutes • Database for collections (action figures, cameras, stamps, etc.) • APIs • Unix-style “man pages” • Trading cards, baseball or Pokémon style • Neighborhood newsletter/web site • “Kleine Kinder, kleine Sorgen, große Kinder, große Sorgen.“
  29. 29. On your own: New or reused? • Port an existing design to your framework (for example, apply this design to a DITA framework: http://www.happy- monkey.net/recipes/) • Represent an existing process in the model (basically what the enote demo did) • Port existing to your framework, then augment with your process requirements
  30. 30. On your own: Considerations • Ease of authoring • Clear distinction of “things” vs “properties” • Naming: clarity vs verbosity • Balance between precision and usability: • Avoid needing to parse key data in your processor e. g. <date>June 12 2014</date> for Europeans • On the other hand, avoid too much detail: <sentence> <word>This</word> <word>is</word> <word>just</word> <word>wrong!</word> </sentence>
  31. 31. Here be Dragons! • How will your chunks be used? Each new process represents a new “application context” for the collection. • What business rules need to be supported by the process? Are they part of the application-level information model? • Roll your own or involve a consultant? • What are the costs of support and maintenance? • What are the costs of training and getting up to speed?
  32. 32. Wrapping up • Skills you may want to learn: • UML or “Data Modeling 101” • XML schema design • Editor configuration (EDDs for FrameMaker) • Web forms for simple fielded interfaces • Where to find outside help • https://groups.yahoo.com/neo/groups/dita-users/info • LinkedIn XML- and DITA-related groups • Support lists for the authoring and CMS tools you have
  33. 33. Questions!
  34. 34. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Upcoming webinars Spring/Summer 2014  June 12: What ‘Model’ DITA Specializations Can Teach Us About Information Modeling = http://adobe.ly/1rppQtY  June 20: Recording webcam video for tech comm = http://adobe.ly/1pr6WFJ  July 10, Sept 24, Oct 31 & Dec 4: 4x Series: Tech Challenges: Surfing and Diving Deep = http://adobe.ly/1rpq7Nq  2x series: Strategies for Success with RoboHelp 11 Projects Tanner Services Corp: July 24, Aug 21 = http://adobe.ly/1ptKcVn  If you’re viewing THIS recording after dates listed, go to: http://adobe.ly/Pbdp0J34
  35. 35. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Useful Links Regarding FrameMaker 12  Recorded FM Launch webinar with timeline: http://adobe.ly/1gvr4lU  FrameMaker 12 Reviewer’s Guide = http://adobe.ly/1i8kS0h  FM 12 Version Comparison Chart = http://adobe.ly/1crT6X8  FrameMaker XML Author 12 Home = http://adobe.ly/1i8lvXG  FrameMaker XML Author 12 FAQ = http://adobe.ly/1i8lVxj  FrameMaker 12 AdobeTV show = http://adobe.ly/1i8FTbe  FrameMaker XML Author 12 AdobeTV show = http://adobe.ly/1gnRUMB 35
  36. 36. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Relevant Recorded Webinars  FrameMaker 12 Feature Focus 2): 12 New Templates with Hidden Power! Guest Bernard Aschwanden of Publishing Smarter http://adobe.ly/1nBSDwU  Wow! FrameMaker 12 in just 45 minutes Maxwell Hoffmann http://adobe.ly/1sTr55A  FrameMaker 12 Feature Focus 5): Customizing Published Output to On-Line Formats Maxwell Hoffmann http://adobe.ly/1qGLVqZ 36
  37. 37. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Microsite: www.authorxml.com 37
  38. 38. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 38 Q&A
  39. 39. © 2012 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Contact Information 39 Information Don Day @donrday Email donrday@contelligencegroup.com WWW: http://contelligencegroup.com Sample: http://expedita.info/ LinkedIn: http://www.linkedin.com/in/donrday Maxwell Hoffmann Adobe Systems, Inc. Product Evangelist Blog blogs.adobe.com/techcomm Twitter @maxwellhoffmann & @AdobeTCS Email mhoffman@adobe.com Web www.adobe.com LinkedIn www.linkedin.com/in/maxwellhoffmann Facebook Adobe Technical Communication Professionals Previously recorded eSeminars: http://adobe.ly/qo3pzc Calendar of upcoming eSeminars: http://adobe.ly/xdzOYa