interoperable extensibility through dita topic and domain types

33
IBM User Technologies | April 2005 | © 2005 IBM Corporation Interoperable Extensibility Through DITA Topic and Domain Types Erik Hennum IBM DITA Domains Architect

Upload: sophia-strong

Post on 02-Jan-2016

32 views

Category:

Documents


0 download

DESCRIPTION

Interoperable Extensibility Through DITA Topic and Domain Types. Erik Hennum IBM DITA Domains Architect. The discussion ahead. What is DITA? – Why was DITA developed? What is specialization? – How do you extend DITA? What are Topic types? Domain types? Maps and map domains?. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Interoperable Extensibility Through DITA Topic and Domain Types

IBM User Technologies

| April 2005 | © 2005 IBM Corporation

Interoperable ExtensibilityThrough DITA Topic and Domain Types

Erik HennumIBM DITA Domains Architect

Page 2: Interoperable Extensibility Through DITA Topic and Domain Types

IBM User Technologies

Extensibility Through DITA Topic and Domain Types © 2005 IBM Corporation2

The discussion aheadThe discussion ahead

What is DITA? – Why was DITA developed?

What is specialization? – How do you extend DITA?

What areTopic types?

Domain types?

Maps and map domains?

Page 3: Interoperable Extensibility Through DITA Topic and Domain Types

IBM User Technologies

Extensibility Through DITA Topic and Domain Types © 2005 IBM Corporation3

What is DITA?What is DITA?

Page 4: Interoperable Extensibility Through DITA Topic and Domain Types

IBM User Technologies

Extensibility Through DITA Topic and Domain Types © 2005 IBM Corporation4

History of Markup

1970s:ISIL

1980s:BookMaster

IPF

1990s:SGML, HTML

2000+XML-based semantics

Need for Change

Printed Books

Limited reuseSingle purpose

Printed and onlineBooks, online help

Monolithic Book-Centered DTD

Shorter cyclesFewer people,

Decreasing learning curves, Faster, better, cheaper

Components,Multiplatform,

Integrated systems

Web-deployed products Partner and OEM use of

information

Online information,Webs, printable &

Printed books

Information Architecture

Page 5: Interoperable Extensibility Through DITA Topic and Domain Types

IBM User Technologies

Extensibility Through DITA Topic and Domain Types © 2005 IBM Corporation5

The Vision (1998/1999)

Single source

XML topic

1

XML topic

2

XML topic

3

XML topic

4

1

2

3

2

3

4

Multiple contexts

Information web A:

1, 2, 3

Print A:1, 2

Information web B:

2, 3, 4

Multiple formats

Page 6: Interoperable Extensibility Through DITA Topic and Domain Types

IBM User Technologies

Extensibility Through DITA Topic and Domain Types © 2005 IBM Corporation6

Core design principles of DITA

Topic orientation• Each content object covers one subject for a specific purpose

Topic granularity• Content objects are assembled into information sets

Strong typing• Types enforce structures specific to the content semantics

Type specialization• Types extend more basic types to model new kinds of information

Common base class• The top-level generic type provides interoperability and fallback for all topics

Page 7: Interoperable Extensibility Through DITA Topic and Domain Types

IBM User Technologies

Extensibility Through DITA Topic and Domain Types © 2005 IBM Corporation7

What is DITA specialization?What is DITA specialization?

Page 8: Interoperable Extensibility Through DITA Topic and Domain Types

IBM User Technologies

Extensibility Through DITA Topic and Domain Types © 2005 IBM Corporation8

The motivation for specialization

The realization• Generic XML solutions are not specific to your needs

• Knowledge representation is strongly related to industry, community, and organization culture

The existing tradeoff• The more useful your XML markup is to you, the more it will cost you

and the fewer people will share the costs

Page 9: Interoperable Extensibility Through DITA Topic and Domain Types

IBM User Technologies

Extensibility Through DITA Topic and Domain Types © 2005 IBM Corporation9

Specializing a topic type

The specialized topic type for procedural instructions works toGuide the writerEnforce the structureDeclare the semanticsIn short, make the content easier to understand, validate, and process

General topic<topic id="installstorage"> <title>Installing a hard drive</title> <body> <ol> <li><ph>Unscrew the cover.</ph> <itemgroup>The drive bay...</itemgroup> </li> <li><ph>Insert the drive...</ph> <itemgroup>If you feel...</itemgroup> </step> </ol> </body></topic>

Specialized task<task id="installstorage"> <title>Installing a hard drive</title> <taskbody> <steps> <step><cmd>Unscrew the cover.</cmd> <stepresult>The drive...</stepresult> </step> <step><cmd>Insert the drive...</cmd> <info>If you feel resistance...</info> </step> </steps> </taskbody></task>

