SlideShare a Scribd company logo
1 of 15
@conref
@conkeyref
@conrefpush
REUSE STRATEGIES IN DITA WHEN MIGRATING LEGACY CONTENT
1
2015 Conference
© Adam Sanyo, 2015 2015 Conference
Agenda
 Why companies decide to adopt DITA?
 Planning the migration of legacy content
 How to reuse content in DITA
 Examples
2
© Adam Sanyo, 2015 2015 Conference
My background
 Five years of experience in technical writing.
 Worked on two different migration projects.
 Degree in English and Linguistics.
 Currently working for ARM as an information
developer on a contract basis.
 “Love at first sight” when encountering DITA in 2010.
3
© Adam Sanyo, 2015 2015 Conference
Why companies decide to adopt DITA?
Because they want to do any of the following:
 Reuse content across products.
 Reduce costs (for example, translation or authoring cost).
 Share workload between individual writers (increase productivity).
4
© Adam Sanyo, 2015 2015 Conference
DITA adoption scenarios
 The company wants to manage a large document set from a
component content management system (CCMS) and wants
to get rid of authoring silos.
 Different authoring teams create similar content and some of
that content could be reused.
 The company wants to translate its document set effectively
and wants to reuse translations over time.
5
© Adam Sanyo, 2015 2015 Conference
Strategy for legacy content migration
Note: I will not cover budget considerations (as I have never done that
part), but I will cover the technical side.
 Select part of your content as a test and see how you can reuse and
restructure it (run a prototype project).
 Have at least some rough reuse processes and guidelines.
 Write a good conversion script (that transforms legacy content to XML).
 Visualize your end product (the outcome of the project or a deliverable).
6
© Adam Sanyo, 2015 2015 Conference
Authoring decisions
Let us assume that you are using the standard DITA framework (task-
concept reference topics) and maybe one or two extra topic types on top of
that.
 Identify your topic types and chunk the content accordingly.
 Start with task topics as those are the easiest ones to identify but the
most difficult ones to convert (because of DITA-constraints in task topics).
 Select your reuse strategy after you analyzed your content.
 Decide the level of deviation from the original content (is your project a
simple conversion of your content or do you want to rework some parts of
the text?).
7
© Adam Sanyo, 2015 2015 Conference
Some general reuse rules
 Gain flexibility by using keys (because they create
a dependency only on the map level).
 Reuse block elements (paragraphs or elements
with similar size), but you can reuse smaller
elements if they do not require translation (for
example, product names or version numbers).
 Rewrite two or more similar topics if they become
reusable after that.
8
© Adam Sanyo, 2015 2015 Conference
Using @conref
Definition
 “Content reference”, that is, referencing one piece
of content from one topic to another.
Reuse strategy
 You want to reuse universal content found in
many or all publications.
Example
 Copyright information
Limitation
 Make sure that the referenced content is correct
in all publications where it is used, or you must
maintain different versions of the text.
1. Content is created in a reusable topic (“reusable_topic.dita”).
2. The topic id and the element id is used in the reference
(topic id: “reuse”, element id: “copyright”).
<p conref="reusable_topic.dita#reuse/copyright"/>
Output: © All rights reserved, 2015.
9
© Adam Sanyo, 2015 2015 Conference
Using @conkeyrefs
Definition
 “Content key reference”, which is an indirect
content reference governed by defined keys on the
map level.
Reuse strategy
 You have few differences between topics in your
product.
Example
 Changing elements between similar products
using keys (e.g. version numbers of products).
Limitation
 Managing the content on the map level using a
reference topic can become difficult and results in
too much overhead over time.
1. The key is defined on the map level with reference to a
topic that contains the content.
<keydef href= "reference.dita" keys="variables"/>
2. The key that is assigned to the topic and the id of the
referenced content is used for referencing content.
Reference to the topic: “variables”
Reference to the element id in the topic: “version”
<keyword conkeyref="variables/version"/>
Output: Version 15
10
© Adam Sanyo, 2015 2015 Conference
Using conditional processing/profiling (DITAVAL)
Definition
 As the name suggests, conditional values are defined to select
given parts of the full content. It is also called content profiling.
When to use
 Useful for authors when they create content for multiple audiences
 It is easier to manage attributes than keys (up to a certain point).
Example
 The same topic is sent to different clients, and some parts of the
text are client-specific.
Limitation
 It is better to store the content pieces in separate topics rather than
