Редактирование:
Tabtree
Перейти к навигации
Перейти к поиску
Внимание:
Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы
войдёте
или
создадите учётную запись
, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.
Анти-спам проверка.
Не
заполняйте это!
[[Файл:Tabtree scan 1.png|мини|справа|Tabtree [[СССЧ|Системной схемы старения человека]] c подсветкой синтаксиса в редакторе кода [[Atom IDE|Atom]]]] Формат для унифицированной записи данных, мета-данных и онтологий. Предназначен для удобства чтения больших объемов гетерогенных данных как компьютером, так и человеком. Основан на модели представления знаний в виде графа. == Принципы == * Основной элемент формата - это объект с параметрами. В терминологии Tabtree объекты называются ''айтем (item)'' * Один айтем - одна строка (см. также про Multiline Tabtree ниже). * Части айтема записываются через символ пробела <syntaxhighlight lang="Scheme"> item_id parameter1:value1 parameter2:value2 </syntaxhighlight> * Айтем уникально определяется первым словом (идентификатор). Идентификатор элемента может содержать любые символы, за исключением пробельных. * Параметры айтема указываются парами ключ:значение. Каждая пара является отдельным словом и отделяется от соседних пар и идентификатора одиночным пробелом. Ключ и значение разделяются знаком двоеточия : (тоже без пробелов). * Айтемы состоят в иерархических отношениях к друг другу. Иерархия задается знаками табуляции в начале строки перед идентификатором айтема. Уровень иерархии равен числу табуляций (в примере показывается знаком `→`), чем табуляций больше, тем глубже (ниже) уровень. <syntaxhighlight lang="Scheme"> Россия type:страна capital:Москва →Ростов-на-Дону type:city →→Говнярка type:vernacular_region status:сгорела →Владикавказ type:city ir:Дзæуджыхъæу →→Шалдон type:vernacular_region Norge ru:Норвегия →Oslo type:city →→Grønland type:neighbourhood </syntaxhighlight> * Если идентификатор состоит из нескольких слов, то знак пробела между ними заменяется на знак подчеркикания `_`. Если имя ключа состоит из нескольких слов, то обычно пробел между ними заменяется на дефис `-` * Если значение ключа - просто текст, то он дается как есть, с символами пробела и обрамляется двойными кавычками "". * Если значение ключа - код, то он дается со всеми пробелами, но обрамляется обратными одинарными кавычками `` * Все, что идет за знаком точка с запятой ; - считается комментарием (как в [[Racket]]) == Наследование параметров == Если в айтеме имя параметра предваряет символ +, то этот параметр со своим значением наследуется всеми айтемами, лежащими по иерархии ниже данного айтема. Значение параметра в одном из нижележащих айтемов может переписаться, если такое же имя параметра с новым значением будет добавлено непосредственно в строку этого айтема. <syntaxhighlight lang="Scheme"> item1 +parameter:10 ; parameter = 10 →item2 parameter:100 ; parameter = 100 →item3 ; parameter = 10 item4 ; parameter не определен </syntaxhighlight> == Multiline Tabtree == Когда у объектов много параметров (больше примерно 10), записывать их в одну строку становится неудобно. Для этого случая существует модификация формата TabTree - Multiline Tabtree. В ней объекты разделяются знаками . и <.> (просто точка - если голый идентификатор объекта, без параметров) <syntaxhighlight lang="Scheme"> Россия. →Ростов-на-Дону type:city <.> →→Говнярка type:vernacular_region status:сгорела <.> </syntaxhighlight> Другой способ решения проблемы с большим числом параметров - разнесение параметров по разным айтемам, аналогично нормализации в базах данных, либо просто группированием более логически связанных параметров по айтемам. == Файловое расширение == * Для Tabtree - <code>.tree</code> * Для Multiline Tabtree - <code>.mtree</code> == Пример из нашей базы знаний == <syntaxhighlight lang="scheme" line> ; некоторые факты о трех компаниях ТГ направления компании +type:ТГ Криорус start:2005 hq:Москва d:"Единственная в России компания, которая занимается крионикой" Alcor start:1972 hq:Scottsdale Celularity start:2016 ceo:Robert_Hariri purchased-tech-from:Celgene_Corporation,Sorrento_Therapeutics,United_Theraupeutics,Human_Longevity </syntaxhighlight> == Использование 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 разделить данные и их представление], а значит увеличит эффективность сбора данных и их переносимость. * [https://github.com/prozion/th_world База знаний H+ wiki на github] == Идеологически близкие форматы == * [https://ru.wikipedia.org/wiki/YAML YAML] * [https://ru.wikipedia.org/wiki/Org-mode Emacs Org-mode] * [https://ru.wikipedia.org/wiki/Turtle Turtle]
Описание изменений:
Пожалуйста, учтите, что любой ваш вклад в проект «hpluswiki» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см.
Hpluswiki:Авторские права
).
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!
Отменить
Справка по редактированию
(в новом окне)
Навигация
Персональные инструменты
Вы не представились системе
Обсуждение
Вклад
Создать учётную запись
Войти
Пространства имён
Статья
Обсуждение
русский
Просмотры
Читать
Править
История
Ещё
Навигация
Начало
Свежие правки
Случайная страница
Инструменты
Ссылки сюда
Связанные правки
Служебные страницы
Сведения о странице
Дополнительно
Как редактировать
Вики-разметка
Telegram
Вконтакте
backup