Page 10: Interoperable Extensibility Through DITA Topic and Domain Types

IBM User Technologies

Extensibility Through DITA Topic and Domain Types © 2005 IBM Corporation10

Specialization rules

Design constraint – extension by restrictionThe content model must be a specialized subset of the base modelAs a result, every instance of the derived model is valid for the base modelA good fit for discourse because text tends toward loose content models

Declare the specialization ancestry with the class attribute in the schemaDTD: <!ATTLIST steps class CDATA "- topic/ol task/steps ">XML Schema: <xs:attribute ref="class" default="- topic/ol task/steps "/>

The ol element in the topic module is the base of the steps element in the task module

Process by matching the element type in the class attributeXSLT idiom: <xsl:template match="*[contains(@class,' topic/ol ')]">

Specializations can rely on the base processing or override.

Page 11: Interoperable Extensibility Through DITA Topic and Domain Types

IBM User Technologies

Extensibility Through DITA Topic and Domain Types © 2005 IBM Corporation11

Implementing a specialized <steps> element

The class attribute identifies the module and type ancestry

Base processing applies by default

The specialization can override base processing

topic design module:<!ELEMENT ol (%li;)+>...<!ATTLIST ol class CDATA "- topic/ol "><!ATTLIST li class CDATA "- topic/li ">

task design module:<!ELEMENT steps (%step;)+>...<!ATTLIST steps class CDATA "- topic/ol task/steps "><!ATTLIST step class CDATA "- topic/li task/step ">

topic processing module:<xsl:template match="*[contains(@class,' topic/ol ')]"> ...

task processing module:<xsl:template match="*[contains(@class,' task/steps ')]"> ...

Every element has an architectural class attribute

Page 12: Interoperable Extensibility Through DITA Topic and Domain Types

IBM User Technologies

Extensibility Through DITA Topic and Domain Types © 2005 IBM Corporation12

Generalizing to the base type (casting)

An automated process can preserve the content but convert from specialized to general markup:

To send content to someone who doesn’t have your specialized markup

To retire specialized markup but keep the content

To provide content to a tool that understands only element names and not the DITA class attribute

Tutorial

my types

MaintenanceProcedure

your types

Task

our types

Page 13: Interoperable Extensibility Through DITA Topic and Domain Types

IBM User Technologies

Extensibility Through DITA Topic and Domain Types © 2005 IBM Corporation13

What is a DITA topic type?What is a DITA topic type?

Page 14: Interoperable Extensibility Through DITA Topic and Domain Types

IBM User Technologies

Extensibility Through DITA Topic and Domain Types © 2005 IBM Corporation14

Specialization hierarchy for topic types

Topic

Concept Task

Tutorial

Java APIC++ API

Command Message

Reference

API

The topic type provides the coarse structure and semantics for content

Eventannouncement

Insuranceclaim form

Use casespecification

or

or

or. . .

Page 15: Interoperable Extensibility Through DITA Topic and Domain Types

IBM User Technologies

Extensibility Through DITA Topic and Domain Types © 2005 IBM Corporation15

Parts of a DITA topic

<task id="installstorage">

<title>Installing a hard drive</title>

<shortdesc>You open the box and insert the drive.</shortdesc>

<prolog><metadata>

<audience type="administrator"/>

<keywords>

<indexterm>hard drive</indexterm>

<indexterm>disk drive</indexterm>

</keywords>

</metadata></prolog>

<taskbody>

<steps>

<step><cmd>Unscrew the cover.</cmd>

<stepresult>The drive bay is exposed.</stepresult>

</step>

<step><cmd>Insert the drive into the drive bay.</cmd>

<info>If you feel resistance, try another angle.</info>

</step>

</steps>

</taskbody>

</task>

Identifier and labels

Processable properties

Content structure for the topic type

Page 16: Interoperable Extensibility Through DITA Topic and Domain Types

IBM User Technologies

Extensibility Through DITA Topic and Domain Types © 2005 IBM Corporation16

A hybrid topic with both data and discourse content

<enote id="note1">

<subject>How to compose an eNote</subject>

<notedetail>

<noteheader>

<From>

<recipient href="[email protected]"/>

</From>

<To>

<recipient href="[email protected]"/>

</To>

...

</noteheader>

<notebody>

<p>To compose an eNote, you ...</p>

...

</notebody>

</notedetail>

</enote>

Specialized data

Discourse

Page 17: Interoperable Extensibility Through DITA Topic and Domain Types

IBM User Technologies

Extensibility Through DITA Topic and Domain Types © 2005 IBM Corporation17

What is a DITA vocabulary domain?What is a DITA vocabulary domain?