having a big master topic with all the content.
1. Define the DITAVAL attributes, for example, to exclude
a given version number.
<prop action="exclude" att="audience"
val="version15"/>
2. When generating your output, add this DITAVAL file to
your scenario and the output will not contain what you
excluded.
Note: As long as something is not excluded, it will be
included.
11
© Adam Sanyo, 2015 2015 Conference
Using @conrefpush
Definition
 Push some content before, in place of, or after a
marked section.
When to use
 It is recommended as a temporary solution only.
Limitation
 Compared to keys, it can be hard to manage many
conrefpush scenarios, and it is also harder to set
up conferpush scenarions for a novice DITA user.
1. Give an id to the element where your new content
would be in your content topic and use a conref to add
this selected element into your reference topic (the
topic that contains the new content you want to add).
2. Add the “mark” conaction attribute to the referenced
content.
3. Create the new content in the reference topic.
4. Add the reference topic with resource-only
outputclass attribute to your main content map.
More info: http://dita.xml.org/resource/dita-12-feature-
article-conref-push
12
© Adam Sanyo, 2015 2015 Conference
Examples (in oXygen XML Author)
 Using conditional processing (in a master topic)
 Using @conkeyrefs (on two maps)
 Using @conrefpush
13
© Adam Sanyo, 2015 2015 Conference
Contact information
14
Adam Sanyo
info@sanyowritingsolutions.co.uk
© Adam Sanyo, 2015 2015 Conference
If I timed myself right, we have 10 minutes for questions
Questions?
15

More Related Content

What's hot

Git flow Introduction
Git flow IntroductionGit flow Introduction
Git flow IntroductionDavid Paluy
 
GitOps is IaC done right
GitOps is IaC done rightGitOps is IaC done right
GitOps is IaC done rightChen Cheng-Wei
 
Version Control with Git
Version Control with GitVersion Control with Git
Version Control with GitLuigi De Russis
 
Container Orchestration
Container OrchestrationContainer Orchestration
Container Orchestrationdfilppi
 
Kubernetes 101 - A Cluster Operating System
Kubernetes 101 - A Cluster Operating SystemKubernetes 101 - A Cluster Operating System
Kubernetes 101 - A Cluster Operating Systemmikaelbarbero
 
Introduction to memcached
Introduction to memcachedIntroduction to memcached
Introduction to memcachedJurriaan Persyn
 
Introduction to Gitlab | Gitlab 101 | Training Session
Introduction to Gitlab | Gitlab 101 | Training SessionIntroduction to Gitlab | Gitlab 101 | Training Session
Introduction to Gitlab | Gitlab 101 | Training SessionAnwarul Islam
 
Git slides
Git slidesGit slides
Git slidesNanyak S
 
Zero Downtime Deployment
Zero Downtime DeploymentZero Downtime Deployment
Zero Downtime DeploymentJoel Dickson
 
Git and GitHub for Documentation
Git and GitHub for DocumentationGit and GitHub for Documentation
Git and GitHub for DocumentationAnne Gentle
 
Git and Github slides.pdf
Git and Github slides.pdfGit and Github slides.pdf
Git and Github slides.pdfTilton2
 
Infrastructure-as-Code (IaC) using Terraform
Infrastructure-as-Code (IaC) using TerraformInfrastructure-as-Code (IaC) using Terraform
Infrastructure-as-Code (IaC) using TerraformAdin Ermie
 

What's hot (20)

Kubernetes Basics
Kubernetes BasicsKubernetes Basics
Kubernetes Basics
 
Git and Github
Git and GithubGit and Github
Git and Github
 
Git flow Introduction
Git flow IntroductionGit flow Introduction
Git flow Introduction
 
GitOps is IaC done right
GitOps is IaC done rightGitOps is IaC done right
GitOps is IaC done right
 
DevOps: Age Of CI/CD
DevOps: Age Of CI/CDDevOps: Age Of CI/CD
DevOps: Age Of CI/CD
 
Version Control with Git
Version Control with GitVersion Control with Git
Version Control with Git
 
Container Orchestration
Container OrchestrationContainer Orchestration
Container Orchestration
 
Kubernetes 101 - A Cluster Operating System
Kubernetes 101 - A Cluster Operating SystemKubernetes 101 - A Cluster Operating System
Kubernetes 101 - A Cluster Operating System
 
Overview of github
Overview of githubOverview of github
Overview of github
 
Introduction to memcached
Introduction to memcachedIntroduction to memcached
Introduction to memcached
 
