SGML SGML - структури DTD

Рефераты по астрономии » SGML SGML - структури DTD
Реферат на тему: SGML

SGML - Міжнародний Стандарт Всесвітньої Організації Стандартів - ISO 8879-1986: Information processing--Text and office systems--Standard Generalized Markup Language (SGML). SGML - міжнародний стандарт для визначення системно-незалежного методу маркапа. Для представлення тексту в електронному виді. Незважаючи на всю складність і глобальність поставленої мети SGML є вкрай простим по ідеї стандартом. Ця ідея може бути представлена так:

Створити чітку і формальну систему що визначає єдиний головний метод для виконання дій; і у той же час залишити можливість для будь-яких інших методів.

Перш ніж перейти до формального опису стандарту буде представлений неформальний опис що фактично є перекладом стандарту.

Неформальне введення в SGML

SGML - стандарт у формальному змісті цього слова - створений і погоджений міжнародним науковим співтовариством під егідою Міжнародної Організації Стандартизації (ISO). Його формальна повна назва - ISO 8879 Information processing - Text and office systems - Standard Generalized Markup Language (SGML) перше видання було опубліковано 15.10.1986р. перше виправлення було опубліковано 01.07.1988р. Він доступний у найближчому відділенні організації стандартизації (яке зажадає за нього тонни грошей).

Визначити неформально чим насправді є SGML досить важко. Це мова що може бути використана щоб побудувати інфраструктуру для обміну і довгострокового збереження інформації. Використовуючи аналогію її можна визначити як "SGML і мистецтво збереження й обробки інформації - Розуміння значення Інформації". Таким чином це спосіб життя після того як ми зрозуміли що інформацію що ми створюємо живе своїм власним життям і може вмерти якщо ми не доглядаємо за нею і не годуємо її правильним образом. У древні часи для знищення інформації необхідно було спалити одну з деяких значних бібліотек. Мало того тебе б ще і внесли в історію за це. Сьогодні досить усього лише установити нову версію якого-небудь програмного продукту перемінити принтер скористатися патентованим методом для компресії даних і т.п. щоб знищити в багато разів більше інформації. А підручники по історії навіть не намагаються відбивати той факт що попереднє покоління технічних засобів було останніми хто бачив ці дані.

