Tabtree

Материал из hpluswiki
Перейти к навигации Перейти к поиску

Формат для унифицированной записи данных и мета-информации об этих данных. Также может использоваться для записи онтологий (как расширение описания мета-данных, ведь фактически онтология задает типы данных).

Принципы

  • Основной элемент формата - это объект с параметрами.
  • Один объект - одна строка.
  • Части объекта записываются через символ пробела
object_id parameter1:value1 parameter2:value2
  • Объект уникально определяется первым словом (идентификатор). Идентификатор элемента может содержать любые символы, за исключением пробельных.
  • Параметры объекта указываются парами ключ:значение. Каждая пара является отдельным словом и отделяется от соседних пар и идентификатора одиночным пробелом.
  • Объекты состоят в мерархических отношениях с друг другом. Иерархия задается знаками табуляции в начале строки перед идентификатором и парами ключ-значение. Уровень иерархии равен числу табуляций (ниже табуляция показывается знаком `→`)
Россия type:страна capital:Москва
→Ростов-на-Дону type:city
→→Говнярка type:vernacular_region status:сгорела
→Владикавказ type:city ir:Дзæуджыхъæу 
→→Шалдон type:vernacular_region
Norge ru:Норвегия
→Oslo type:city
→→Grønland type:neighbourhood
  • Если идентификатор состоит из нескольких слов, то знак пробела между ними заменяется на знак подчеркикания `_`. Если имя ключа сотсоит из нескольких слов, то обычно пробел между ними заменяется на дефис `-`
  • Если значение ключа - просто текст, то он дается как есть, с символами пробела и обрамляется двойными кавычками "".
  • Если значение ключа - код, то он дается со всеми пробелами, но обрамляется обратными одинарными кавычками ``
  • Все, что идет за знаком точка с запятой ; - считается комментарием (как в Racket)

MTabTree

Когда у объектов много параметров (больше примерно 10), записывать их в одну строку становится неудобно. Для этого случая существует модификация формата TabTree - Multiline Tabtree. В ней объекты разделяются знаками . и <.> (просто точка - если голый идентификатор объкта, без параметров)

Россия.
→Ростов-на-Дону 
  type:city
 <.>
→→Говнярка 
    type:vernacular_region 
    status:сгорела
  <.>

Пример

; некоторые факты о трех компаниях ТГ направления
компании +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

Использование Tabtree для бэкенда данных

Формат используется и в самой H+ wiki для хранения данных, из которых потом генерируются списки и инфобоксы. Есть планы сопряжения Tabtree с расширением Semantic Wiki. Это позволит еще больше разделить данные и их представление, а значит увеличит эффективность сбора данных и их переносимость.

Идеологически близкие форматы