Различие между атомами и значениями сделано для того, чтобы предоставить пользователям два очень разных и разных способа хранения информации. Атомы обеспечивают общий способ кодирования графов и графической информации с мощными инструментами для выполнения поиска по графам, а также для манипулирования и преобразования их различными способами. Эта мощь связана с затратами на производительность: атомы хранятся в индексе ( AtomSpace ), глобально уникальны, неизменяемы, а реализация толстая и громоздкая, чтобы обеспечить быстрый поиск и обход графа. ... По сути, у каждого атома есть связанное с ним хранилище ключей и значений . Тройка (атом, ключ, значение) называется оценкой . В иерархии атомных типов Values наследуются от ProtoAtom . ... Обратите внимание, что из-за иерархии типов все атомы являются значениями, поэтому при желании можно использовать атом везде, где может находиться значение. Обратное неверно: нельзя использовать значения, как если бы они были атомами. ...
Все эти системы построены на фундаменте из краеугольного камня. Узлы и связи используются для представления всего, что напоминает теоретико-графовый граф . Значения используются для присвоения «оценок» атомам: значения могут быть логическими истинными/ложными оценками, но они также могут быть числами, весами, векторами или строками или любой их комбинацией: к каждому атому прикреплена база данных ключ-значение, который может хранить любую информацию об этом атоме. Это различие между «формой графа» и данными, которые «висят на нем», является центральным для обеспечения возможности высокоскоростного обхода графа и обобщенных запросов к графу . ...
Еще одним фундаментальным краеугольным камнем является Atomese : идея о том, что все, включая запросы к графам, правила перезаписи графов, алгоритмы обработки графов, конвейеры данных и т. п., могут быть представлены с помощью Atom и реализованы с помощью Atom во время выполнения.
Таким образом, атомы можно использовать не только для формирования абстрактных синтаксических деревьев, представляющих какой-либо алгоритм или процедуру, но эти деревья также могут быть исполняемыми.
Одна из вещей, выражаемых как Atoms, - это сам язык запросов : таким образом, можно «запрашивать запросы», что может показаться загадочным, но это то, как на самом деле работают чат-боты (то есть, как чат-боты работают не только в OpenCog, но и в целом). ...
Все атомы в AtomSpace имеют тип. Двумя основными типами атомов являются Node и Link . Типы образуют иерархию типов : все атомы наследуются от типа «Atom», а сам тип Atom наследуется от ProtoAtom . ProtoAtom сам по себе является базовым типом для значений (таких как значения истинности ), а также для атомов.
Атомы как символы Атомы обычно хранятся в AtomSpace , и когда они помещаются в AtomSpace, они становятся уникальными. Таким образом, по сравнению с другими языками программирования, атомы можно понимать как символы . AtomSpace - это, по сути, то же самое, что и таблица символов . Таблица символов обычно обладает тем свойством, что все символы в ней уникальны.
Как только атом помещается в AtomSpace, он получает единственный уникальный идентификатор. Этот уникальный идентификатор представляет собой строковое имя узла и исходящий набор ссылок .
В языке программирования Ruby символы буквально называются атомами. Это не случайность! Точно так же символы называются атомами в Прологе . Однако Пролог различает атомы, переменные и (составные) термины; В OpenCog нет. Таким образом, VariableNode играет роль переменной Prolog, а Link - это OpenCog-аналог составного термина.
И LISP, и Guile позволяют прикреплять параметры к символам. Они аналогичны значениям , которые можно прикрепить к атомам.
https://deep-econom.livejournal.com/1042636.html
https://wiki.opencog.org/w/Atom
https://wiki.opencog.org/w/Type_hierarchy
https://wiki.opencog.org/w/Value
Различие между атомами и значениями сделано для того, чтобы предоставить пользователям два очень разных и разных способа хранения информации. Атомы обеспечивают общий способ кодирования графов и графической информации с мощными инструментами для выполнения поиска по графам, а также для манипулирования и преобразования их различными способами. Эта мощь связана с затратами на производительность: атомы хранятся в индексе ( AtomSpace ), глобально уникальны, неизменяемы, а реализация толстая и громоздкая, чтобы обеспечить быстрый поиск и обход графа.
...
По сути, у каждого атома есть связанное с ним хранилище ключей и значений . Тройка (атом, ключ, значение) называется оценкой . В иерархии атомных типов Values наследуются от ProtoAtom .
...
Обратите внимание, что из-за иерархии типов все атомы являются значениями, поэтому при желании можно использовать атом везде, где может находиться значение. Обратное неверно: нельзя использовать значения, как если бы они были атомами.
...
Все эти системы построены на фундаменте из краеугольного камня.
Узлы и связи используются для представления всего, что напоминает теоретико-графовый граф .
Значения используются для присвоения «оценок» атомам: значения могут быть логическими истинными/ложными оценками, но они также могут быть числами, весами, векторами или строками или любой их комбинацией: к каждому атому прикреплена база данных ключ-значение, который может хранить любую информацию об этом атоме.
Это различие между «формой графа» и данными, которые «висят на нем», является центральным для обеспечения возможности высокоскоростного обхода графа и обобщенных запросов к графу .
...
Reply
Таким образом, атомы можно использовать не только для формирования абстрактных синтаксических деревьев, представляющих какой-либо алгоритм или процедуру, но эти деревья также могут быть исполняемыми.
Одна из вещей, выражаемых как Atoms, - это сам язык запросов : таким образом, можно «запрашивать запросы», что может показаться загадочным, но это то, как на самом деле работают чат-боты (то есть, как чат-боты работают не только в OpenCog, но и в целом).
...
Все атомы в AtomSpace имеют тип. Двумя основными типами атомов являются Node и Link .
Типы образуют иерархию типов : все атомы наследуются от типа «Atom», а сам тип Atom наследуется от ProtoAtom . ProtoAtom сам по себе является базовым типом для значений (таких как значения истинности ), а также для атомов.
Reply
Атомы как символы
Атомы обычно хранятся в AtomSpace , и когда они помещаются в AtomSpace, они становятся уникальными. Таким образом, по сравнению с другими языками программирования, атомы можно понимать как символы . AtomSpace - это, по сути, то же самое, что и таблица символов . Таблица символов обычно обладает тем свойством, что все символы в ней уникальны.
Как только атом помещается в AtomSpace, он получает единственный уникальный идентификатор. Этот уникальный идентификатор представляет собой строковое имя узла и исходящий набор ссылок .
В языке программирования Ruby символы буквально называются атомами. Это не случайность! Точно так же символы называются атомами в Прологе . Однако Пролог различает атомы, переменные и (составные) термины; В OpenCog нет. Таким образом, VariableNode играет роль переменной Prolog, а Link - это OpenCog-аналог составного термина.
И LISP, и Guile позволяют прикреплять параметры к символам. Они аналогичны значениям , которые можно прикрепить к атомам.
Reply
Leave a comment