SGML дотепер розглядається як формат для представлення інформації для публікації тексту друкованих документів або як засіб представлення тих же документів на CD-ROM і т.д. Публікація – була початкова ціль стандарту однак незабаром стало ясним що він має набагато великий потенціал (у зв'язку з чим навіть народилася нова розшифровка акронима SGML - Sounds Great Maybe Later (Звучить чудово може бути пізніше)).

За межами публікаційної індустрія SGML розглядається як можливість врятувати інформацію що генерує людство і записує в тлінних закритих не документованих форматах. Наприклад за час що потрібно для створення словника якої-небудь мови комп'ютерна індустрія переживе принаймні дві значні революції. Індустрія де "три секунди - великий проміжок часу" допомагає будувати й обслуговувати об'єкти час життя яких - кілька мільярдів секунд (3 мільярди секунд - ледве більше 95 років). Сюди входять підвищення цін на енергоносії міста закони "культурна спадщина" стандарти.

Однак останні кілька сотень мільйонів секунд має значення тільки конкретний продукт "сумісність" і використання комп'ютерів для імітування друкованого й іншого видів інформації. Цей етап пройде і люди нічого не здатні поробити зі своєю старою інформацією зрозуміють що ті божевільні провісники 80-х і 90-х були праві.

Багато людей цілком щасливі виконувати ту саму роботу знову і знову - роботу що інші робили раніш а ще інші будуть робити після них - навіть тоді коли немає ніякої зовнішньої необхідності в цьому. Величезні зграї менеджерів щасливі втрачати стільки ж доларів скільки губиться секунд при такій схемі. Цілі нації побудовані на працевлаштуванні людей що тасують папери туди сюди. Безумовно один стандарт не може зупинити подібну розтрату. Але він може зробити життя легшим тим хто відмовляється брати участь у цьому величезному псуванні ресурсів.

SGML - це ідея філософія мова для вираження глобальних ідей для сьогодення і майбутнього. А якщо він має ці якості він обов'язково буде використовуватися і тими хто має набагато більш обмежене бачення. І тут функцію коміксів мультиків і MTV виконує HTML. Як і багато читачів коміксів більшість фанів HTML не мають уяви відкіля він узявся. Однак деякі бачать зв'язок і задумуються над більш глобальними схемами.

На жаль у даний момент немає яких-небудь дійсно гарних "підручників" по SGML. Ніде прочитати про головні принципи способи реалізації їх і принципам побудови закінченої системи і способам забезпечення довговічного використання інформації. Однак багато приватних питань освітлені в численних "вступних" і "практичних" описах.

Якщо ви шукаєте підручник придатний до використання в умовах чи інституту чи університету буде виданий подібний наприкінці цього чи початку наступного року. Я упевнений що SGML буде залишатися не при справах поки його основні ідеї не будуть зрозумілі всіма програмістами і дослідниками в області інформатики. Однак відсутність інформації книг і програмних засобів в академічних установах - саме там де зародилися багато сучасні реально використовуваних засобів такі як C Unix Internet WWW і т.д. - є однією з основних причин гальмування SGML.

Введення в SGML

Дозволимо собі ще раз повторити що SGML є міжнародним стандартом для представлення розміченого електронного тексту. Більш точно SGML є метамовою. Це значить що він призначений для опису мови у даному випадку мови маркапа тексту. Перш ніж йти далі дамо більш розширені і формальні описи основних понять.

Історично слово маркап (розмітка) використовувалося для опису спеціальних позначок що призначалися для чи машиніста складача і що описують як повинний бути видрукуваний чи набраний конкретний фрагмент тексту. Приклади включають хвилясте підкреслення для жирного шрифту спеціальні знаки на початку абзацу що повинний бути видрукуваний конкретним шрифтом і т.д. У міру того як форматування і печатка тексту стала автоматизованої значення терміна маркап було розширено для позначення всіх типів спеціальних маркап-кодів що вставляються в електронний текст для керування процесом чи форматування печатки чи іншої обробки.

Узагальнюючи цей зміст ми визначаємо маркап чи розмітку як будь-який спосіб вказівки явного способу інтерпретації тексту. На тривіальному рівні весь друкований текст розмічений у цьому змісті: пунктуація використання заголовних букв розташування літер на сторінці навіть пробіли між словами можуть вважатися як деякий вид маркапа призначення якого полягає в тому щоб допомогти людині визначити де закінчується одне слово і починається інше чи як інтерпретувати більш глобальні структури - такі як заголовки підлеглий пропозиції в головній пропозиції уся головна пропозиція абзаци і т.д. Маркап тексту в принципі також як і стенографія - процес вказівки явно того яким чином повинно інтерпретуватися зміст тексту.

Під мовою маркапа розуміється сукупність угод про маркап використовуваних для розмітки тексту. Мова маркапа повинна визначати:

Синтаксис маркапа:

який маркап є припустимим

який маркап необхідний

як маркап відрізняється від тексту

Семантика маркапа:

що маркап означає.

SGML дозволяє визначити три перші синтаксичні обмеження на маркап. Для визначення семантики використовується додатковий стандарт наприклад HTML TEI CES чи іншої.

Схема маркапа що вводиться SGML (далі просто SGML) має три основних відмінності від "класичних" схем:

Орієнтація на дескриптивний маркап

Об‘єктно-оріентована модель

Незалежність від конкретного фізичного представлення тексту.

Ці три особливості описуються більш докладно далі

Орієнтація на дескриптивний маркап

SGML по визначенню припускає використання дескриптивної схеми маркапа. Дані необхідні для якої-небудь конкретної обробки документа (наприклад форматування) чітко відокремлюються від дескриптивного маркапа що міститься в документі. Звичайно вони зібрані за межами документа у виді відповідних алгоритмів і програм. Існують стандарти що визначають їхній (DSSSL HyTime).

При використанні дескриптивного маркапа один і той же документ як вже відзначалося може оброблятися різними способами за допомогою різних програм кожна з який приділяє увагу тим частинам документа що є важливими для даного методу обробки. SGML як стандарт підтримує і робить реально реалізованим такий принцип роботи. Наприклад програма аналізу змісту тексту (приміром система автоматичного анотування) може цілком ігнорувати виноски і примітки що зустрічаються в тексті у той час як форматуюча програма може витягати їх з тексту і збирати всі разом щоб потім вивести наприкінці розділу. Різні методи обробки можуть застосовуватися для тих самих частин документа. Одна програма може робити вибірку з документа всіх особистих імен і назв місць і створювати по них базу даних у той час як інша для тих же елементів документа виконує їхнє форматування таким чином щоб вони виділялися з навколишнього тексту.

Об‘ектно-орієнтовна модель

SGML вводить поняття класу чи типу документа і спосіб його завдання й опису - Document Type Definition (DTD). Документи вважаються визначеного типу точно також як і будь-які інші об'єкти оброблювані комп'ютером. Тип документа формально визначається його складовими частинами і їхньою структурою. Звіт наприклад визначається як назва і можливо автор за яких випливає реферат і послідовність з одного чи більш абзаців. Текст що не має назви відповідно до цього формального визначення формально не є звітом також як і послідовність абзаців з яких випливає реферат незважаючи на подібність на звіт з погляду читача-людини.

Якщо тип документа відомий спеціальна програма (парсер) може бути використана для перевірки того що вміст документа відповідає його типу - всі його необхідні частини присутні і випливають у потрібному порядку. Більш важливо що різні документи того самого типу можуть оброблятися однаковим способом. Можуть бути написані програми що використовують інформацію задану у визначеному типу документа і здатні завдяки цьому робити більш розумні і значимі дії.

Незалежність від низькорівневих представлення даних

Базовою метою що ставилася при розробці SGML була задача забезпечення перенесення документів між різними програмними й апаратними платформами без втрати інформації. Завдяки попереднім двом особливостям ця вимога досягається на абстрактному рівні. Розглянута тут можливість забезпечує цю вимогу на фізичному рівні за допомогою визначення значення послідовностей байтів з яких складається документ. SGML надає механізм загального призначення для заміни рядків тобто простий машинно-незалежний спосіб для вказівки того що конкретна послідовність символів у документі повинна бути замінена на іншу під час обробки документа. Одне з застосувань цієї можливості - забезпечення однаковості термінології й інших параметрів документів; інше більш важливе - забезпечення можливості переносу тексту що містить нестандартні і т.п. символи між різними платформами що мають різні набори символів можливості по їхньому відображенню і т.д. Це досягається за допомогою заміни нестандартних символів на рядки що задають їхні коди. Послідовності символів визначені для описаної вище заміни називаються entities ("поняття").

SGML-структури
Текстуальна структура

Текст не є недиференційованою послідовністю слів а тим більше байт. Для різних цілей він може бути розбитий на безліч різних елементів різних типів і розмірів. Прозаїчний текст може бути розбитий на розділи глави абзаци і пропозиції. Віршований - на cantos строфи і рядки. Надрукований текст залишаючись чи прозою віршем і не залежно від цього розбивається на томи брошури і сторінки.

Структурні елементи подібного типу найчастіше використовуються для посилання на конкретні місця в тексті ("третя пропозиція другого параграфа глави 10" "песня 10 рядок 1234" "сторінка 412" і т.д.) хоча можуть використовуватися і по прямому призначенню - як позначення деякої структурно- і завершеною по змісту одиниці тексту наприклад для аналітичних цілей (" чи відрізняється середня довжина пропозиції в розділі 2 у порівнянні з розділом 5?" "скільки абзаців розділяють кожне зустрінуте слово `природа' ?" "скільки сторінок у документі?"). Інші структурні елементи є чисто аналітичними у тім змісті що вони характеризують деяку частину тексту. У драматичному тексті мова якого-небудь персонажа може вважатися елементом одного типу а вказівки для чи сцени опису дій - як інший тип. Подібний аналіз менш корисний для посилання на конкретне місце в тексті ("93-я мова Гораціо в акті 2") чим для проведення порівнянь лексики одного персонажа в порівнянні з іншим і т.п.

У прозаїчним тексті подібним же чином можна виділяти пряму і непряму мову стильові особливості тексту (оповідання полеміка коментар аргументація і т.д.) цитати різних авторів і так далі. А для деяких типів аналізу (найбільше для критичного розбору) фізичного представлення друкованого чи рукописного тексту також може мати значення: парадоксально але може виявитися необхідним використовувати дескриптивний маркап для опису процедурного.

Описані текстуальні структури перетинаються і накладаються один на одного утворити складні і непередбачені комбінації. Таким чином вимагаються як способи забезпечення можливості роботи з декількома ієрархіями так і методи забезпечення надійності такого маркапа і виключення небажаного взаємного впливу. SGML забезпечує ці можливості на різних рівнях - як на найпростішому коли обов'язок стежити за несуперечністю перетинання структур лягати на користувача так і на самому верхньому рівні забезпечуючи можливість застосування різних схем маркапа для того самого документа тобто формально допускають що документ може включати декілька типів документів.

SGML-структури

У цьому параграфі описуються чітка і проста ідея схеми маркапа використовувана в SGML для ідентифікації структурних елементів у тексті. Також описуються методи що надає SGML для визначення правил що описують які комбінації цих елементів є припустимими для документа.

Елементи

Елемент - термін використовуваний у SGML для позначення якої-небудь структурної одиниці тексту. Різним типам елементів даються різні імена але SGML не надає ніякого способу визначення змісту і значення конкретного типу елемента крім завдання його відносин з іншими елементами. Таким чином єдине що можна сказати про елемент (наприклад) <blort> - це те чи можуть екземпляри цього елемента зустрічатися усередині елементів типу <farble> і те чи може він сам бути декомпозован на елементи типу <blortette>. Варто підкреслити що SGML ніяким образом не визначає семантику елементів; по стандарті вона залежить від додатка.Створення SGML-сумісного набору тегів і завдання їхнього змісту саме і є тією задачею що вирішують додаткові стандарти такі як HTML і XML XSL; саме вони задають конкретну схему маркапа й у частині синтаксису роблять це в термінах SGML. При визначенні елемента йому необхідно привласнити ім'я що відбиває його призначення; таке ім'я називається generic identifier (GI).

У тексті (document instance екземплярі документа) кожен елемент повинний бути явно позначений деяким чином. Стандарт надає безліч можливостей зробити це найбільше часто використовуваним є вставка тега на початку елемента (start-tag) і іншого наприкінці (end-tag). Старт- і енд- теги використовуються щоб узяти в дужки текст що входить в елемент точно так само як різні дужки і лапки в звичайній пунктуації. Наприклад цитата може бути позначена в такий спосіб:

... Rosalind's remarks <quote>This is the silliest stuff

that ere I heard of!</quote> clearly indicate ...

Як видно з цього приклада старт-тег має форму <gi> де кутові дужки задають початок і кінець самого старт-тега а gi - ідентифікатор тега. Енд-тег відрізняється від старт-тега тільки тим що перед ідентифікатором ставиться коса риса: </gi>.

Моделі змісту

Елемент може бути порожній тобто взагалі не мати вмісту чи містити простий текст. Однак звичайно елементи одного типу будуть вкладені (будуть цілком міститися) усередині елементів іншого типу і т.д. Таким чином текст має деревоподібну структуру у якій елементи рекурсивно входять один в іншій:

Element::=EMPTY | Char+ | Element+

Щоб проілюструвати це розглянемо вкрай просту структурну модель: припустимо що в межах антології ми хочемо ідентифікувати тільки вірші а саме їхні назви і строфи і рядки з яких вони складаються. У термінах SGML тип нашого документа - антологія і вона складається з послідовності віршів. Кожен стих являє собою заголовок за яким випливає одна чи більш строфа. Строфа складається з послідовності рядків. Цілком розмічений текст буде виглядати в такий спосіб:

<anthology>

<poem><title>The SICK ROSE</title>

<stanza>

<line>O Rose thou art sick.</line>

Страницы: 1 2