Introduction to Gitlab | Gitlab 101 | Training Session
Introduction to Gitlab | Gitlab 101 | Training SessionIntroduction to Gitlab | Gitlab 101 | Training Session
Introduction to Gitlab | Gitlab 101 | Training Session
 
Git slides
Git slidesGit slides
Git slides
 
Zero Downtime Deployment
Zero Downtime DeploymentZero Downtime Deployment
Zero Downtime Deployment
 
Git and github 101
Git and github 101Git and github 101
Git and github 101
 
Container Orchestration
Container OrchestrationContainer Orchestration
Container Orchestration
 
Git and GitHub for Documentation
Git and GitHub for DocumentationGit and GitHub for Documentation
Git and GitHub for Documentation
 
Kafka: Internals
Kafka: InternalsKafka: Internals
Kafka: Internals
 
Quick introduction to Kubernetes
Quick introduction to KubernetesQuick introduction to Kubernetes
Quick introduction to Kubernetes
 
Git and Github slides.pdf
Git and Github slides.pdfGit and Github slides.pdf
Git and Github slides.pdf
 
Infrastructure-as-Code (IaC) using Terraform
Infrastructure-as-Code (IaC) using TerraformInfrastructure-as-Code (IaC) using Terraform
Infrastructure-as-Code (IaC) using Terraform
 

Similar to "Conref, conkeyref, conrefpush" - reuse strategies in DITA when migrating legacy content

LavaCon 2017 - Implementing a Customer-driven Transition to DITA Content: A S...
LavaCon 2017 - Implementing a Customer-driven Transition to DITA Content: A S...LavaCon 2017 - Implementing a Customer-driven Transition to DITA Content: A S...
LavaCon 2017 - Implementing a Customer-driven Transition to DITA Content: A S...Jack Molisani
 
TC Dojo Open Session: Are You Getting the Most Out of DITA Content Reuse?
TC Dojo Open Session: Are You Getting the Most Out of DITA Content Reuse? TC Dojo Open Session: Are You Getting the Most Out of DITA Content Reuse?
TC Dojo Open Session: Are You Getting the Most Out of DITA Content Reuse? IXIASOFT
 
Alan DITA best practices
Alan DITA best practicesAlan DITA best practices
Alan DITA best practicesakashjd
 
S doherty counting_dragons_dita-reuse
S doherty counting_dragons_dita-reuseS doherty counting_dragons_dita-reuse
S doherty counting_dragons_dita-reuseStan Doherty
 
Single sourcing to the max
Single sourcing to the maxSingle sourcing to the max
Single sourcing to the maxNeil Perlin
 
Topic based and structured authoring - slides
Topic based and structured authoring - slidesTopic based and structured authoring - slides
Topic based and structured authoring - slidesNeil Perlin
 
Topic based and structured authoring - slides
Topic based and structured authoring - slidesTopic based and structured authoring - slides
Topic based and structured authoring - slidesNeil Perlin
 
Optimizing Content Reuse with DITA
Optimizing Content Reuse with DITAOptimizing Content Reuse with DITA
Optimizing Content Reuse with DITAIXIASOFT
 
Write Less Publish More Handout
Write Less Publish More HandoutWrite Less Publish More Handout
Write Less Publish More HandoutKendra Jones
 
Painless XML Authoring?: How DITA Simplifies XML
Painless XML Authoring?: How DITA Simplifies XMLPainless XML Authoring?: How DITA Simplifies XML
Painless XML Authoring?: How DITA Simplifies XMLScott Abel
 
Pinax Long Tutorial Slides
Pinax Long Tutorial SlidesPinax Long Tutorial Slides
Pinax Long Tutorial SlidesDaniel Greenfeld
 
Berry 10 years_of_dita
Berry 10 years_of_ditaBerry 10 years_of_dita
Berry 10 years_of_ditaMysti Berry
 
CONTENT2VEC: a Joint Architecture to use Product Image and Text for the task ...
CONTENT2VEC: a Joint Architecture to use Product Image and Text for the task ...CONTENT2VEC: a Joint Architecture to use Product Image and Text for the task ...
CONTENT2VEC: a Joint Architecture to use Product Image and Text for the task ...recsysfr
 
Agile backlog management with Hansoft
Agile backlog management with HansoftAgile backlog management with Hansoft
Agile backlog management with HansoftHansoft AB
 
