Computerlinguistik Uni Erlangen
Weiter:
Sechste Sitzung (Referat)
Zurück:
Unterlagen
Vorher:
Fünfte Sitzung
Fünfte Sitzung - Referat: SGML und sp
Historische Entwicklung
- traditionelles Markup: Angaben, wie der Text zu
drucken ist.
- elektronisches Markup: wie 1., nur maschinenlesbar.
- spezifisches Markup: z.B. nroff; Dem
Textformatierungssystem wird vorgegeben, was es zu tun hat.
- generisches Markup: z.B. LaTeX;
Formatierungsanweisungen werden in Makros versteckt.
- SGML: Sprache zur Beschreibung von beliebig vielen
Dokumenttypen. Im Gegensatz zu TeX beschäftigt sich SGML
nicht mit der Formatierung der Daten.
Elemente eines SGML-Dokuments
- SGML-Deklaration
- Document Type Definition (DTD)
- Dokumentinstanz
SGML-Deklaration
- normalerweise für alle SGML-Dokumente identisch
- definiert die Begrenzungszeichen (z.B. <, >, /)
- definiert den Zeichensatz (ASCII,...)
Document Type Definition (DTD)
- legt die Struktur eines Dokuments fest
- unterschiedlich für verschiedene Dokumenttypen (HTML,
Buch, Wörterbuch)
- in SGML geschrieben
- kann außerhalb des Dokuments gespeichert werden
Dokumentinstanz
- enthält die Daten
- enthält Markup
- enthält eine Referenz auf die DTD, falls diese nicht
bereits im Dokument vorhanden ist.
Aufbau einer DTD
<!ELEMENT MEMO - - ((TO & FROM), BODY, CLOSE?)>
- Markup-Deklarationen: hier ELEMENT.
- Namen: hier MEMO oder BODY.
- Verkürzung: hier - -.
- Gruppen: hier (TO & FROM).
- Wiederholungszeichen: hier ?.
- Verknüpfungszeichen: hier ,&.
Markup-Deklarationen
- Werden begrenzt durch <! und >.
- Die häufigsten Deklarationen sind ELEMENT,
ENTITY und ATTLIST.
Namen
- maximal 8 Zeichen lang.
- erstes Zeichen ist Element von [a-zA-Z].
- restliche Zeichen sind Element von [a-zA-Z0-9.-].
- Namens-Token: alle 8 Zeichen sind Element von
[a-zA-Z0-9.-].
Abkürzungen
- -
| beide Marken sind Pflicht
|
- O
| die Endmarke kann entfallen
|
O -
| die Anfangsmarke kann entfallen
|
O O
| beide Marken können entfallen
|
Gruppen
Als Gruppe wird alles bezeichnet, das sich innerhalb (
und ) befindet, z.B. (FROM & TO)?.
Verknüpfungs- und Wiederholungszeichen
(a)
| a kommt genau einmal vor
|
(a,b)
| a gefolgt von b
|
(a|b)
| entweder a oder b kommt einmal vor
|
(a&b)
| a und b kommen vor, Reihenfolge spielt
keine Rolle
|
(a+)
| a kommt mindestens einmal vor
|
(a?)
| a kommt nicht oder einmal vor
|
(a*)
| a kommt beliebig oft vor
|
Markup-Deklarationen
Elemente
<!ELEMENT PARA - O (#PCDATA|HR)* +(FOOTNOTE)>
Elementinhalte
- EMPTY: Element ohne Inhalt, z.B. <img
src="this.gif">.
- CDATA: Zeichenfolgen, die nicht geparsed werden.
- RCDATA: Entity und Zeichenreferenzen werden erkannt.
- Modellgruppen: Gruppen, wie oben beschrieben.
- #PCDATA: "parsed character data", tritt
nur in Modellgruppen auf.
- ANY: Element mit beliebigem Inhalt.
Ausnahmen
Ausnahmen, gestatten es, in Elementvereinbarungen Ausschlüsse
und Einschlüsse zu vereinbaren.
<!ELEMENT KAPITEL - O (UNTERKAP)+ -(KAPITEL) +(FUSSNOTE|BILD)>
- -(KAPITEL): in <KAPITEL> darf kein
weiteres Element <KAPITEL> vorkommen.
- +(FUSSNOTE|BILD): <FUSSNOTE> und
<BILD> dürfen in beliebiger Reihenfolge
vorkommen.
Attribute/Attributlisten
<!ATTLIST IMG
| - -
| Name,
| Typ,
| Default
| - -
|
|
| SRC
| %URI;
| #REQUIRED
|
|
|
| ALT
| CDATA
| #IMPLIED
|
|
|
| ALIGN
| (top|middle|bottom)
| #IMPLIED>
|
|
Name und Typ werden wie bei ELEMENT
gesetzt.
Default muß einer der folgenden Werte sein:
- #CONREF: Referenz auf einzusetzende Daten.
- #CURRENT: der letztbenutzte Wert wird verwendet.
- #FIXED [Wert]: der Wert ist konstant und muß
nicht angegeben werden.
- #IMPLIED: das SGML-Programm kann den Default-Wert
selbst setzen.
- #REQUIRED: hier muß ein Wert angegeben
werden.
Entities (Einheiten)
beliebig langes Textstück, daß in den Text eingesetzt
wird.
-
allgemeine Entities: nur in Deklaration. Zugriff:
%entity;
<!ENTITY % b "test">
-
allgemeine Entities: im Dokument. Zugriff:
&entity;
<!ENTITY c "%b;">
-
externe Entities: außerhalb des Dokuments
deklariert.
z.B. <!ENTITY c SYSTEM "my_entity"> oder
<!ENTITY % HTMLlat1 PUBLIC "-//W3O//ENTITIES W3 Latin
1 for HTML//EN">
Doctype
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
//
| Trennzeichen
|
-
| doctype ist nicht registriert. (+: registriert)
|
IETF
| "Eigentümer"
|
DTD HTML
| Klasse (DTD) und Beschreibung (HTML)
|
EN
| Sprache
|
<!DOCTYPE HTML SYSTEM
"/usr/lib/xemacs/etc/sgml/html.dtd">
DTD befindet sich an dieser Stelle im System.
|
Der SGML-Parser SP
Wichtigstes Programm dieses Pakets ist nsgmls, ein
SGML-Parser. Der Output kann mit Tools wie SGMLSpl
weiterverarbeitet werden.
Kommanozeilenparameter:
- -bencoding: setzt die Dokumentkodierung;
z.B. unicode, iso8859-1
- -ccatalog: entweder, man setzt ein
Environmentvariable SGML_CATALOG_FILES, oder man gibt
hier an, wo nsgmls SGML-Kataloge findet. In einem Katalog werden
PUBLIC-ID's von DTD's auf DTD's abgebildet.
- -Ddir: Verzeichnis/se, in denen nsgml nach
der DTD sucht, die auf die Dokumentinstanz paßt.
Weiter:
Sechste Sitzung (Referat)
Zurück:
Unterlagen
Vorher:
Fünfte Sitzung
Oliver Lorenz
Jörg
Schreiber
zuletzt geändert am 14. Juli 1998