# XBUP - Dokumentace: Jazykové bloky

### Úvod

Tento dokument je součástí dokumentace projektu eXtensible Binary Universal Protocol. Obsahuje popis jazykových bloků.

O úroveň výše

### Obsah

1. Úvod
2. Jazyková data
2.1. Jazyk
2.1.1. Index jazyka - RFC
2.1.2. Název jazyka v ASCII
2.1.3. Multijazyková data
2.2. Kódování znaků
2.1.1. Index kódování IANA
2.1.2. Název kódování v ASCII
2.3. Komentářový blok
3. Reference

### 1. Úvod

Jazykové bloky umožňují reprezentovat data související s mluveným a psaným jazykem, symbolickým vyjádřením významu slov a kategorizací. Později by součástí mohl být i univerzální jazyk a definice jeho významu a způsobu použití.

### 2. Jazyková data

Jazyková data zahrnují informace související s mluveným slovem, jako jsou text, jazyk, kódování textu, identifikace mluvčího, deklarace významu slov, překládání jazyků a podobně.

Catalog: XBUP_Protocol/Society/Language/

### 2.1. Jazyk

Tento blok slouží pro určení jazyka, ve kterém je uložen text, případně obrázek, nebo jiná jazykově závislá data, jako například mluvené slovo, či záznam znakové řeči. Pro základní verzi byla použita dostupná definice čísel pro jednotlivé světové jazyky. Další verze a indexy bloků jsou rezervovány pro budoucí použití.

Dalšímy bloky bude možné specifikovat podmínky, za jakých je daný jazyk použit, například jako mluvené slovo u videa atp.

### 2.1.1. Index jazyka - RFC

Tento blok využívá pro specifikaci jazyka normalizovaných čísel RFC LanguageNumber, uvedených na internetu, například i na stránkách IANA.

Catalog: XBUP_Protocol/Society/Language/RFCLanguage

UBNatural - MajorLanguageIndex
UBNatural - MinorLanguageIndex

### 2.1.2. Název jazyka v ASCII

Druhou možností je použít RFC LanguageString a pomocí ASCII uvést název kódování. Preferuje se samozřejmě číselná varianta, protože název kódování je možné zobrazit až na aplikační úrovni.

Kódy jsou obvykle ve tvaru xx_YY, kde xx je kód jazyka a YY je kód země.

Catalog: XBUP_Protocol/Society/Language/RFCASCIILanguage

UBPointer - StringPointer

### 2.1.3. Multijazyková data

Tento blok je základním odvozením seznamu jednoduchých identifikátorů jazyka. Vhodný je tedy v případě, kdy data používají více jazyků zároveň.

Catalog: XBUP_Protocol/Society/Language/MultiLanguage

UBList - Languages

### 2.2. Kódování textu

Kódování textu je v podstatě povinná položka pro obecný textový jazykový řetězec. Na vyšší úrovni protokolu by měla být později definována tabulka znaků a jejich grafické vyjádření, stejně jako rovnost znaků pro různá kódování. Pro definici kódování je možné použít jeden z následujících způsobů.

Catalog: XBUP_Protocol/Society/Language/Encoding/

### 2.2.1. Index kódování IANA

Následující blok pro určení kódování textu vychází z dobře zavedeného standardu IANA pro indexy použitých kódování.

Catalog: XBUP_Protocol/Society/Language/Encoding/

UBNatural - IANAEncodingMajorNumber
UBNatural - IANAEncodingMinorNumber

### 2.2.2. Název kódování v ASCII

Tato verze využívá specifikace kódování podle jednoznačné identifikace znakovým řetězcem v kódování ASCII také dle standardu IANA.

UBPointer - IANAEncodingStringPointer

### 2.3. Textový řetězec

Textový řetězec je "význam" kódovaný pomocí slov nad nějakou abecedou. Při ukládání textu je nutné vzít do úvahy podporu libovolného jazyka, kódování a dalších vlastností textu. V případě text se jedná o jistou formu komprese grafických symbolů a významu.

Základní blok pro obecný text je následující (jedná se o transformační blok):

Catalog: XBUP_Protocol/Society/Language/Text/String

UBPointer - StringDataPointer
UBPointer - EncodingPointer
UBPointer - LanguagePointer

Zřejmě není vhodné použít přímo nějakou hodnotu pro kódování, ale použít externí blok, který pak bude možné případně definovat jako automatický, nebo jej odkazovat od jinud.

Jinou možností je vytvořit bloky pro řetězce s pevně danými hodnotami kódování, kde by se vlastně hodnota kódování zahrnuta do kódu bloku. A vytvořit například bloky ASCIIString a UTFString.

### 2.3.1. Textový řetězec ASCII

Textový řetězec s kódováním ASCII vznikl zafixováním hodnoty kódování v bloku String.

Catalog: XBUP_Protocol/Society/Language/Text/ASCIIString

UBPointer - StringDataPointer
UBPointer - LanguagePointer

### 2.3.2. Textový řetězec UTF-8

Podobně jako v předchozím případě je tentokrát hodnota kódování pevně stanovena na UTF-8.

Catalog: XBUP_Protocol/Society/Language/Text/UTF8String

UBPointer - StringDataPointer
UBPointer - LanguagePointer

### 2.4. Komentářový blok

Přímou aplikací textového bloku je blok pro realizaci textového komentáře. Ten je možné vložit na libovolnou úroveň kamkoliv do souboru. Komentářových bloků bude pravděpodobně více typů podle způsobu jejich možného zobrazení.

### 3. Reference

[IANACharset] IANA MIBEnum Character Set Registry, URL: ftp://ftp.isi.edu/in-notes/iana/assignments/character-sets
[RFC] Request For Comment, URL: http://www.rfc.org
[ASCII] American Standard for Code Interchange
[UTF-8] UCS Transformation Format, URLs: http://www.faqs.org/rfcs/rfc2279.html
[ISO 639.2] Codes for the Representation of Names of Languages, URL: http://www.loc.gov/standards/iso639-2/php/English_list.php
[IANA Root-Zone] Root-Zone Whois Information, URL: http://www.iana.org/root-whois/index.html

Homepage: http://xbup.sf.net
License: GNU Free Documentation License (FDL)
Latest update: 2007-03-13