An Overview of RoboHelp 7
An Overview of RoboHelp 7An Overview of RoboHelp 7
An Overview of RoboHelp 7Scott Abel
 
Success Factors for DITA Adoption with XMetaL: Best Practices and Fundamentals
Success Factors for DITA Adoption with XMetaL: Best Practices and FundamentalsSuccess Factors for DITA Adoption with XMetaL: Best Practices and Fundamentals
Success Factors for DITA Adoption with XMetaL: Best Practices and FundamentalsScott Abel
 
DITA Surprise, Unwrapping DITA Best Practices - tekom tcworld 2016
DITA Surprise, Unwrapping DITA Best Practices - tekom tcworld 2016DITA Surprise, Unwrapping DITA Best Practices - tekom tcworld 2016
DITA Surprise, Unwrapping DITA Best Practices - tekom tcworld 2016IXIASOFT
 

Similar to "Conref, conkeyref, conrefpush" - reuse strategies in DITA when migrating legacy content (20)

LavaCon 2017 - Implementing a Customer-driven Transition to DITA Content: A S...
LavaCon 2017 - Implementing a Customer-driven Transition to DITA Content: A S...LavaCon 2017 - Implementing a Customer-driven Transition to DITA Content: A S...
LavaCon 2017 - Implementing a Customer-driven Transition to DITA Content: A S...
 
TC Dojo Open Session: Are You Getting the Most Out of DITA Content Reuse?
TC Dojo Open Session: Are You Getting the Most Out of DITA Content Reuse? TC Dojo Open Session: Are You Getting the Most Out of DITA Content Reuse?
TC Dojo Open Session: Are You Getting the Most Out of DITA Content Reuse?
 
Alan DITA best practices
Alan DITA best practicesAlan DITA best practices
Alan DITA best practices
 
Twig in the Wild
Twig in the WildTwig in the Wild
Twig in the Wild
 
S doherty counting_dragons_dita-reuse
S doherty counting_dragons_dita-reuseS doherty counting_dragons_dita-reuse
S doherty counting_dragons_dita-reuse
 
Single sourcing to the max
Single sourcing to the maxSingle sourcing to the max
Single sourcing to the max
 
Topic based and structured authoring - slides
Topic based and structured authoring - slidesTopic based and structured authoring - slides
Topic based and structured authoring - slides
 
Topic based and structured authoring - slides
Topic based and structured authoring - slidesTopic based and structured authoring - slides
Topic based and structured authoring - slides
 
Optimizing Content Reuse with DITA
Optimizing Content Reuse with DITAOptimizing Content Reuse with DITA
Optimizing Content Reuse with DITA
 
Write Less Publish More Handout
Write Less Publish More HandoutWrite Less Publish More Handout
Write Less Publish More Handout
 
Painless XML Authoring?: How DITA Simplifies XML
Painless XML Authoring?: How DITA Simplifies XMLPainless XML Authoring?: How DITA Simplifies XML
Painless XML Authoring?: How DITA Simplifies XML
 
Pinax Long Tutorial Slides
Pinax Long Tutorial SlidesPinax Long Tutorial Slides
Pinax Long Tutorial Slides
 
Berry 10 years_of_dita
Berry 10 years_of_ditaBerry 10 years_of_dita
Berry 10 years_of_dita
 
CONTENT2VEC: a Joint Architecture to use Product Image and Text for the task ...
CONTENT2VEC: a Joint Architecture to use Product Image and Text for the task ...CONTENT2VEC: a Joint Architecture to use Product Image and Text for the task ...
CONTENT2VEC: a Joint Architecture to use Product Image and Text for the task ...
 
Agile backlog management with Hansoft
Agile backlog management with HansoftAgile backlog management with Hansoft
Agile backlog management with Hansoft
 
TWC 545 Presentation-DITA
TWC 545 Presentation-DITATWC 545 Presentation-DITA
TWC 545 Presentation-DITA
 
The Trip to DITA
The Trip to DITAThe Trip to DITA
The Trip to DITA
 
An Overview of RoboHelp 7
An Overview of RoboHelp 7An Overview of RoboHelp 7
An Overview of RoboHelp 7
 
Success Factors for DITA Adoption with XMetaL: Best Practices and Fundamentals
Success Factors for DITA Adoption with XMetaL: Best Practices and FundamentalsSuccess Factors for DITA Adoption with XMetaL: Best Practices and Fundamentals
Success Factors for DITA Adoption with XMetaL: Best Practices and Fundamentals
 
