NewsML
- Was ist NewsML?
- Features
- Beispiel
- Struktur
- Zusammenfassung, Stärken, Schwächen
Was ist NewsML?
- Offener medienunabhängiger Standard für das Packaging von Multimedia-Nachrichten und ihren Metadaten
- Beschreibt die Struktur von Nachrichten, die assoziierten Metadaten und das Verhältnis von Nachrichten zueinander während dem gesamten Lebenszyklus
- Notwendig für die Ausliferung von Nachrichten/Content en gross
- Gedacht als Komplement zu Content-Formaten wie NITF
- Entwickelt durch International Press Telecommunications Council (IPTC), ein Konsortium von News-Providern, auf Vorschlag von Reuters
- Ratifiziert im Oktober 2000
Features
- Personalisierung des Nachrichtenangebots
- Gültigkeitsdauer, Aktualität und Priorität einer Nachricht können übermittelt werden
- Durch den plattformunabhängigen Nachrichtenaustausch ist die Verteilung auf technisch unterschiedliche Formate und Kanäle möglich
- Zurückverfolgen der Geschichte einer Nachricht (Versionen, Beitragende)
- Logisches Gruppieren von News in Stories
- Indexieren und Durchsuchen von Metadaten ermöglicht
- Alternativen, z.B. Text in mehreren Sprachen, Bilder in mehreren Auflösungen
- Komplementierungen, d.h. Elemente, die zusammen benutzt werden sollen
- Definieren von Eigenschaften einer Nachricht
- und vieles mehr.
Struktur: NewsML- und Catalog-Elemente
NewsML: Root-Element mit optionaler Versionnummer der DTD, nach der das Dokument validiert werden soll.
Beispiel:
<?xml version="1.0"?> <!DOCTYPE NewsML PUBLIC "urn:newsml:iptc.org:20021018:NewsMLv1.1:1" "http://www.iptc.org/NewsML/DTD/NewsMLv1.1.dtd"> <NewsML Version="1.1"> <Catalog> ... </Catalog> <TopicSet> ... </TopicSet> <NewsEnvelope> ... </NewsEnvelope> <NewsItem> ... </NewsItem> <NewsItem> ... </NewsItem> </NewsML>
Catalog: Container für Resource- und TopicUse-Elemente
Resource-Elemente geben externe Ressourcen als URN oder URL an, die als DefaultVocabularies für einige oder alle Content-Elemente des Dokumentes dienen.
TopicUse-Elemente geben an, wo im Dokument bestimmte Topics benutzt werden.
Beispiel:
<Catalog> <Resource> <Urn>urn:newsml:iptc.org:20001006:IptcConfidence:1</Urn> <Url>http://www.iptc.org/NewsML/topicsets/iptc-confidence.xml</Url> <DefaultVocabularyFor Context="@Confidence"/> </Resource> <TopicUse Topic="#person1" Context="DescriptiveMetadata"/> </Catalog> <TopicSet FormalName="Person"> <Topic Duid="person1"> <TopicType FormalName="Person" Vocabulary="urn:newsml:iptc.org:20001006:IptcTopicTypes:1" Scheme="IptcTopicTypes"/> <Description xml:lang="en-GB">David Allen, Managing Director of IPTC</Description> </Topic> </TopicSet>
Struktur: TopicSets, NewsEnvelope und Metadata Assignment
TopicSets sind Container für Topics - Themen aus der realen Welt.
Beispiel:
<NewsML> <Catalog> <Resource> <Urn>urn:newsml:iptc.org:20001006:IptcTopicTypes:1</Urn> <Url>http://www.iptc.org/NewsML/topicsets/iptc-topictypes.xml</Url> <DefaultVocabularyFor Context="TopicType"/> </Resource> </Catalog> <TopicSet FormalName="Event"/> <Topic Duid="event1"> <TopicType FormalName="Event"/> <Desciption xml:lang="en-GB">Iran-Iraq war</Description> </Topic> <Topic Duid="person1" Details="whoswho.xml#tonyblair"> <TopicType FormalName="Person"/> <Description>Tony Blair</Description> </Topic> <Topic Duid="company1"> <TopicType FormalName="Company"/> <FormalName Scheme="RIC">DELL.O</FormalName> <FormalName Scheme="NASDAQ">DELL</FormalName> <Description Variant="Company Name">Dell Computer</Description> </Topic> <Topic Duid="company2"> <TopicType FormalName="Company"/> <FormalName Scheme="RIC">RTRSY.O</FormalName> <FormalName Scheme="NASDAQ">RTRSY</FormalName> <Description Variant="Company Name">Reuters</Description> </Topic> </TopicSet> </NewsML>
Noch Beispiel:
<TopicSet Duid="mysubjects" FormalName="SubjectMatter"> <TopicSetRef TopicSet="urn:newsml:iptc.org:iptc:20001006:IptcSubjectCodes"/> <Topic Duid="mysubject1"> <TopicType FormalName="SubjectMatter" Vocabulary="urn:iptc:20001006:IptcTopicTypes" Scheme="IptcTopicTypes"/> <FormalName Scheme="myscheme">BDES</FormalName> <FormalName Scheme="IptcSubjectCodes">01002000</FormalName> <Description xml:lang="en-GB" Variant="ShortDesc">Building Design</Description> <Description xml:lang="en-GB" Variant="FullDesc">The art and science of designing buildings</Description> </Topic> </TopicSet>
Das NewsEnvelope-Element enthält Information darüber, wie das NewsML-Dokument im Business-Workflow oder im Verhältnis zwischen dem News-Provider und -Verbraucher benutzt wird, zumindest DateAndTime.
<Catalog> <Resource> <Urn>urn:newsml:mpc.com:20010101:MpcServices:1</Urn> <DefaultVocabularyFor Context="NewsService"/> </Resource> <Resource> <Urn>urn:newsml:mpc.com:20010101:MpcProducts:1</Urn> <DefaultVocabularyFor Context="NewsProduct"/> </Resource> </Catalog> <NewsEnvelope> <TramsmissionId Repeat="second attempt">abc123</TransmissionId> <SentFrom> <Party FormalName="MYCODE" Scheme="xyz" Vocabulary="urn:newsml:mycompany.com:20010101:MyCompanyCodes:1"/> </SentFrom> <DateAndTime>20001006T140000+0200</DateAndTime> <NewsService FormalName="SPORTS"/> <NewsService FormalName="GENERAL INTEREST"/> <NewsProduct FormalName="WebWire"/> <Priority FormalName="5" Vocabulary="urn:newsml:iptc.org:20001006:IptcPriority:1" Scheme="IptcPriority"></Priority> </NewsEnvelope>
Beispiel zu Metadata Assignment
<NewsML> <Catalog> <Resource> <Urn>urn:newsml:iptc.org:20001006:IptcConfidence:1</Urn> <DefaultVocabularyFor Scheme="IptcConfidence" Context="@Confidence"/> </Resource> <Resource> <Url>http://www.brs.com/vocabularies/importance.xml</Url> <DefaultVocabularyFor Scheme="xyz" Context="@Importance"/> </Resource> <Resource> <Url>#LocalTopicSet</Url> <DefaultVocabularyFor Scheme="companycode" Context="@AssignedBy"/> </Resource> </Catalog> <TopicSet Duid="LocalTopicSet" FormalName="Company"> <Topic Duid="company1"> <TopicType FormalName="Company" Scheme="IptcTopicTypes" Vocabulary="urn:newsml:iptc.org:20001006:IptcTopicTypes:1"/> <FormalName Scheme="companycode">BRS</FormalName> <Description xml:lang="en-GB">Bloomsbury Review Service</Description> </Topic> </TopicSet> ... <DescriptiveMetadata AssignedBy="BRS" Importance="normal" Confidence="High" DateAndTime="20001231T1200+0000"> ... </DescriptiveMetadata> ... </NewsML>
Struktur: NewsItem, NewsManagement, Property
Beispiel ohne Update:
<NewsIdentifier> <ProviderId>iptc.org</ProviderId> <DateId>20001006</DateId> <NewsItemId>NewsML Approved</NewsItemId> <RevisionId PreviousRevision="0" Update="N">1</RevisionId> <PublicIdentifier>urn:newsml:iptc.org:20001006:NewsML%20Approved:1</PublicIdentifier> </NewsIdentifier>
Beispiel mit Update und Datum als RevisionId:
<NewsIdentifier> <ProviderId>iptc.org</ProviderId> <DateId>20001006</DateId> <NewsItemId>i123</NewsItemId> <RevisionId PreviousRevision="20001005" Update="U">20001023</RevisionId> <PublicIdentifier>urn:newsml:iptc.org:20001006:i123:20001023U</PublicIdentifier> </NewsIdentifier>
Beispiel zu NewsManagement:
<NewsManagement> <NewsItemType FormalName="News" Vocabulary="urn:newsml:iptc.org:20001006:IptcNewsItemTypes:1" Scheme="IptcNewsItemTypes"/> <FirstCreated>20001006T1400+0200</FirstCreated> <ThisRevisionCreated>20001006T1615+0200</ThisRevisionCreated> <Status Vocabulary="urn:newsml:iptc.org:20001006:IptcStatus:1" Scheme="IptcStatus" FormalName="Embargoed"/> <Urgency Vocabulary="urn:newsml:iptc.org:20001006:IptcUrgency:1" Scheme="IptcUrgency" FormalName="1"/> <RevisionHistory Href="../history/rev_1376.log"/> <DerivedFrom NewsItem="urn:newsml:iptc.org:20001006:NewsML%201.0%20approved" > <Comment>Statement from the Chair of the NewsML Steering Committee.</Comment> </DerivedFrom> <AssociatedWith NewsItem="urn:newsml:iptc.org:20001006:NewsML%201.0%20approved" > <Comment>This is a sequel to the previous story.</Comment> </AssociatedWith> <Instruction FormalName="MostRecentStillUsable" Vocabulary="#MyInstructionCodes"> <RevisionStatus Revision="1"> <Status FormalName="Canceled"/> </RevisionSatus> <RevisionStatus Revision="2"> <Status FormalName="Canceled"/> </RevisionSatus> <RevisionStatus Revision="3"> <Status FormalName="Usable"/> </RevisionSatus> </Instruction> </NewsManagement>
Beispiel zu StatusWillChange:
<Catalog> <Resource> <Urn>urn:newsml:iptc.org:20001006:IptcStatus:1</Urn> <DefaultVocabularyFor Scheme="IptcStatus" Context="Status|FutureStatus"/> </Resource> </Catalog> ... <NewsManagement> ... <Status FormalName="Embargoed"/> <StatusWillChange> <FutureStatus FormalName="Usable"/> <DateAndTime>20000707T1200+0000</DateAndTime> </StatusWillChange> </NewsManagement>
Beispiel zu Property:
<Catalog> <Resource Duid="resource1"> <Urn>urn:newsml:mydomain.com:20010101:Characteristics:3</Urn> <Url>www.mydomain.com/vocabs/characteristics.xml</Url> <DefaultVocabularyFor Context="Characteristics//Property"/> </Resource> </Catalog> ... <Characteristics> <Property FormalName="Width"> <Property FormalName="Quantity" Value="7.5"/> <Property FormalName="Unit" ValueRef="urn:newsml:mydomain.com:20010101:Units:1#cm"/> </Property> </Characteristics>
Struktur: NewsComponent
Container für news objects: Texte, Fotos, Grafiken, komplette Nachrichten z.B. als Digest für eine Zeitperiode oder als Antwort auf eine Anfrage zu einem gewissen Thema.
<NewsItem> <Catalog> <Resource> <Url>http://www.mysite.com/MyRolesVocabulary.xml"</Url> <DefaultVocabularyFor Context="Role"/> </Resource> </Catalog> ... <NewsComponent EquivalentsList="yes"> <BasisForChoice>./Role/@FormalName</BasisForChoice> <NewsComponent EquivalentsList="no"> <Role FormalName="WEB"/> <NewsComponent EquivalentsList="yes"> <Role FormalName="MAIN TEXT"/> <BasisForChoice>./Role/@FormalName</BasisForChoice> <ContentItem>...</ContentItem> <ContentItem>...</ContentItem> <ContentItem>...</ContentItem> </NewsComponent> <NewsComponent EquivalentsList="yes"> <Role FormalName="PHOTO"/> <ContentItem>...</ContentItem> <ContentItem>...</ContentItem> </NewsComponent> <NewsComponent EquivalentsList="no"> <Role FormalName="SIDE BAR"/> <NewsComponent EquivalentsList="yes" Essential="yes"> <Role FormalName="TEXT"/> <ContentItem>...</ContentItem> <ContentItem>...</ContentItem> <ContentItem>...</ContentItem> </NewsComponent> <NewsComponent EquivalentsList="yes" Essential="yes"> <Role FormalName="GRAPH"/> <BasisForChoice>./Role/@FormalName</BasisForChoice> <NewsComponent> <Role FormalName="PIE CHART"/> <ContentItem>...</ContentItem> </NewsComponent> <NewsComponent> <Role FormalName="BAR CHART"/> <ContentItem>...</ContentItem> </NewsComponent> </NewsComponent> </NewsComponent> </NewsComponent> <NewsComponent> <Role FormalName="TV"/> <NewsComponent EquivalentsList="yes"> <Role FormalName="VIDEO"/> <ContentItem>...</ContentItem> <ContentItem>...</ContentItem> </NewsComponent> </NewsComponent> <NewsComponent> <Role FormalName="RADIO"/> <NewsComponent EquivalentsList="yes"> <Role FormalName="AUDIO"/> <ContentItem>...</ContentItem> <ContentItem>...</ContentItem> </NewsComponent> </NewsComponent> </NewsComponent> </NewsComponent> </NewsComponent> </NewsItem>
Noch Beispiel:
<Catalog> <Resource Duid="resource1"> <Urn>urn:newsml:mydomain.com:20010101:Characteristics:3</Urn> <Url>www.mydomain.com/vocabs/characteristics.xml</Url> <DefaultVocabularyFor Context="Property"/> </Resource> </Catalog> ... <NewsComponent EquivalentsList="yes"> <BasisForChoice>.//Property[@FormalName="PixelWidth"]/@Value</BasisForChoice> <ContentItem Href="pictures/4769w336.jpg"> <MimeType FormalName="image/jpeg"/> <Characteristics> <SizeInBytes>22999</SizeInBytes> <Property FormalName="PixelWidth" Value="336"/> <Property FormalName="PixelHeight" Value="224"/> </Characteristics> </ContentItem> <ContentItem Href="pictures/4769w170.jpg"> <MimeType FormalName="image/jpeg"/> <Characteristics> <SizeInBytes>8449</SizeInBytes> <Property FormalName="PixelWidth" Value="170"/> <Property FormalName="PixelHeight" Value="224"/> </Characteristics> </ContentItem> </NewsComponent>
Noch Beispiel:
<NewsComponent EquivalentsList="yes"> <BasisForChoice>@xml:lang</BasisForChoice> <NewsComponent xml:lang="en-US"> ... </NewsComponent> <NewsComponent xml:lang="fr-FR"> ... </NewsComponent> </NewsComponent>
Struktur: ContentItem
Enthält oder referenziert darstellbaren Inhalt wie Text, Fotos, Audios usw.
MediaTypes in NewsML 1.0:
- Text
- Graphic
- Photo
- Audio
- Video
- Animation
<ContentItem> <Encoding Notation="binhex"> <Encoding Notation="zip"> <DataContent>A873B6FE ...</DataContent> </Encoding> </Encoding> </ContentItem>
Noch Beispiel:
<NewsML> <Catalog> <Resource> <Urn>urn:newsml:iptc.org:20001006:IptcMediaTypes.xml</Urn> <DefaultVocabularyFor Scheme="IptcMediaTypes" Context="MediaType"/> </Resource> <Resource> <Urn>urn:newsml:iptc.org:20001006:IptcFormats.xml</Urn> <DefaultVocabularyFor Scheme="IptcFormats" Context="Format"/> </Resource> <Resource> <Urn>urn:newsml:iptc.org:20001006:IptcMimeTypes.xml</Urn> <DefaultVocabularyFor Scheme="IptcMimeTypes" Context="MimeType"/> </Resource> <Resource> <Urn>urn:newsml:iptc.org:20001006:IptcNotations.xml</Urn> <DefaultVocabularyFor Scheme="IptcNotations" Context="Notation"/> </Resource> <Resource> <Urn>urn:newsml:mydomain.org:20010101:myproperties.xml</Urn> <DefaultVocabularyFor Scheme="Properties" Context="Property"/> </Resource> </Catalog> ... <ContentItem Href="urn:newsml:iptc.org:20001006:NewsML%201.0%20approved:2#item2"> <MediaType FormalName="Text"/> <Format FormalName="TTNITF"/> <MimeType FormalName="text/vnd.IPTC.NITF"/> <Notation FormalName="NITF"/> <Characteristics> <SizeInBytes>2736</SizeInBytes> <Property FormalName="WordCount" Value="450"/> </Characteristics> </ContentItem> ... </NewsML>
Struktur: Metadata
AdministrativeMetadata:
<AdministrativeMetadata> <FileName>NewsmlStory.xml</FileName> <SystemIdentifier>http://www.mydomain.com/stories/NewsmlStory.xml</SystemIdentifier> <Provider> <Party FormalName="News Headlines International" Topic="#company1"/> </Provider> <Creator> <Party FormalName="Doe, John" Topic="#person1"/> </Creator> <Contributor> <Comment>Editorial review</Comment> <Party FormalName="Smith, Jane" Topic="#person2"/> </Contributor> <Contributor> <Comment>Quote</Comment> <Party FormalName="Dumas, Pierre" Topic="#person3"/> </Contributor> </AdministrativeMetadata>
RightsMetadata:
<RightsMetadata> <Copyright> <CopyrightHolder><Origin Href="#organization1">International Press Telecomminications Council</Origin></CopyrightHolder> <CopyrightDate>2000</CopyrightDate> </Copyright> <UsageRights> <UsageType>Television</UsageType> <Geography><Origin Href="urn:newsml:iptc.org:20001006:Countries#isoc826">United Kingdom</Origin></Geography> <RightsHolder><Origin Href="#organization2">BBC</Origin></RightsHolder> <StartDate>July 2000</StartDate> <EndDate>December 2000</EndDate> <Limitations>Acknowledgement of <Origin Href="#organization1">IPTC</Origin> copyright must be made</Limitations> </UsageRights> <UsageRights> <UsageType>Television</UsageType> <Geography><Origin Href="#region1">North America</Origin></Geography> <RightsHolder><Origin Href="#company1">CNN</Origin></RightsHolder> <StartDate>July 2000</StartDate> <EndDate>none</EndDate> <Limitations>Acknowledgement of <Origin Href="#organization1">IPTC</Origin> copyright must be made</Limitations> </UsageRights> </RightsMetadata>
DescriptiveMetadata:
<Catalog> <Resource> <Urn>urn:newsml:iptc.org:20001006:IptcTopicTypes</Urn> <DefaultVocabularyFor Scheme="IptcTopicTypes" Context="TopicType"/> </Resource> <Resource> <Urn>urn:newsml:iptc.org:20001006:Languages</Urn> <DefaultVocabularyFor Scheme="IsoLanguageCode" Context="Language"/> </Resource> <Resource> <Urn>urn:newsml:iptc.org:20001006:IptcGenre</Urn> <DefaultVocabularyFor Scheme="IptcGenre" Context="Genre"/> </Resource> <Resource> <Urn>urn:newsml:iptc.org:20001006:IptcSubjectCodes</Urn> <DefaultVocabularyFor Scheme="IptcSubjectCode" Context="Subject"/> </Resource> <Resource> <Urn>urn:newsml:iptc.org:20001006:IptcOfInterestTo</Urn> <DefaultVocabularyFor Scheme="IptcOfInterestTo" Context="OfInterestTo"/> </Resource> <Resource> <Urn>urn:newsml:iptc.org:20001006:IptcConfidence</Urn> <DefaultVocabularyFor Scheme="IptcConfidence" Context="@Confidence"/> </Resource> <Resource> <Urn>urn:newsml:iptc.org:20001006:IptcImportance</Urn> <DefaultVocabularyFor Scheme="IptcImportance" Context="@Importance"/> </Resource> </Catalog> <TopicSet FormalName="Person"> <Topic Duid="person1" FormalName="Person"> <TopicType FormalName="Person"/> <Description xml:lang="en-GB">President Clinton</Description> </Topic> <Topic Duid="person2"> <TopicType FormalName="Person"/> <Description xml:lang="en-GB">Yasser Arafat</Description> </Topic> <Topic Duid="location1"> <TopicType FormalName="Location"/> <Description xml:lang="en-GB">The White House Lawn</Description> </Topic> </TopicSet> <DescriptiveMetadata Confidence="High" Importance="5"> <Language FormalName="en"/> <Genre FormalName="Current"/> <SubjectCode> <Subject FormalName="11000000"/> </SubjectCode> <TopicOccurrence Topic="#person1" HowPresent="Prominent"/> <TopicOccurrence Topic="#person2" HowPresent="RelatesTo"/> <TopicOccurrence Topic="#location1" HowPresent="Passing"/> </DescriptiveMetadata>
Struktur: NewsLines und Update
NewsLines:
<TopicSet Duid="LocalTopicSet" FormalName="person"> <Topic Duid="person1" Details=http://mydomain.com/staff.xml#jwilson"> <TopicType FormalName="person" Vocabulary="http://www.iptc.org/NewsML/topicsets/iptc-topictypes.xml"/> </Topic> <Topic Duid="position1" Details=http://mydomain.com/positions.xml#staffreporter"> <TopicType FormalName="position" Vocabulary="#LocalTopicSet"/> </Topic> <Topic Duid="newspaper1" Details=http://mydomain.com/papers.xml#dailyrecord"> <TopicType FormalName="newspaper" Vocabulary="#LocalTopicSet"/> </Topic> <Topic Duid="newslinetype1"> <TopicType FormalName="NewsLineType" Vocabulary="http://www.iptc.org/NewsML/topicsets/iptc-topictypes.xml "/> <FormalName>ImpactLine</FormalName> <Description xml:lang="en-GB">An indication of the significance of the event described</Description> </Topic> <Topic Duid="topictype1"> <TopicType FormalName="TopicType" Vocabulary="http://www.iptc.org/NewsML/topicsets/iptc-topictypes.xml"/> <FormalName>position</FormalName> <Description xml:lang="en-GB">An job function performed by a person.</Description> </Topic> <Topic Duid="topictype2"> <TopicType FormalName="TopicType" Vocabulary="http://www.iptc.org/NewsML/topicsets/iptc-topictypes.xml"/> <FormalName>newspaper</FormalName> <Description xml:lang="en-GB">A publication that carries news.</Description> </Topic> </TopicSet> ... <NewsLines> <HeadLine>Clinton Addresses Crowd</HeadLine> <SubHeadLine>New policies announced</SubHeadLine> <ByLine>By <Origin Href="#person1">James Wilson</Origin></ByLine> <CreditLine><Origin Href="#position1">Staff Reporter</Origin> of <Origin Href="newspaper1">The Daily Record</Origin></CreditLine> <NewsLine> <NewsLineType FormalName="ImpactLine" Vocabulary="#LocalTopicSet"/> <NewsLineText>Key pre-election rallying call</NewsLineText> </NewsLine> </NewsLines>
Update:
<!ELEMENT Update (InsertBefore | InsertAfter | Replace | Delete )*>
Zusammenfassung, Stärken, Schwächen
Zusammenfassung
NewsML als Ansatz bei der Problemlösung in folgenden Bereichen:
- Nachrichtenaustausch zwischen Nachrichtenagenturen und Nutzern (Intranets, Portale)
- Interne und externe Unternehmenskommunikation
Stärken:
- Medienunabhängig
- Flexible Verwaltung und Gruppierung von Nachrichten
- Multimediafähig
Schwächen:
- Noch ziemlich neu und wenig verbreitet und unterstützt
- Keine Tools
Fragen?
Open eBook
- Was sind eBooks?
- Der Open eBook-Standard
- Aufbau eines Dokuments
- Vorteile und Probleme
Was sind eBooks?
eBooks

