Struktury informačních zdrojů: studijní opora
5. Stromová struktura otevřených dokumentů: standard SGML
5.1. SGML
SGML - Standard Generalized Markup Language (Standardní univerzální vyznačovací jazyk)
ISO 8879:1986
Příloha A - Úvod do univerzálního vyznačování
- Obecný jazyk pro popis všech prvků elektronicky publikovaného dokumentu (textu, titulní strany, názvů kapitol, tabulek, obrázků apod.), který formalizuje vyznačování a činí je nezávislým na systému a souvislostech zpracování; dokument tvoří soubor označeného textu se vsunutými označeními údajů (tagy), jež definují začátek a konec každé logické jednotky
- Metajazyk určený pro popis (kódování) hierarchicky strukturovaných textů
- Metajazyk určený pro formální popis konkrétních jazyků typu "markup" (definuje jejich syntaxi)
- Objektově orientovaná metoda popisu dokumentů
užití: oblast publikování (vydavatelská činnost) v nejširším slova smyslu, zejména textově orientovaných informací
Základní notace SGML
<počáteční tag>
</koncový tag>
<!-- komentář, který se nezobrazuje -->
Notace pro definici typu dokumentu a příklady hodnot
název prvku (elementu) | pravidla minimalizace vyznačení | model obsahu | |||
povinnost uvádění počátečního tagu |
povinnost uvádění koncového tagu |
obsažené elementy | možnost opakování, povinnost výskytu |
data | |
antologie | - 0 | - 0 | (báseň) |
+ ? * |
(#PCDATA) |
spojovací symboly (konektory)
, |
oddělovač v rámci závazného pořadí |
| |
výběr jedné z uvedených možností |
& |
nutné elementy bez závazného pořadí |
přípony (indikátory) výskytu
? |
volitelný neopakovatelný element (0 nebo 1) |
+ |
povinný opakovatelný element (1 nebo více) |
* |
volitelný opakovatelný element (0, 1 nebo více) |
obsah ("datové typy")
#PCDATA |
parsed character data - syntakticky analyzovaná znaková data |
CDATA |
znaková data - jakákoli data zobrazená znaky (texty) |
EMPTY |
obsah je prázdný |
ID |
jedinečný identifikátor (atribut elementu, který přesně stanoví jeho obsah) |
ID=něco znamená, že obsahem atributu je hodnota ID (např. soubor s obrázkem) |
příklady prvků DTD
|
Vyjádření v notaci UML (zahrnuje jen některé z variant uvedených v levém sloupci) |
||
báseň (autor , sloka*) |
báseň tvoří jméno autora a sloky (přesně v tomto pořadí) | ||
|
báseň má (atribut) název | ||
báseň (název & autor & sloka*) |
báseň tvoří název, jméno autora a sloky (v libovolném pořadí) | ||
|
každá sloka obsahuje alespoň 1 verš, může jich mít více | ||
autor (foto | kresba | video) |
u autora se uvádí buď fotografie, nebo kresba nebo video | ||
autor? |
báseň může mít jen 1 autora, nemusí mít žádného | ||
název (#PCDATA) |
obsah atributu název je tvořen textem |
Příklad:
DTD pro antologii poezie
Logická struktura:
Antologii neboli výbor tvoří básně zpravidla různých autorů, u nichž je uveden název, údaje o autorovi a fotografie nebo kresba autora, případně videozáznam. U překladů se uvádí jméno překladatele. Básně se člení na sloky, sloky na verše. Každá báseň má alespoň jednu sloku, v každé sloce je alespoň jeden verš.
Definice typu dokumentu:
<! DOCTYPE antologie [ |
||
<! ELEMENT antologie |
- - |
(báseň+)> |
<! ELEMENT báseň |
- - |
(název?, autor, sloka+, překladatel?)> |
<! ELEMENT název |
- - |
(#PCDATA)> |
<! ELEMENT autor |
- - |
(jméno, datum narození, datum úmrtí?, foto? | kresba?, video?)> |
<! ELEMENT jméno |
- - |
(#PCDATA)> |
<! ELEMENT datum narození |
- 0 |
(#PCDATA)> |
<! ELEMENT datum úmrtí |
- 0 |
(#PCDATA)> |
<! ELEMENT foto |
- 0 |
EMPTY> |
<! ELEMENT kresba |
- 0 |
EMPTY> |
<! ELEMENT video |
- 0 |
(videozáznam, komentář)> |
<! ELEMENT videozáznam |
- 0 |
EMPTY> |
<! ELEMENT komentář |
- 0 |
(#PCDATA)> |
<! ELEMENT sloka |
- - |
(verš+)> |
<! ELEMENT verš |
- 0 |
(#PCDATA)> |
<! ELEMENT překladatel |
- - |
(#PCDATA)> |
]> |
Instance dokumentu:
<antologie> Toto je část básně z připravované antologie americké poezie --> Samoobsluha v Kalifornii </název> Allen Ginsberg </jméno> 1926 <datum úmrtí> 1997 <foto ID= ginsberg.jpg> GinsbergCorso.mov> Allen Ginsberg a Gregory Corso v San Franciscu v roce 1997 </autor> Jak jsem na tebe myslel dnes večer, Walte Whitmane, když jsem kráčel postranními uličkami pod stromy, bolela mě hlava a plaše jsem hleděl na měsíc v úplňku. <verš> Utahaný a hladový, chtěl jsem nakoupit obrazy, a tak jsem vešel do neónové samoobsluhy s ovocem a snil o tvých enumeracích! <verš> Jaké broskve a jaké odstíny! Celé rodiny nakupující v noci! Uličky plné manželů! Ženy u avocados, děti v rajčatech! - A ty, Garcío Lorco, co tys tam hledal mezi melouny? </sloka> Jan Zábrana</překladatel> |
Ukázky struktury a stručný návod k tvorbě DTD dokumentů podle standardu SGML:
SGML1 - Antologie poezie
SGML2 - Bibliografický záznam