DITA Surprise, Unwrapping DITA Best Practices - tekom tcworld 2016
DITA Surprise, Unwrapping DITA Best Practices - tekom tcworld 2016DITA Surprise, Unwrapping DITA Best Practices - tekom tcworld 2016
DITA Surprise, Unwrapping DITA Best Practices - tekom tcworld 2016
 

Recently uploaded

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
 
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
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
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
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
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
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
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
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

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
 
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)
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
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
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
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
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
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
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 

"Conref, conkeyref, conrefpush" - reuse strategies in DITA when migrating legacy content

  • 1. @conref @conkeyref @conrefpush REUSE STRATEGIES IN DITA WHEN MIGRATING LEGACY CONTENT 1 2015 Conference
  • 2. © Adam Sanyo, 2015 2015 Conference Agenda  Why companies decide to adopt DITA?  Planning the migration of legacy content  How to reuse content in DITA  Examples 2
  • 3. © Adam Sanyo, 2015 2015 Conference My background  Five years of experience in technical writing.  Worked on two different migration projects.  Degree in English and Linguistics.  Currently working for ARM as an information developer on a contract basis.  “Love at first sight” when encountering DITA in 2010. 3
  • 4. © Adam Sanyo, 2015 2015 Conference Why companies decide to adopt DITA? Because they want to do any of the following:  Reuse content across products.  Reduce costs (for example, translation or authoring cost).  Share workload between individual writers (increase productivity). 4
  • 5. © Adam Sanyo, 2015 2015 Conference DITA adoption scenarios  The company wants to manage a large document set from a component content management system (CCMS) and wants to get rid of authoring silos.  Different authoring teams create similar content and some of that content could be reused.  The company wants to translate its document set effectively and wants to reuse translations over time. 5
  • 6. © Adam Sanyo, 2015 2015 Conference Strategy for legacy content migration Note: I will not cover budget considerations (as I have never done that part), but I will cover the technical side.  Select part of your content as a test and see how you can reuse and restructure it (run a prototype project).  Have at least some rough reuse processes and guidelines.  Write a good conversion script (that transforms legacy content to XML).  Visualize your end product (the outcome of the project or a deliverable). 6
  • 7. © Adam Sanyo, 2015 2015 Conference Authoring decisions Let us assume that you are using the standard DITA framework (task- concept reference topics) and maybe one or two extra topic types on top of that.  Identify your topic types and chunk the content accordingly.  Start with task topics as those are the easiest ones to identify but the most difficult ones to convert (because of DITA-constraints in task topics).  Select your reuse strategy after you analyzed your content.  Decide the level of deviation from the original content (is your project a simple conversion of your content or do you want to rework some parts of the text?). 7
  • 8. © Adam Sanyo, 2015 2015 Conference Some general reuse rules  Gain flexibility by using keys (because they create a dependency only on the map level).  Reuse block elements (paragraphs or elements with similar size), but you can reuse smaller elements if they do not require translation (for example, product names or version numbers).  Rewrite two or more similar topics if they become reusable after that. 8
  • 9. © Adam Sanyo, 2015 2015 Conference Using @conref Definition  “Content reference”, that is, referencing one piece of content from one topic to another. Reuse strategy  You want to reuse universal content found in many or all publications. Example  Copyright information Limitation  Make sure that the referenced content is correct in all publications where it is used, or you must maintain different versions of the text. 1. Content is created in a reusable topic (“reusable_topic.dita”). 2. The topic id and the element id is used in the reference (topic id: “reuse”, element id: “copyright”). <p conref="reusable_topic.dita#reuse/copyright"/> Output: © All rights reserved, 2015. 9
  • 10. © Adam Sanyo, 2015 2015 Conference Using @conkeyrefs Definition  “Content key reference”, which is an indirect content reference governed by defined keys on the map level. Reuse strategy  You have few differences between topics in your product. Example  Changing elements between similar products using keys (e.g. version numbers of products). Limitation  Managing the content on the map level using a reference topic can become difficult and results in too much overhead over time. 1. The key is defined on the map level with reference to a topic that contains the content. <keydef href= "reference.dita" keys="variables"/> 2. The key that is assigned to the topic and the id of the referenced content is used for referencing content. Reference to the topic: “variables” Reference to the element id in the topic: “version” <keyword conkeyref="variables/version"/> Output: Version 15 10
  • 11. © Adam Sanyo, 2015 2015 Conference Using conditional processing/profiling (DITAVAL) Definition  As the name suggests, conditional values are defined to select given parts of the full content. It is also called content profiling. When to use  Useful for authors when they create content for multiple audiences  It is easier to manage attributes than keys (up to a certain point). Example  The same topic is sent to different clients, and some parts of the text are client-specific. Limitation  It is better to store the content pieces in separate topics rather than having a big master topic with all the content. 1. Define the DITAVAL attributes, for example, to exclude a given version number. <prop action="exclude" att="audience" val="version15"/> 2. When generating your output, add this DITAVAL file to your scenario and the output will not contain what you excluded. Note: As long as something is not excluded, it will be included. 11
  • 12. © Adam Sanyo, 2015 2015 Conference Using @conrefpush Definition  Push some content before, in place of, or after a marked section. When to use  It is recommended as a temporary solution only. Limitation  Compared to keys, it can be hard to manage many conrefpush scenarios, and it is also harder to set up conferpush scenarions for a novice DITA user. 1. Give an id to the element where your new content would be in your content topic and use a conref to add this selected element into your reference topic (the topic that contains the new content you want to add). 2. Add the “mark” conaction attribute to the referenced content. 3. Create the new content in the reference topic. 4. Add the reference topic with resource-only outputclass attribute to your main content map. More info: http://dita.xml.org/resource/dita-12-feature- article-conref-push 12
  • 13. © Adam Sanyo, 2015 2015 Conference Examples (in oXygen XML Author)  Using conditional processing (in a master topic)  Using @conkeyrefs (on two maps)  Using @conrefpush 13
  • 14. © Adam Sanyo, 2015 2015 Conference Contact information 14 Adam Sanyo info@sanyowritingsolutions.co.uk
  • 15. © Adam Sanyo, 2015 2015 Conference If I timed myself right, we have 10 minutes for questions Questions? 15

