Объекты в семантической машине. Черновик.

Artem Melanich
4 min readFeb 20, 2017

--

Пора бы мне уже собрать и где-то сохранить мои идеи по семантическим вычислениям. Данный пост будет первым интро в эту мою домашнюю теорию. Можно сказать что это альфа релиз идей которые я сгенерировал во время своего исследования, и скорее всего что-то будет переработано или значительно дополнено перед тем как найдет практическое обкатанное применение.

Говоря о семантических вычислениях, и семантических машинах я имею в виду свою реализацию этих концепций, свое видение в рамках моих проектов по практическому применению этих идей. То есть “семантические машины” здесь стоит читать как “семантические машины которые я собираюсь создать”.

Семантическая машина пригодная для практического применения имеет много тонкостей и деталей реализации, которые я еще не вывел до конца, по этому пока конкретики не будет.

Что такое семантическая машина?

Это некое пространство семантических вычислений. Семантический значит — ориентированный на смысл, значение, а не на слова, символы и другие способы представления смысла, то-есть что-то вроде “смысловые вычисления”.

Когда мы представляем как некая система работает, мы по сути создаем у себя в голове такое пространство. Грубо говоря это “вычислительная песочница” в которую мы бросаем модели и данные и прокручиваем симуляции их взаимодействий.

Если быть более точным то это некое абстрактное пространство, в котором есть Пассивные Объекты, Активные Объекты и некие правила их взаимодействий.

У нас постоянно в голове “запущена” как минимум одна семантическая машина, а иногда мы запускаем на время дополнительные. Так мы моделируем поведение реальности в которой находимся или контекста в котором мыслим.

Например. Мы пытаемся что-то математически высчитать — подгружаем семантику математики, строим в “песочнице”, семантической машине с математическим контекстом, вычисление и проверяем его, получаем результат и “закрываем” песочницу.

В математической песочнице объекты которыми мы оперируем имеют определенные характеристики и правила взаимодействия. Число — пассивный объект в этом случае, формула — активный, математические операции — правила их взаимодействия.

Семантические машины могут быть нелинейны, асинхронны, такими какими могут быть процессы в нашем мире. Разница между обычными программами и семантическими вычислениями в их уровне восприятия — семантические вычисления оперируют знаниями, смыслами, концепциями, и уже реже информацией. Программа же оперирует данными. Программа “всплывает” в семантическое пространство (то-есть ее элементы обретают смысл) только когда мы над ней работаем, или осознаем\моделируем ее работу.

Хотя для процессора машинные коды из которых состоит скомпилированая программа имеют “смысл” (он знает что с ними делать), так что можно сказать что в контексте процессора это тоже семантические вычисления, но с практической точки зрения люди не загружают такие семантические контексты для интерпретации и моделирования в повседневной жизни, поэтому это уже тема для дискуссий и размышлений.

Виды семантических объектов

Concept

семантическая концепция. Описание операций, способов взаимодействий или классов, свойств объектов и т.д. Некие идеи не привязанные к конкретным их воплощениям\представлениям.

Конкретный Фонарик №1 имеет класс “Фонарик”, этот класс можно рассматривать как концепцию. Сам же класс Фонарик тоже всего лишь частный случай (инстанс) концепции “Класс”, который в свою очередь может быть частным случаем более генерализированой концепции (например “описание”). Обычно Концепты лежат в библиотеках и подгружаются в контекст дабы семантическая машина знала что делать с инстансами таких объектов.

Концепты как-бы “неосязаемые”, они находятся вне семантического вычисления, как-бы высшее знание, то что дает смысл. Процессор который производит вычисления согласно таблице оп-кодов, сам не знает что эти коды значат не может на них влиять, их знают люди, которые и предают смысл этим опкодам. Семантическая машина имеет смысл благодаря концептам которые привносят в нее люди.

Law

особый вид концептов которые устанавливают абсолютные законы и ограничения над другими концептами, инстансами и их взаимодействием. Например операция сложения чисел это закон который нельзя переопределить не переопределив сами числа, создав какие-то свои доморощенные, с своим законом сложения.

Законы логики или стандартные операции над инстансами концепций задаются именно этим.

Instance

инстанс концепта. Хотя не все концепты могут иметь инстансы, но один инстанс может иметь множество концептов-родителей. Это “реальные” объекты с которыми мы работаем в семантической машине. Имеет State.

State

состояние без привязки к контексту, то-есть само по себе не имеющее смысла, по этому строго говоря и не семантический объект. Если мы хотим практические системы то нам нужно взаимодействие между ними и системами другого рода, а значит будут и кодировки, преобразования, сырые данные которые сами по себе смысла не имеют.

Для примера возьмем фонарик, он может быть включен и гореть или выключен, с полной или с севшей батареей. То-есть он может иметь множество состояний, эти абстрактные состояния как раз и есть State’ы, хотя имеет смысл (привязано к конкретному обьекту “Фонарик №1") только одно. Или к примеру shadow DOM’ы всякие, когда только один DOM отображает актуальное состояние страницы. Состояния полезны для реализации вычислений.

System

объект который инкапсулирует в себе другие активные объекты, в том числе другие Системы.

Rule

то же что и Law но в контексте системы, их в отличии от законов можно устанавливать в рантайме и не только на концепты а и на инстансы или даже по селектору, что не гарантирует соответствтия этому правилу всей системы.

Function

чистые функции, отображение одного пространства значений (State’ов) в другое. Частный вариант системы, преобразование устанавливается правилами.

Influence

воздействие, примитив коммуникации между объектами. Их возможные варианты определяются интерфейсами и протоколами (которые определяются вместе с Концептами и Законами).

Process

грязные функции :)
“Черная коробка” вычислений (система) с входами, выходами и “окнами” State’ов а также “ручечками” Influence’ов которыми он дотягивается до других объектов. Самое близкое к обычным линейным программам с множеством промежуточных состояний или к реактивным системам.

Model

темплейт для системы.

View

частный, хотя и часто-используемый вариант системы для контроля над другими объектами, особенно извне.

--

--