Page 18: Interoperable Extensibility Through DITA Topic and Domain Types

IBM User Technologies

Extensibility Through DITA Topic and Domain Types © 2005 IBM Corporation18

Specialization of vocabulary domains

Use a domain in many topic typesDefines metadata properties, kinds of names, or text structure for a subject area

Fine-grained structure and semantics

DITA core domainsprogramming: apiname, codeph, codeblock, …

software: cmdname, filepath, varname, …

user interface: wintitle, uicontrol, …

highlighted phrases: b, i, u, sup, sub, …

Create new domains for subject areasTelco, Semiconductor, Financial, Insurance, Retail, Legal, Life Sciences, …

Task topic typeSoftware domain

UI domain

Programming domain

Highlighting domain

Domains as blades for topic typesDomain inheritance

UI domain

Web UI domain

topic elements

Page 19: Interoperable Extensibility Through DITA Topic and Domain Types

IBM User Technologies

Extensibility Through DITA Topic and Domain Types © 2005 IBM Corporation19

Pluggability of topic and domain modules

To create a document type, you plug in specialization modules• For financial services software, you might include

• The task type• The UI domain• A new domain that you created for the vocabulary of the financial industry• The highlighting domain – if you are a pragmatist

Task topic type

Financial domain

UI domain

Highlighting domain

?

Page 20: Interoperable Extensibility Through DITA Topic and Domain Types

IBM User Technologies

Extensibility Through DITA Topic and Domain Types © 2005 IBM Corporation20

Example of some DITA domain phrases

<task id="amortizingloan">

<title>Amortizing the loan</title>

...

<taskbody>

<steps>

<step><cmd>Choose the Amortizer menu item</cmd>

<stepresult>The <wintitle>Amortizer</wintitle>

window displays.</stepresult>

</step>

<step><cmd>Enter the <loanfactor>term</loanfactor>.</cmd>

<info>You <b>must</b> choose one of the options.</info>

</step>

</steps>

</taskbody>

</task>

UI domain

Financial domain (possible future)

Highlighting domain

Page 21: Interoperable Extensibility Through DITA Topic and Domain Types

IBM User Technologies

Extensibility Through DITA Topic and Domain Types © 2005 IBM Corporation21

What is a DITA map?What is a DITA map?

Page 22: Interoperable Extensibility Through DITA Topic and Domain Types

IBM User Technologies

Extensibility Through DITA Topic and Domain Types © 2005 IBM Corporation22

Topics reused in information setsTopics reused in information sets

Topic 1

Topic 4

Topic 2

Topic 3

Deliverables select topics from a poolDeliverable 1 uses topics 1 and 4Deliverable 2 uses topics 2 and 4Neither deliverable uses topic 3

Page 23: Interoperable Extensibility Through DITA Topic and Domain Types

IBM User Technologies

Extensibility Through DITA Topic and Domain Types © 2005 IBM Corporation23

Working with DITA maps

A DITA map applies context to a set of topicsAssembles an information set for a purpose such as a deliverable

Supports reuse of topics in different structures in multiple information sets

Sets the contextual properties of topicsTitles and metadata

A topic can be advanced in one set and basic in another

Specifies relationships between the topics

Eclipse help

JavaHelp

HTMLHelp

web pages

books

topics map deliverables

Page 24: Interoperable Extensibility Through DITA Topic and Domain Types

IBM User Technologies

Extensibility Through DITA Topic and Domain Types © 2005 IBM Corporation24

Relationships between topics managed in a map

Hierarchical structuresBook nesting or web or help navigation – but also parts explosion, …

Group structuresRelated links – but also any distributed or sequential association

Tabular structuresRelated links – but also any matrixed association between topics

hierarchy group table

Page 25: Interoperable Extensibility Through DITA Topic and Domain Types

IBM User Technologies

Extensibility Through DITA Topic and Domain Types © 2005 IBM Corporation25

Examples of topic references in a DITA map

<map title="Enterprise web management"> <topicref href="installoverview.dita" audience="admin"> <topicref href="installdb.dita"> <topicref href="closeprograms.dita"/> <topicref href="runsetup.dita"/> ...

<topicgroup collection-type="family"> <topicref href="installdb.dita"/> <topicref href="configuredb.dita"/> ...

<reltable> <relrow> <relcell> <topicref href="installdb.dita"/> </relcell> <relcell> <topicref href="dbconcepts.dita"/> </relcell> ...</map>

Contextual property

Group relationships

Hierarchical relationships

Tabular relationships

Page 26: Interoperable Extensibility Through DITA Topic and Domain Types

IBM User Technologies

Extensibility Through DITA Topic and Domain Types © 2005 IBM Corporation26

Example of possible map domains

