Смерека
Що таке Смерека
Опитування народу показало, що смерека – це власне те саме, що й ялина, місцева карпатська назва ялини. Ще в 1899 році Леся Українка запитувала в Ольги Кобилянської, що значить це слово, невідоме в той час на Наддніпрянщині.
Окрім того, що це хвойне дерево, Смерека – це оригінальна українська програма для генерації веб-сайтів та управління їх змістом, яка реалізує ієрархічну модель даних для редактора і мережеву – для читача сайту: Система МЕРЕжевого управління Контентом веб-сАйтів (System of Managing web Resources by Network Klient Access – SMEREKA).
Смерека написана на PHP і використовує в якості СУБД MySQL. В ідейному плані вона близька до іншої моєї розробки – ієрархічної СУБД «Мислене древо».
Основні поняття
Дерево (tree) – орієнтований однозв’язний граф. Вся інформація у Смереці зберігається у вигляді дерева з однією кореневою вершиною.
Дерево складається з вершин (nodes) – елементарних блоків інформації. Кожна вершина є адресованим елементом даних і може відповідати одній веб-сторінці сайту. Але Смерека дозволяє компонувати веб-сторінки з кількох вершин.
Вершина володіє набором атрибутів (attributes) – елементів інформації. Вершина в цілому є інформаційно неоднорідною, може об’єднувати дані різних типів. Атрибут містить дані тільки одного типу, наприклад, ціле число чи строку. Атрибути виглядають як блоки, ієрархічно підпорядковані вершині, але вони не є адресованими елементами і самостійно не можуть утворювати веб-сторінок.
Ключ вершини (id) – головний атрибут, унікальний в контексті бази даних числовий ідентифікатор вершини. Він є цілим 4-байтовим числом без знаку (отже, простір Смереки складається з 4 млрд. вершин). Ключі вершин є серцевиною функціональності Смереки, але самі по собі вони не представляють інтересу ані для редактора, ані для читача.
Клас вершини (class) – ще один атрибут. Він є цілим 4-байтовим числом без знаку і визначає функціональність вершини. За значенням класу Смерека визначає, які атрибути повинна мати вершина. Слід знати, що окрім регулярних атрибутів, визначених класом, вершина може мати й інші атрибути (приватні). Спосіб використання атрибутів (як регулярних, так і приватних) залежить від контексту звернення до вершини. Прикладами класів можуть бути класи «субдомен» або «користувач».
Шаблон сторінки (template) – атрибут вершини, який визначає як треба представляти вершину для редактора і як – для користувача. Простою мовою, клас визначає набір інформації, який міститься у вершині, а шаблон – спосіб компоновки цієї інформації у веб-сторінці.
Символьне ім’я (symbolic name) – атрибут строкового типу. Він вживається для формування символьних адрес (URL) сторінок.
Контекст – поняття, яке відображає умови функціонування вершини. Контекст не є атрибутом. Найважливіші складові контексту Смереки – це глобальні настройки Смереки, параметри http запиту та ієрархічна позиція вершини (звичайно, є ще глобальні налаштування самого PHP, MySQL, веб-сервера та операційної системи). Контекст використовується, коли треба обчислити певну величину (контекстне обчислення). Наприклад, видимість вершин для користувача обчислюється на підставі атрибутів самої вершини, її ієрархічної позиції та прав користувача (останні дві групи є контекстом обчислення).
Рівні вершини (sibling nodes) – група вершин з однаковою ієрархічною позицією, тобто таких, що мають господинею одну й ту саму вершину.
Смеретег (smeretag, Smereka tag) – поле підстановки; вираз, який обчислюється під час компоновки веб-сторінки перед відправкою її користувачу.
Смересилка (smeref, Smereka reference) – внутрішнє посилання на іншу вершину того самого дерева Смереки. Найчастіше вживаний із смеретегів.