Мова розмітки даних — Вікіпедія
Мо́ва розмі́тки — штучна мова, що використовує набір анотацій до тексту, що надає інструкції стосовно структури тексту чи його відображення.
Мови розмітки використовувалися століттями, а в останні роки почали використовуватися в системах комп'ютерної верстки та системах обробки текстової інформації.
Добре відомий сучасний приклад мови розмітки, яка використовується в комп'ютері — це HTML, одна з найпоширеніших мов в Всесвітній мережі. HTML перейняла деякі з домовленостей щодо розмітки в видавничій індустрії.
Термін «розмітка» (markup) виник з традиційної видавничої практики розмічування (marking up) рукописів, шляхом додавання символьних позначок на їхні поля. Століттями це завдання виконувалося переважно кваліфікованими типографами, які розмічували текст, вказуючи який має бути використаний шрифт, його стиль і розмір для кожної частини тексту. А вже потім рукопис потрапляв до рук інших типографів, які мали скласти типографську форму. Прийом розмітки також широко використовувався редакторами, коректорами та графічними дизайнерами.
Ідея використання мов розмітки, вочевидь, вперше публічно була висловлена Вільямом Туннікліффом на видавничій конференції в 1967 році. Цю ідею він назвав «загальним кодуванням» («generic coding»). У 70-х роках Туннікліфф очолював розробку стандарту для видавничої індустрії, який мав назву GenCode, а пізніше став на чолі комітету Міжнародної Організації зі Стандартизації, який створив SGML — першу широко використану наглядну мову розмітки. Наприкінці 60-х дизайнер Стенлі Райс опублікував книгу, де оприлюднив свої розпливчасті припущення в схожій темі. Браян Рейд з університету Карнегі-Меллон у своїх 180 дисертаціях розробив теоретичну та практичну реалізацію наглядної розмітки.
Тим не менш, зазвичай «батьком» мов розмітки сьогодні вважають Чарльза Голдфарба, дослідника IBM. В 1969 році Голдфарб наштовхнувся на основну ідеєю мов розмітки, працюючи над простою системою впорядкування документів для юридичних фірм. Пізніше в цьому ж році, за його допомогою, винайшли IBM GML. GML була вперше офіційно презентована в 1973 році.
У 1975 році Голдфарб переїхав з Кембриджа, штат Массачусетс до Кремнієвої Долини та став проєктувальником науково-дослідного центру «IBM Almaden». У 1978 році він переконав керівництво IBM розгорнути комерційне використання GML, як частину продукту IBM для гнучкої та легкої структуризації документу. Неофіційна розробка почалася того ж року, результатом якої став стандарт SGML. Врешті-решт, Голдфарб обійняв посаду голови комітету SGML. У 1986 році SGML була стандартизована та представлена Міжнародною організацією зі стандартизації.
Деякі ранні приклади використання мов розмітки поза видавничої індустрії можна знайти в типографських наборах інструментів Unix-систем, як то troff та nroff. У цих системах команди форматування були вставлені в текст документу, таким чином дозволяючи типографським програмам форматувати текст згідно з редакторськими специфікаціями. Щоб отримати правильно надрукований документ, треба було діяти методом спроб та помилок. Доступність WYSIWYG- видавничих програм здебільшого витиснула використання мов розмітки звичайними користувачами, проте серйозна видавнича робота досі використовує розмітку для точного визначення не візуальної структури тексту.
У 70-80-х роках Дональд Кнут створив та постійно вдосконалював інший важливий видавничий стандарт — мову розмітки TeX. TeX впроваджує докладну схему описів тексту та шрифту, згідно з професійно надрукованими математичними книжками. Цей підхід вимагав від Кнута витратити доволі багато часу на вивчення мистецтва типографії. Втім, мова TeX неймовірно складна для вивчення, тому вона використовується переважно в академічних колах, де встановлена як стандарт в багатьох наукових дисциплінах. Для широкого використання було створено LaTeX, що на основі TeX впроваджує наглядну систему розмітки тексту.
Першою мовою, яка чітко та ясно розділила структуру тексту та його зовнішній вигляд, була Scribe. Винайдена Браяном Рейдом та описана в його докторській дисертації 1980 року, Scribe була революціонером в багатьох напрямках. Не менш важливо й те, що вона представляла ідею відокремлення стилістики від розмітки документу та введення граматики, яка контролює використання елементів розмітки. Scribe вплинула на подальше винайдення GML (а після неї і SGML) та виступає в ролі праматері для HTML та LaTeX.
На початку 80-х років думка, що розмітка має фокусуватися виключно на структурних аспектах документу, полишаючи візуальне представлення цієї структури програмі-інтерпретатору, призвела до винайдення SGML. Ця мова була розроблена комітетом, очоленим Голдфарбом, та поєднала в собі ідеї з різних джерел, включаючи проєкт Тунік ліфа — GenCode. Важливий внесок в роботу комітету зробили Шерон Адлер, Андерс Берглунд та Джеймс Марке.
SGML чітко визначає загальний синтаксис введення елементів розмітки до документу, а також окремі синтаксичні правила вживання тегів (DTD). Це дозволяє авторам створювати та використовувати різноманітну розмітку, обираючи найвідповідніші за змістом теги, та називаючи їх зрозумілою своєю мовою. Таким чином, SGML вірніше буде назвати метамовою, з якої походять багато окремих мов розмітки. З кінця 80-х років більшість нових важливих мов розмітки, таких як TEI та DocBook, базуються на системі мови SGML. У 1986 році SGML була проголошена ISO як міжнародний стандарт мови розмітки (ISO 8879).
SGML отримала широке визнання та використовується в галузях з великими вимогами до документації. Втім, як побічна дія від спроби робити дуже багато та бути дуже гнучкою, SGML здебільшого була визнана обтяжливою та складною у вивчені. Наприклад, SGML дозволяє не обов'язково створювати закриваючі теги (або відкриваючі, або навіть обидва теги) в певному контексті, оскільки вона розроблялася з думкою, що розмітка буде робитися вручну перевантаженим роботою допоміжним персоналом, який буде вдячний за порятунок від натискання клавіш.
Як вважала більшість людей, до 1991 року SGML буде обмежена використанням в комерційних програмах, заснованих на базах даних, тоді як WYSIWYG-інструментарію (який зберігає документи в бінарному форматі) буде достатньо для інших програм обробки документів.
Ситуація змінилася, коли Сер Тім Бернерс-Лі дізнався про SGML від свого колеги Андерса Берглунда та інших з CERN та використав синтаксис SGML для створення HTML. HTML схожа на інші «тегові» мови, засновані на SGML, хоча вона почала свій розвиток, як найпростіша з усіх, до того ж з незакінченим офіційним Визначенням Типу Документу (DTD). Стівен ДеРозе переконує в тому, що використання наглядної розмітки HTML (та SGML зокрема) було вирішальним фактором успіху Всесвітньої мережі саме завдяки гнучкості та розширюваності, яку вона впроваджує. До інших факторів можна віднести винахід URL та безкоштовне розповсюдження браузерів. Досить ймовірно, що HTML найбільш використовувана мова розмітки на сьогоднішній день.
XML — це, як і SGML, метамова розмітки, яка зараз широко використовується. Вона була розроблена комітетом Консорціуму Всесвітньої павутини, на чолі якого стояв Джон Босак. Головне призначення XML — спростити SGML, фокусуючись на певному завданні — документах Інтернету. XML лишається метамовою, яка дозволяє користувачам створювати будь-які потрібні теги (впровадження розширюваності), а потім описувати ці теги та їх дозволене використання.
Прийняттю XML сприяв той факт, що кожен XML-документ може бути записаний таким чином, що він водночас є і SGML-документом, тому існуючі SGML-користувачі та програми можуть достатньо легко перейти на синтаксис XML. Однак, ця мова розмітки виключає багато більш складних та орієнтованих на людей, характерних рис SGML аби спростити реалізацію розмітки (в той час як зростає обсяг самої розмітки тексту, а зручність читання та редагування зменшується). Інші вдосконалення виправляють деякі проблеми SGML щодо міжнародних налаштувань та зробили можливим аналізувати та інтерпретувати ієрархію документа, навіть якщо немає чіткого визначення DTD.
XML була розроблена головним чином для напівструктурованих середовищ, таких, як документи та публікації. Виявилося так, що XML зайняла найкраще місце між простотою та гнучкістю, тому була швидко адаптована для багатьох інших використань. Зараз XML широко використовується для передачі даних між програмами. Як і HTML, вона може бути описана як «контейнерна» мова.
Починаючи з січня 2000 року усі рекомендації Консорціуму Всесвітньої павутини щодо HTML базувалися на XML, радше за SGML, тому почали використовувати абревіатуру XHTML. Специфікація цієї мови розмітки вимагає аби XHTML- документи були добре сформованими (well-formed) XML-документами, що дозволяє їм бути ретельнішими та надійними, використовуючи при цьому знайомі теги з HTML.
Зараз існує багато застосувань XML, таких як RDF, XForms, DocBook, SOAP та OWL. Для докладнішої інформації щодо інших застосувань XML дивись Список XML- мов розміки.
Загальною рисою багатьох мов розмітки є те, що вони змішують текст документу та інструкції розмітки в одному потоці даних чи файлі. Це не є обов'язковим, адже можна відділити розмітку від текстового змісту задля встановлення розкоординації, використовуючи методи вказівників, зміщення, ідентифікаторів та ін. Така «розмежована розмітка» є типовою для програм перегляду тексту розміченого документа. Однак, більш звичайною залишається «вбудована» розмітка. Ось, наприклад, невелика частина тексту, розміченого за допомогою HTML:
<h1>Місяць</h1> <p>Хоча Місяць і обертається навколо своєї осі, він <em>завжди</em> звернений до Землі тією самою стороною. Річ у тім, що Місяць робить один оберт навколо своєї осі <i>за той самий час</i>, що й один оберт навколо Землі.</p>
Мітки (відоміші як теги), розставлені в кутових дужках (< >), являють собою інструкції мови розмітки, у той час як текст між цими інструкціями є справжнім текстом документу. Теги h1, p, em
— приклади структурної розмітки, оскільки вони описують використання структурної одиниці чи логічного значення частини тексту. Так, тег h1
слугує для виділення в тексті заголовка першого рівня, тег p
— виділення абзацу, em
— логічний наголос на слово чи фразу. Програма-інтерпретатор такої структурної розмітки документу, відтворює її на екрані згідно зі своїми стилістичними правилами щодо шрифтів, кольорів, відступів та ін. Наприклад, текст тегу h1
може бути відтворений на екрані рубленим шрифтом збільшеного кеглю, чи може бути підкресленим, а може навіть ніяк не виділятися.
Тег i
є представником тегів візуальної розмітки та, на відміну від тегів структурної розмітки, використовується задля встановлення візуальних ефектів (в нашому випадку для курсивного написання тексту) без зазначення логічної причини для цього.
Консорціум ініціатив кодування тексту (TEI) був заснований у 1987 році задля розробки, підтримки та пропагування методів кодування гуманітарних текстових даних, не залежних від апаратного та програмного забезпечення комп'ютерів. Протягом трьох десятиліть цей консорціум був надзвичайно успішним в досягненні своєї мети, та його здобутки зараз широко використовуються в наукових проєктах та бібліотеках по всьому світу.
За роки роботи TEI були розроблені та опубліковані розгорнуті настанови щодо того, як логічно правильно кодувати тексти гуманітарних та соціальних наук. Ці настанови використовуються в проєктах кодування історичних документів, творів в окремому жанрі, за певний період часу, певних людей та ін.
Хоча першопочатково поняття мов розмітки виникло стосовно текстових документів, зараз ми бачимо зросле використання мов розмітки в інших областях, де треба працювати з різноманітними типами інформації, такими як плейлісти, векторна графіка, вебслужби, вебсиндикація та інтерфейси користувача. Більшість з них є застосуваннями XML.
Використання XML відкрило можливість об'єднувати декілька мов розмітки до єдиного профілю. Наприклад, XHTML+SMIL and XHTML+MathML+SVG.
Мови розмітки використовуються скрізь, де потрібен вивід форматованого тексту:
- у друкарні: SGML, TeX, PS, PDF;
- у призначених для користувача: інтерфейсах комп'ютерів (troff, Microsoft Word, OpenOffice);
- у Всесвітній Павутині: (HTML, XML, XHTML);
- у Вікіпедії учасники використовують особливу мову розмітки (див. Вікіпедія:Як редагувати статтю);
- в музиці, для нотного запису: ABC розмітка, LilyPond, ASCII tab.
- Список мов розмітки даних
- Мова програмування
- Формальна граматика
- CSS
- Європейська абетка Войнича
- ТЕІ (ініціатива кодування тексту)
- TEI guidelines
- Markup systems and the future of scholarly [Архівовано 12 травня 2019 у Wayback Machine.] text processing by James H. Coombs, Allen H. Renear, and Steven J. DeRose. Originally published in the November 1987 CACM, and reprinted
- Консорціум Всесвітньої павутини [Архівовано 11 червня 2020 у Wayback Machine.]
- Специфікація XML 1.1 [Архівовано 29 вересня 2018 у Wayback Machine.]
- An XHTML + MathML + SVG Profile [Архівовано 17 грудня 2008 у Wayback Machine.]