Редактирование: Tabtree
Перейти к навигации
Перейти к поиску
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий ниже, чтобы убедиться, что это нужная вам правка, и запишите страницу ниже, чтобы отменить правку.
Текущая версия | Ваш текст | ||
Строка 1: | Строка 1: | ||
Формат для унифицированной записи данных и мета-информации об этих данных. Также может использоваться для записи онтологий (как расширение описания мета-данных, ведь фактически онтология задает типы данных). | |||
Формат для унифицированной записи данных | |||
== Принципы == | == Принципы == | ||
* Основной элемент формата - это объект с параметрами. В терминологии Tabtree объекты называются ''айтем (item)'' | * Основной элемент формата - это объект с параметрами. В терминологии Tabtree объекты называются ''айтем (item)'' | ||
* Один айтем - одна строка (см. также про Multiline Tabtree ниже). | * Один айтем - одна строка (см. также про Multiline Tabtree ниже). | ||
* Части айтема записываются через символ пробела | * Части айтема записываются через символ пробела | ||
item_id parameter1:value1 parameter2:value2 | item_id parameter1:value1 parameter2:value2 | ||
* Айтем уникально определяется первым словом (идентификатор). Идентификатор элемента может содержать любые символы, за исключением пробельных. | * Айтем уникально определяется первым словом (идентификатор). Идентификатор элемента может содержать любые символы, за исключением пробельных. | ||
* Параметры айтема указываются парами ключ:значение. Каждая пара является отдельным словом и отделяется от соседних пар и идентификатора одиночным пробелом | * Параметры айтема указываются парами ключ:значение. Каждая пара является отдельным словом и отделяется от соседних пар и идентификатора одиночным пробелом. | ||
* Айтемы состоят в | * Айтемы состоят в мерархических отношениях с друг другом. Иерархия задается знаками табуляции в начале строки перед идентификатором и парами ключ-значение. Уровень иерархии равен числу табуляций (ниже табуляция показывается знаком `→`) | ||
Россия type:страна capital:Москва | |||
Россия type:страна capital:Москва | →Ростов-на-Дону type:city | ||
→Ростов-на-Дону type:city | →→Говнярка type:vernacular_region status:сгорела | ||
→→Говнярка type:vernacular_region status:сгорела | →Владикавказ type:city ir:Дзæуджыхъæу | ||
→Владикавказ type:city ir:Дзæуджыхъæу | →→Шалдон type:vernacular_region | ||
→→Шалдон type:vernacular_region | Norge ru:Норвегия | ||
Norge ru:Норвегия | →Oslo type:city | ||
→Oslo type:city | →→Grønland type:neighbourhood | ||
→→Grønland type:neighbourhood | |||
* Если идентификатор состоит из нескольких слов, то знак пробела между ними заменяется на знак подчеркикания `_`. Если имя ключа состоит из нескольких слов, то обычно пробел между ними заменяется на дефис `-` | * Если идентификатор состоит из нескольких слов, то знак пробела между ними заменяется на знак подчеркикания `_`. Если имя ключа состоит из нескольких слов, то обычно пробел между ними заменяется на дефис `-` | ||
* Если значение ключа - просто текст, то он дается как есть, с символами пробела и обрамляется двойными кавычками "". | * Если значение ключа - просто текст, то он дается как есть, с символами пробела и обрамляется двойными кавычками "". | ||
* Если значение ключа - код, то он дается со всеми пробелами, но обрамляется обратными одинарными кавычками `` | * Если значение ключа - код, то он дается со всеми пробелами, но обрамляется обратными одинарными кавычками `` | ||
* Все, что идет за знаком точка с запятой ; - считается комментарием (как в | * Все, что идет за знаком точка с запятой ; - считается комментарием (как в Racket) | ||
== Наследование параметров == | == Наследование параметров == | ||
Если в | Если в объекте имя параметра предваряет символ +, то этот параметр со своим значением наследуется всеми объектами, лежащими по иерархии ниже данного объекта. Значение параметра в одном из нижележащих объектов может переписаться, если такое же имя параметра с новым значением будет добавлено непосредственно в строку этого объекта. | ||
<syntaxhighlight lang="Scheme"> | <syntaxhighlight lang="Scheme"> | ||
item1 +parameter:10 ; parameter = 10 | item1 +parameter:10 ; parameter = 10 | ||
Строка 33: | Строка 29: | ||
→item3 ; parameter = 10 | →item3 ; parameter = 10 | ||
item4 ; parameter не определен | item4 ; parameter не определен | ||
</syntaxhighlight | </syntaxhighlight | ||
== Multiline Tabtree == | == Multiline Tabtree == | ||
Когда у объектов много параметров (больше примерно 10), записывать их в одну строку становится неудобно. Для этого случая существует модификация формата TabTree - Multiline Tabtree. В ней объекты разделяются знаками . и <.> (просто точка - если голый идентификатор | Когда у объектов много параметров (больше примерно 10), записывать их в одну строку становится неудобно. Для этого случая существует модификация формата TabTree - Multiline Tabtree. В ней объекты разделяются знаками . и <.> (просто точка - если голый идентификатор объкта, без параметров) | ||
Россия. | |||
Россия. | →Ростов-на-Дону | ||
→Ростов-на-Дону | type:city | ||
<.> | <.> | ||
→→Говнярка | |||
type:vernacular_region | |||
status:сгорела | |||
<.> | |||
== Файловое расширение == | == Файловое расширение == | ||
Строка 54: | Строка 46: | ||
* Для Multiline Tabtree - <code>.mtree</code> | * Для Multiline Tabtree - <code>.mtree</code> | ||
== Пример | == Пример == | ||
<syntaxhighlight lang="scheme" line> | <syntaxhighlight lang="scheme" line> | ||
; некоторые факты о трех компаниях ТГ направления | ; некоторые факты о трех компаниях ТГ направления | ||
Строка 65: | Строка 57: | ||
== Использование Tabtree для бэкенда данных == | == Использование Tabtree для бэкенда данных == | ||
Формат используется и в самой '''H+ wiki''' для хранения данных, из которых потом генерируются списки и инфобоксы. Есть планы сопряжения Tabtree с расширением Semantic Wiki. Это позволит еще больше [https://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BF%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B8_%D1%81%D0%BE%D0%B4%D0%B5%D1%80%D0%B6%D0%B0%D0%BD%D0%B8%D1%8F разделить данные и их представление], а значит увеличит эффективность сбора данных и их переносимость. | Формат используется и в самой '''H+ wiki''' для хранения данных, из которых потом генерируются списки и инфобоксы. Есть планы сопряжения Tabtree с расширением Semantic Wiki. Это позволит еще больше [https://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BF%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B8_%D1%81%D0%BE%D0%B4%D0%B5%D1%80%D0%B6%D0%B0%D0%BD%D0%B8%D1%8F разделить данные и их представление], а значит увеличит эффективность сбора данных и их переносимость. | ||
== Идеологически близкие форматы == | == Идеологически близкие форматы == |