Pluggable vocabularies for maps

Specialized references to topicsSpecify the topic role within a set of topics

Specify the topic type for validation

Specialized group or tabular structuresThe semantics of the relationship between the referenced topics

<map> ... <howto href="dita-mapdomains.xml"> <taskref href="implementDomain.xml"/> ...

<annotationRow> <publicCell> <topicref href="installdb.dita"/> </publicCell> <serviceCell> <topicref href="installfix.dita"/> </serviceCell> ...</map>

Role for referenced topic

Semantic table structure

Type of referenced topic

Page 27: Interoperable Extensibility Through DITA Topic and Domain Types

IBM User Technologies

Extensibility Through DITA Topic and Domain Types © 2005 IBM Corporation27

The DITA vision: a platform for collaboration

Retail

Medical Legal

Marketing

Technical

Core

Content markup that’s specific to the subject area

Marketing event announcements, Development functional specifications, orReal estate appraisal forms

Shared markup modulesAcross industry segments or communities

and between partners

Local markup for the organizationAgree on the shared basics, diverge on the

local idiosyncrasies

Install the specialization modules, assemble the document types, and go

Page 28: Interoperable Extensibility Through DITA Topic and Domain Types

IBM User Technologies

Extensibility Through DITA Topic and Domain Types © 2005 IBM Corporation28

Summary of business value

Faster time to value– create solution offering across industry stacks or within your business

with different components

Increased reuse– of content by referencing topics in many map contexts

– of designs by providing only the specialized delta on the general base

– of processing by overriding the base only where needed

Investment protection– because of automated fallback to more general markup

Page 29: Interoperable Extensibility Through DITA Topic and Domain Types

IBM User Technologies

Extensibility Through DITA Topic and Domain Types © 2005 IBM Corporation29

DITA and the Open Community

The DITA Standard at OASIS• Contributed in 2004

• DITA 1.0 specification – Committee Recommendation

• DITA Technical Committee includes:

XML tool vendors (Arbortext, Blast Radius, Idiom, Rascal, Syntext) Consultants (Comtech, Innodata, Mulberrytech) Companies (BMC, Boeing, IBM, Intel, Lucent, Nokia, Oracle, Sun)Education and government (National Library of Medicine,

US Department of Defense)

The DITA Open Toolkit at SourceForge• Successor to public toolkit published through IBM DeveloperWorks

• Reference implementation – usable for production, ongoing enhancement

• Other community-contributed utilities

• Community specialization modules

• Samples and demos of DITA capabilities

Page 30: Interoperable Extensibility Through DITA Topic and Domain Types

IBM User Technologies

Extensibility Through DITA Topic and Domain Types © 2005 IBM Corporation30

Where next?

Learn more about DITA• OASIS – http://www.oasis-open.org/committees/dita

• Cover page – http://xml.coverpages.org/dita.html

Where do we take DITA together?• Join the dialog on the DITA forum –

http://groups.yahoo.com/group/dita-users/

Download the DITA Open Toolkit• http://sourceforge.net/projects/dita-ot/

Page 31: Interoperable Extensibility Through DITA Topic and Domain Types

IBM User Technologies

Extensibility Through DITA Topic and Domain Types © 2005 IBM Corporation31

BackupBackup

Page 32: Interoperable Extensibility Through DITA Topic and Domain Types

IBM User Technologies

Extensibility Through DITA Topic and Domain Types © 2005 IBM Corporation32

DITA defined

Darwin: DITA utilizes principles of inheritance for specialization

Information Typing: DITA was designed for technical information based on an information architecture of Concept, Task and Reference

Architecture: DITA is a model for extension both of design and of processes

Page 33: Interoperable Extensibility Through DITA Topic and Domain Types

IBM User Technologies

Extensibility Through DITA Topic and Domain Types © 2005 IBM Corporation33

Benefit of design reuse through specialization

No need to reinvent the base vocabulary - Create a module in 1/2 day with 10 lines vs. 6 months with 100s of lines; automatically pick up changes to the base

No impact from other designs that customize for different purposes - Avoid enormous, kitchen-sink vocabularies; Plug in the modules for your requirements

Interoperability at the base type - Guaranteed reversion from special to base

Reusable type hierarchies - Share understanding of information across groups, saving time and presenting a consistent picture to customers

Output tailored to customers and information - More specific search, filtering, and reuse that is designed for your customers and information, not just the common denominator

Consistency - Both with base standards and within your information set

Learning support for new writers - Instead of learning standard markup plus specific ways to apply the markup, writers get specific markup with guidelines built in

Explicit support of different product architectural requirements - Requirements of different products and architectures can be supported and enforced, rather than suggested and monitored by editorial staff