Editor's Notes

  1. Icebreaker, thank the organizers for organizing the event, tell the story about the visit to Krakow
  2. POLL: who is from a technical writer background, who is not, who is familiar with DITA? Focus on two things: 1. legacy migration AND 2. general DITA reuse
  3. Introduction, humanities background, currently contracted by ARM, 2nd migration project „We have all probably seen this picture when we’ve done a search on DITA... Von Tesse”
  4. DITA is an industry standard that promotes reuse. Sharing workload – you need at least 3-4 writers to see the benefits of DITA. Also, it is not the size of your team but the content you create will define the reuse potential you have.
  5. Getting rid of silos is the top priority because you both increase productivity and reduce waste (i.e. two people working on the same content). The saving on translations can be massive if you need to translate all your content
  6. Prototype – for example, a new release will come out shortly and you want to build that on existing content Conversion script – conversion tables from Framemaker to DITA + XSLT End product – what will you do with your migrated content? Is it going to be used for as reference content or is it going to be a full manual?
  7. Chunk topics – task topics should be in the focus especially in software documentation Reuse strategy is formed while analyzing content, it is not a „set in stone” strategy Level of deviation – important because it decides the potential for future reuse
  8. Keys – indirect references to topics (usually reference topics), they are defined on the DITAMAP level. Each DITAMAP can use different sets of keys from a reference topic. So the content is in the reference topic, but the way that reference topic is defined is different (the key makes it an indirect reference, therefore, it is more flexible than other references). Rewrite topics – try to be generic rather than specific when writing a topic (turn on printer vs. Turn on monitor, almost the same  turn on device)
  9. Conref – pulling content from one place to another. The content is stored in a reference topic, it is good to have a reference topic that collects these content pieces (unless the content pieces could form a full topic)
  10. Indirect reference – the small differences between two products are best managed by content key references. You can treat these differences as variables, just like you treat the keys as variables In the example: The keydef can point to one reference topic in one map, and another one in another map. The „keys” value remains the same, but it will point to two different source files.
  11. Madcap Flare users – it is almost the same as the profiling feature of Flare. You can manage different profiling attributes just as you manage keys for your content. It is useful to create master topics where you create content for multiple audiences and then just pick and mix the bits you need. As long as something is not excluded, it will be included! (important)
  12. Conrefpush is a relatively complex – at least for me – concept in DITA. You create some content that you want to push before or after your existing content. It is basically a content reference with a marked location to which you add this content. It is recommended as a temporary solution only. More info, see the feature’s description (and my example shortly).
  13. One topic shows the use of all these features in oXygen XML Author