Gemstar GEB 2150
- elektronische Bücher
- eBooks sind Dokumente, keine Geräte
- Prognose: 2005 10% Marktanteil (?)
- können auf PCs, PDAs, Smartphones, speziellen Geräten gelesen werden
- oder Sprachsynthesizer
- am verbreitetsten unter PDA-Benutzern
Dokumentformate
- Microsoft Reader (.lit)
- Reader für Desktop-Windows und Win CE
- MobiPocket
- Reader für Palm, Psion, Windows CE, Symbian
- Adobe PDF
- nur für Win und Mac
- Plain Text
- (X)HTML
- Open eBook
(X)HTML als Standard?
- zu komplex für kleine Geräte
- entferne unnötige Teile von XHTML, CSS, XML
- Dokument besteht aus (X)HTML und weiteren Dateien - aber welchen?
- standardisierte Navigation
Der Open eBook-Standard
Open eBook Forum
- Organisation zur Entwicklung von eBook-Standards
- 1999 von Microsoft ins Leben gerufen
- Hauptziel: Schaffung eines Standardformats für eBooks
- Ergebnis: Open eBook Publication Structure (OeB-Format)
Aufbau eines Dokuments
OeB Package
- Package: Gesamtheit aus XHTML, Bildern, CSS etc.
- enthält typischerweise:
- Package file: XML-Dokument zur Beschreibung der Package
- XHTML-Dokumente
- CSS-Stylesheets
- PNG- und JPEG-Bilder
- ggf. weitere Dateien
Package File
Typischer Aufgau:
<?xml version="1.0"?> <!DOCTYPE package PUBLIC "+//ISBN 0-9673008-1-9//DTD OEB 1.2 Package//EN" "http://openebook.org/dtds/oeb-1.2/oebpkg12.dtd"> <package unique-identifier="xyz"> <metadata><!-- ... --></metadata> <manifest><!-- ... --></manifest> <spine><!-- ... --></spine> <tours><!-- ... --></tours> <guide><!-- ... --></guide> </package>
Metadaten
<metadata> <dc-metadata xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:oebpackage= "http://openebook.org/namespaces/oeb-package/1.0/"> <dc:Title>Alice in Wonderland</dc:Title> <dc:Language>en</dc:Language> <dc:Identifier id="xyz" scheme="ISBN"> 123456789X </dc:Identifier> <dc:Creator role="aut">Lewis Carroll</dc:Creator> </dc-metadata> </metadata>
Die Elemente des dc
-Namespaces werden durch den Dublin Core Standard festgelegt.
Manifest
<manifest> <item id="toc" href="contents.xml" media-type="text/x-oeb1-document" /> <item id="c1" href="chapter-1.html" media-type="text/x-oeb1-document" /> <!-- ... --> <item id="titlepic" href="title.png" media-type="image/png" /> <item id="titlepic_tiff" href="titlepic.tiff" media-type="image/tiff" fallback="titlepic" /> </manifest>
Fallbacks müssen zu XHTML, JPEG, PNG oder CSS führen
Weitere Package-Bestandteile
<spine>
- lineare Abfolge aller XHTML-Dokumente
<tours>
- z.B. alle Fischrezepte in einem Kochbuch
<guide>
- verweist auf Standard-Bestandteile
- Danksagung, Vorwort, TOC, Index
Vorteile und Probleme
Vorteile und Probleme
Vorteile
- Verwendung etablierter Standards
- XML, XHTML, CSS, MIME, Dublin Core, Unicode
- einfache Erzeugung, gängige Tools
Probleme
- Kein DRM - keine Bücher
- Geräte unterstützen meist nur Binärformate
- Hersteller pushen eigene Formate
Vermutung: OeB hat Zukunft als Austauschformat
Fragen?
DocBook
- Was ist DocBook?
- Beispiel
- Geschichte
- Syntax und Elemente
- Tools
- Customizations
- Stärken, Schwächen, Alternativen
Was ist DocBook?
- XML-Format zum Markup von Texten
- Austausch von technischer Dokumentation
- "single-source publishing"
Beispiel: PHP-Manual
PHP-Manual: www.php.net
PHP-Manual: HTML-Download
PHP-Manual: PDF
PHP-Manual: Windows Help
...außerdem: PalmPilot DOC und iSilo
PHP-Manual: Quelldatei
<?xml version="1.0" encoding="iso-8859-1"?> <!-- $Revision: 1.34 $ --> <chapter id="introduction"> <title>Introduction</title> <sect1 id="intro-whatis"> <title>What is PHP?</title> <para> <acronym>PHP</acronym> (recursive acronym for "PHP: Hypertext Preprocessor") is a widely-used Open Source general-purpose scripting language that is especially suited for Web development and can be embedded into HTML. </para> <para> Simple answer, but what does that mean? An example: </para> <para> <example> <title>An introductory example</title> <programlisting role="php"> <![CDATA[ <html> <head> <title>Example</title> </head> <body> <?php echo "Hi, I'm a PHP script!"; ?> </body> </html> ]]> </programlisting> </example> </para> ...
Der DocBook-Standard
Geschichte
- Software- und Hardware-Systeme werden oft mit umfangreicher Dokumentation geliefert
- Ende 80er: CD-ROM, Online-Dienste
- O'Reilly-Verlag und HaL Computer Systems entwickeln DocBook
- 1991: Veröffentlichung (SGML)
- 2000: XML-Version
- 2002: aktuell ist DocBook 4.2
- von OASIS betreut
Benutzt das jemand?
- O'Reilly
- Quasi-Standard für technische Dokumentation
- Linux-Distros, Sun
- viele Open Source Projekte
- Linux Documentation Project
- Publikation von Papers, Spezifikationen, Dissertationen...
Syntax und Elemente
Hierarchie-Elemente
- ermöglichen Gliederung und Strukturierung
<book>
,<article>
<preface>
,<chapter>
,<appendix>
,<bibliography>
,<glossary>
,<index>
<section>
,<sect1>
...<sect5>
<refentry>
für manpages<qandaset>
für FAQs- und ca. 45 weitere Hierarchie-Elemente
Metainformations-Elemente
- Meta-Angaben:
<title>
,<author>
,<pubdate>
- Container:
<bookinfo>
,<chapterinfo>
,<articleinfo>
,<sectioninfo>
- und ca. 100 weitere
"Information Pool"-Elemente
<para>
- Listen, Tabellen, Hyperlinks, Querverweise, Bilder
- Admonitions:
<caution>
,<important>
,<tip>
- Literatur:
<footnote>
,<indexterm>
,<citation>
- und ca. 110 weitere
Beispiel: Ein Artikel
<?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> <article lang="de"> <title>Hello World mit DocBook</title> <articleinfo> <author> <firstname>Richard</firstname> <surname>Cyganiak</surname> </author> </articleinfo> <para> Hello, World! </para> </article>
Beispiel: Ein Buch
<book lang="de"> <bookinfo> <title>Ein Beispiel-Buch</title> <author> <firstname>Richard</firstname><surname>Cyganiak</surname> </author> <copyright> <year>2002</year><holder>Freie Universität Berlin</holder> </copyright> </bookinfo> <preface><title>Einleitung</title> <para>...</para> </preface> <chapter><title>Das erste Kapitel</title> <para>...</para> </chapter> <!-- ... --> <appendix><title>Ein Anhang</title> <para>...</para> </appendix> </book>
Technische Elemente I
- spezielles Markup für technische Dokumente
- Benutzerinterfaces, Programmierung, Betriebssysteme, Hardware
Beispiel:
<para> Und wenn nichts mehr hilft, drücken Sie <keycombo action="simul"> <keycap>Strg</keycap> <keycap>Alt</keycap> <keycap>Entf</keycap> </keycombo>. </para>
Technische Elemente II
Beispiel:
<!-- public Wumpus getWumpus(int id) throws NoSuchWumpusException; --> <methodsynopsis> <modifier>public</modifier> <type>Wumpus</type> <methodname>getWumpus</methodname> <methodparam> <type>int</type><parameter>id</parameter> </methodparam> <exceptionname>NoSuchWumpusException</exceptionname> </methodsynopsis>
- insgesamt ca. 100 technische Elemente
Beispiel: UNIX man page
<refentry id="ls"> <refmeta> <refentrytitle>ls</refentrytitle><manvolnum>1</manvolnum> </refmeta> <refnamediv> <refname>ls</refname> <refpurpose>list contents of a directory</refpurpose> </refnamediv> <refsynopsisdiv> <cmdsynopsis> <command>/usr/bin/ls</command> <arg choice="opt"> <option>aAbcCdfFgilLmnopqrRstux1</option></arg> <arg choice="opt" rep="repeat">file</arg> </cmdsynopsis> </refsynopsisdiv> <refsect1><title>Description</title> <para> For each file that is a directory, <command>ls</command> lists the contents of the directory. ...
Tools
Übersicht
DocBook XML Publishing-Prozess
Editoren
- Texteditor
- Beliebt: XAE (Emacs Mode für XML)
- XML-Editoren
- DocBook-Unterstützung oft "out of the box"
- Kostenlos mit WYSIWYG: XXE Standard Edition
- Kommerzielle Editoren: Abortext Epic, Corel XMetaL
- Adobe FrameMaker
- Corel WordPerfect
Customizations
Customizations I
Erweiterungen
- Elemente oder Attribute hinzufügen
- erfordert Anpassung der Tools und Stylesheets
- Offizielle Erweiterungen: MathML, SVG, EBNF, HTML Forms
- DBMathTex
Teilmengen
- nicht benötigte Elemente aus DTD entfernen
- entstehendes Dokument ist gültiges DocBook-Dokument
- Beispiel: Simplified DocBook (106 Elemente)
Customizations II
- Idee: Hierarchie-Elemente durch neue Struktur ersetzen
- Slides: für Präsentationsfolien
- Website: für statische Websites
- Docbook Extension for XSLT Stylesheet Documentation
Stärken, Schwächen, Alternativen
Stärken und Schwächen
Vorteile
- Dokumente sind unabhängig vom Zielformat
- ausgereift und praxiserprobt
- viele Tools
Probleme
- Word-ähnlicher Editor?
- Umfang des Standards
- Einführung ist aufwändig
Alternativen
- Andere XML-Formate
- XHTML
- TEI
- XML Spec
- DebianDoc
- DTD selbst entwickeln
- TeX, LaTeX, texinfo
- FrameMaker