• Узелковое мышление. Об информационной уникальности кипу

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

      Начну этот рассказ с краткого отступления – истории, изложенной в книге «Код» Чарльза Петцольда.

      Луи Брайль (1809 - 1852), знаменитый автор шрифта для слепых, от рождения слеп не был. Отец Брайля работал шорником, и девятилетний ребенок случайно попал себе в глаз острым инструментом, играя в отцовской мастерской. На один глаз он ослеп сразу, но затем инфекция быстро перекинулась и на второй глаз, в результате чего Луи полностью утратил зрение и оказался в парижском приюте Валентина Гаюи (1745 - 1822), который в 1784 году основал в Париже «Мастерскую трудящихся слепых», а в 1806-1818 годах занимался аналогичной работой в Санкт-Петербурге.

      Именно Валентин Гаюи впервые попытался разработать тактильный шрифт для слепых. Он делал рельефные отпечатки латинских букв, которые затем должны были на ощупь изучать его воспитанники. Тем не менее, эта система оказалась малоэффективной и непонятной, поскольку Гаюи не смог поставить себя на место слепого человека, вообще не представляющего, что такое визуальное восприятие буквы. Система Брайля, сделанная ослепшим для слепых, оказалась гораздо более эффективной и семантически насыщенной, чем изобретение его учителя.   

      Читать далее
      • +17
      • 3,4k
      • 7
    • Смысл текста или представление знаний в системе, основанной на действиях

        Что такое смысл речи, текста? Как и какими понятиями его можно представить?

        В данной статье я попробую показать на концептуальном уровне, как в информационной системе можно представить то, что принято называть знанием, базируясь на концепции действия, а также показать разницу между знанием и смыслом.

        Читать далее
      • Категория контекста

          Математической моделью знаковых последовательностей с повторами (текстов) является мультимножество. Мультимножество было определено Д. Кнутом в 1969 году и позже подробно изучено А.Б. Петровским [1]. Универсальное свойство мультимножества – существование одинаковых элементов. Предельным случаем мультимножества при единичных кратностях элементов является множество. Множество с единичными кратностями, соответствующее мультимножеству, называется его порождающим множеством или доменом. Множество с нулевой кратностью – это пустое множество.

          Читать далее
        • Гарантии в SEO — миф! Или кто “что” обещает, и кто “что” реально может выполнить

          Есть ли гарантии в SEO? При продвижении сайта 100% эффективный результат не способно обеспечить ни одно, даже самое известное агентство. Но пообещать это может каждый. Нередко на сайте подрядчика можно увидеть: «выведение в топ-3 за месяц», «обеспечим вечные позиции в топе» и пр. Клиенты зачастую ведутся на красивые обещания и уже готовы заключить договор на услугу. Но! Лозунги "SEO-продвижение с гарантией" – это утопия.

          Читать далее
        • Как преобразовать текст в алгебру: примеры

            В предыдущей статье было разработано представление знаковых последовательностей полиномами матричных единиц на примере языкового текста. Текст превращается в алгебраический объект. С текстом можно совершать все алгебраические операции, необходимые для структуризации -- вычисления заголовков, словарей, аннотаций, смысловой разметки. В данной статье приведены два примера алгебраической структуризации текстов иной природы. Азбука Морзе выбрана из-за предельной краткости словаря, а математические формулы как пример обратной задачи.

            Читать далее
          • Как преобразовать текст в алгебру

            Как пишут тексты в Большой Академии в Лагадо

            Алгебра и язык (письменность) являются двумя разными инструментами познания. Если их объединить, то можно рассчитывать на появление новых методов машинного понимания. Определить смысл (понять) – это вычислить как часть соотносится с целым. Современные поисковые алгоритмы уже имеют задачей распознавание смысла, а тензорные процессоры Google выполняют матричные умножения (свертки), необходимые для алгебраического подхода. При этом в семантическом анализе используются в основном статистические методы. В алгебре выглядело бы странным использование статистики при поиске, например, признаков делимости чисел. Использование алгебраического аппарата полезно также для интерпретации результатов вычислений при распознавании смысла текста.

            Читать далее
          • Как документировать базы данных на MediaWiki и не свихнуться

              В этой статье пойдет речь о том, как я подошел к документированию баз данных продуктов Veeam на MediaWiki движке. Сразу оговорюсь, что документация эта служит исключительно для внутреннего пользования, поэтому я много где позволял себе определенные вольности.

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

              Ну что ж, рассказывай →
              • +12
              • 3,5k
              • 1
            • Реклама
              AdBlock похитил этот баннер, но баннеры не зубы — отрастут

              Подробнее
            • Проектируем мультипарадигменный язык программирования. Часть 6 — Заимствования из SQL

                Продолжаем рассказ о создании мультипарадигменного языка программирования, сочетающего декларативный логический стиль с объектно-ориентированным и функциональным, который был бы удобен при работе со слабоструктурированными данными и интеграции данных из разрозненных источников. Язык будет состоять из двух компонент, тесно интегрированных между собой: декларативная компонента будет ответственна за описание модели предметной области, а императивная или функциональная — за описание алгоритмов работы с моделью и вычисления.

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

                В области работы с данными неоспоримым лидером является язык SQL. Некоторые его возможности, оказавшиеся очень удобными на практике, такие как агрегация, позже перекочевали в логическое программирование. Поэтому будет полезным позаимствовать из SQL как можно больше возможностей и для компоненты моделирования. В этой статье я хочу показать, как в определения понятий можно встроить вложенные запросы, внешние соединения (outer join) и агрегацию. Также расскажу о еще одном типе понятий, которое описывается с помощью функции, генерирующей объекты (сущности) в алгоритмическом стиле не прибегая к логическому поиску. И покажу, как с его помощью можно использовать массивы объектов в качестве родительских понятий по аналогии с SQL операцией UNNEST, преобразовывающей коллекции в табличный формат и позволяющей соединить их с другими таблицами в секции FROM.
                Читать дальше →
              • MarkedText — маркдаун здорового человека

                  Здравствуйте, меня зовут Дмитрий Карловский и все свои статьи (и презентации) пишу я в MarkDown разметке. И знаете что? Она уже порядочно меня подзаелозила! Тексты я пишу на русском, но большая часть спецсимволов есть только в английской раскладке клавиатуры. А редактирование таблиц - это вечная пизанская башня из вертикальных линий. Короче, есть у него проблемы как с удобством редактирования, так и с наглядностью представления. Так что давайте попробуем спроектировать его с нуля, не таща за собой килотонны головоломных конструкций.

                  Поехали..
                • Проектируем мультипарадигменный язык программирования. Часть 5 — Особенности логического программирования

                    Продолжаем рассказ о создании мульти-парадигменного языка программирования, сочетающего декларативный логический стиль с объектно-ориентированным и функциональным, который был бы удобен при работе со слабоструктурированными данными и интеграции данных из разрозненных источников. Язык будет состоять из двух компонент, тесно интегрированных между собой: декларативная компонента будет ответственна за описание модели предметной области, а императивная или функциональная — за описание алгоритмов работы с моделью и вычисления.

                    В прошлой статье я начал рассказ о компоненте моделирования гибридного языка. Она представляет собой набор понятий-объектов, связанных между собой логическими отношениями. Я успел рассказать об основных способах определения понятий, наследовании и определении отношений между ними. С причинами, побудившими меня заняться проектированием гибридного языка, и его особенностями можно ознакомиться в моих предыдущих публикациях на эту тему. Ссылки на них можно найти в конце этой статьи.

                    А сейчас я предлагаю окунуться в некоторые нюансы логического программирования. Поскольку язык компоненты моделирования имеет декларативную логическую форму, то придется решить такие проблемы, как определение семантики оператора отрицания, внедрение элементов логики высших порядков и добавление возможности работы с логическими переменными. А для этого придется разобраться с такими теоретическими вопросами как предположение об открытости/замкнутости мира, отрицание как отказ, семантикой стойких моделей (stable model semantics) и обоснованной семантикой (well-founded semantics). А также с тем, как реализованы возможности логики высших порядков в других языках логического программирования.
                    Читать дальше →
                  • Теория здравомыслия

                    Как мыслить и действовать адекватно ситуации, избавиться от инфантилизма и не наступать на одни и те же "грабли"? Эта статья может стать отправной точкой для получения навыков усвоения материала почти любой сложности.

                    Общая семантика включает в себя метод, помогающий достигать надлежащих оценочных реакций, что способствует психическому здоровью. Ее основы заложил А. Коржибски и определил ее как общую теорию оценки фактов, отношений ощущений и т.д. с точки зрения того, как действительно происходят оценочные реакции.

                    Аристотель уникален тем, что его последователи поклонялись не только его лучшим качествам, но также и его недостаткам, чего он никогда не делал в отношении кого-либо, живого или мертвого; за что и был не раз он порицаем – за непоклонение. Огастес де Морган - "наука и здравомыслие" А. Коржибски.

                    В 1933 году польский математик по имени Альфред Коржибски издал книгу "наука и здравомыслие", а в 1938 году основал институт общей семантики в США. В основе его концепции лежит утверждение о том, что любое человеческое познание ограничивается структурой нервной системы и структурой языка. Это значит, что человек априори не может знать всё обо всём. Коржибски проанализировал структуру языков индоевропейской группы математическими методами и выявил фундаментальные основы логики языка, которым люди пользуются изо дня в день, скрытые в неопределяемых и многопорядковых терминах (принимающие значение только при наличии контекста). Через них показана метафизика лежащая в основе используемого нами языка, его несовершенство, некоторое несоответствие действительности (например, может использоваться одно слово для нескольких сущностей одновременно, что может способствовать неверной оценке и неэффективному поведению (об этом позже)). Для преодоления этого барьера Коржибски ввел в ОС (общая семантика) в обиход не-элементалистский (позже станет понятно что это значит) термин семантической реакции - психологическая реакция индивидуума на слова, язык и другие символы и события в связи с их смыслом, и психологические реакции, которые становятся смыслами и конфигурациями отношений в тот момент, когда индивидуум начинает анализировать их, или кто-то другой делает это за него. Так же разработал простое и наглядное средство для обучения новым, более адекватным семантическим реакциям - структурный дифференциал. Данный подход предлагаю начать с изложения о понятии механизма времясвязывания.

                    Читать далее
                  • Интернациональное программирование на естественных языках

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

                      Заявляют о себе и новые инструментальные средства, которые в своей работе используют собственные форматы описания конфигурационных файлов или последовательности выполняемых команд, которые так же очень сильно приближает их к понятию «язык программирования».

                      Цель написания данной статьи — формулировка ожиданий и возможной реализации абстрактного языка программирования, который может стать универсальным инструментом для общения между компьютером и человеком.
                      Читать дальше →
                    • Проектируем мульти-парадигменный язык программирования. Часть 4 — Основные конструкции языка моделирования

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

                        Компонента моделирования предназначена для декларативного описания модели предметной области в форме онтологии — сети из экземпляров данных (фактов) и абстрактных понятий, связанных между собой с помощью отношений. В ее основе лежит фреймовая логика — гибрид объектно-ориентированного подхода к представлению знаний и логики первого порядка. Ее основной элемент — понятие, описывающее моделируемый объект с помощью набора атрибутов. Понятие строится на основе других понятий или фактов, исходные понятия назовем родительскими, производное — дочерним. Отношения связывают значения атрибутов дочернего и родительских понятий или ограничивают их возможные значения. Я решил включить отношения в состав определения понятия, чтобы вся информация о нем находилась по возможности в одном месте. Стиль синтаксиса для определений понятий будет похож на SQL — атрибуты, родительские понятия и отношения между ними должны быть разнесены по разным секциям.

                        В этой публикации я хочу представить основные способы определения понятий.
                        Читать дальше →
                      • Когда можно обойтись без SEO или каким проектам поисковая оптимизация не нужна

                        Мы стараемся всегда говорить клиентам только правду, излишне их никогда не обнадеживать и не браться за SEO, если не уверены в его результатах. Наш опыт работы с различными интернет-проектами показал, что для одних проектов SEO — must-have, а для других — пустая трата денег. В ряде случаев на поисковой оптимизации можно сэкономить, обратившись к другим способам продвижения. Как раз об этом мы и хотим рассказать в этом материале.

                        Читать далее
                      • Автоматы и разумное поведение. Основные положения концепции (подхода) Н.М. Амосова

                        • Tutorial



                        В продолжении одной из тем, поднятых в публикации Александра Ершова (Ustas) «Нейросетевой визуальный поиск», предлагаю читателям Хабра погрузиться в мир концепции Н.М. Амосова, ее $i$-моделей, М-сетей и автоматов. Как я надеюсь, именно они — наиболее вероятные кандидаты на роль «серебряной пули», которая позволит энтузиастам «сильного интеллекта» или, в другой терминологии, «искусственного разума» приблизиться к пониманию путей его реализации.


                        В данной статье автор попытался предельно сжато (конспективно) изложить основные положения концепции Николая Михайловича Амосова. Этот подход достаточно детально изложен в коллективной монографии «Автоматы и разумное поведение. Опыт моделирования», авторами которой был Н.М. Амосов и его соратники: A.M. Касаткин, Л.М. Касаткина и С.А. Талаев. Могу сказать, что это единственная монография, из всех работ по теме «искусственного разума», с которыми я смог познакомиться до сегодняшнего дня, содержащая ясное, обстоятельное, всестороннее, систематическое и в тоже время убедительное, а, в отдельных местах — даже высокохудожественное (говорю это без малейшей доли иронии) — изложение теоретических основ авторской концепции «искусственного разума», а также полученных на ее основе экспериментальных результатов.


                        Обращаюсь ко всем, у кого есть задор, жгучий интерес к теме «искусственного разума», а также желание поближе познакомиться с подходом Н.М. Амосова — читайте дальше...

                        Читать дальше →
                      • Проектируем мульти-парадигменный язык программирования. Часть 3 — Обзор языков представления знаний

                          Продолжаем рассказ о создании мульти-парадигменного языка программирования, поддерживающего декларативный логический стиль для описания модели предметной области. Прошлые публикации находятся здесь и здесь. Теперь пришло время для описания основных особенностей и требований к языку описания модели предметной области. Но для начала сделаем небольшой обзор наиболее популярных языков представления знаний. Это довольно обширная область, имеющая давнюю историю и включающая ряд направлений — логическое программирование, реляционное исчисление, технологии семантической паутины, фреймовые языки. Я хочу сравнить такие языки как Prolog, SQL, RDF, SPARQL, OWL и Flora, выделить те их особенности, которые были бы полезны в проектируемом мульти-парадигменном языке программирования.
                          Читать дальше →
                        • Алгоритм Jerdella: решаем проблемы семантического безумия в IT-системах банков

                            Семантические проблемы в IT системах. Что бывает, когда много разных людей начинают творить

                            Есть ветхозаветная легенда о том, как люди в древнем городе Вавилон начали строить башню, но Всевышний перемешал им языки, и башня достроена не была. Еще бы, ведь башню строили сотни маленьких групп, которые в совокупности не понимали друг друга. А не понимая друг друга, невозможно взаимодействовать. Действительно, просто безумие – называть одну и туже вещь, подразумевая её одинаково, разными словами. И удивительного тут ничего нет.

                            Ветхозаветную легенду можно с легкостью перенести на современные крупные компании, внедряющие современные ИТ-решения. В пример таких компаний, вне всякого сомнения, можно отнести современные российкие банки, которые имеют десятки, а то и сотни бизнес-подразделений, в которых складывается своя субкультура общения, построенная на своих правилах и уникальном стиле делового оборота. Естественно, при формировании ИТ-инфрастурктуры учитывается устоявшийся в коллективе стиль именования бизнес-сущностей. За последние десять лет появилось множество работ на эту тему, например эта [1]. Те, кто сталкивался с аналитикой информационных систем в банках знают, что такое сделать так называемый «маппинг» данных, особенно, если конечные системы делали разные команды аналитиков, разработчиков и заказчиков или вендоров. Как правило, на 60% составление маппинга является уяснением сути и семантики передаваемых данных.

                            Читать дальше →
                          • Проектируем мульти-парадигменный язык программирования. Часть 2 — Сравнение построения моделей в PL/SQL, LINQ и GraphQL

                              В прошлой публикации я поднял вопрос о том, что бизнес-логика современных информационных систем включает в себя достаточно много элементов, описания которых по своей природе декларативны: структура понятий, отношения между ними, условия, правила, трансформация понятий при переходе от одних слоев приложения к другим, их объединение, фильтрация, агрегация и т. п. С моей точки зрения функциональный и объектно-ориентированный стили уступают логическому в плане удобства программной реализации модели предметной области. Логический стиль передает отношения между понятиями более компактно и естественно. Поэтому я поставил себе цель создать гибридный язык программирования, который совмещал бы объектно-ориентированную или функциональную парадигму с логической. Причем логическая компонента должна быть удобной для описания модели предметной области — структуры ее понятий, а также отношений и зависимостей между ними.

                              В этой публикации я хочу поговорить о некоторых популярных языках и технологиях, включающих элементы декларативного программирования — PL/SQL, MS LINQ и GraphQL. Попытаюсь разобраться, какие задачи в них решаются с помощью декларативного программирования, насколько тесно переплетены декларативный и императивный подходы, какие это дает преимущества, и какие идеи можно из них почерпнуть.
                              Читать дальше →
                            • Проектируем мульти-парадигменный язык программирования. Часть 1 — Для чего он нужен?

                              Хабр это замечательное место, где можно смело делиться своими идеями (даже если они и выглядят безумно). Хабр видел много самодельных языков программирования, расскажу и я о своих экспериментах в этой области. Но мой рассказ будет отличаться от остальных. Во-первых, это будет не просто язык программирования, а гибридный язык, сочетающий в себе несколько парадигм программирования. Во-вторых, одна из парадигм будет довольно необычной — она будет предназначена для декларативного описания модели предметной области. А в-третьих, сочетание в одном языке декларативных средств моделирования и традиционных объектно-ориентированного или функционального подходов способно породить новый оригинальный стиль программирования — онтологически-ориентированное программирование. Я планирую раскрыть в первую очередь теоретические проблемы и вопросы, с которыми я столкнулся, и рассказать не только о результате, но и о процессе создания дизайна такого языка. Будет много обзоров технологий и научных подходов, а также философских рассуждений. Материала очень много, придется разбить его на целую серию статей. Если вас заинтересовала такая масштабная и сложная задача, приготовьтесь к долгому чтению и погружению в мир компьютерной логики и гибридных языков программирования.
                              Читать дальше →
                            • Ищем «Троллей». Алгоритм шинглов & косинусное сходство


                              Думаю, многие в напряженных дискуссиях в интернете сталкивались с обвинением людей в том, что они боты, тролли и проплачены Кремлем, Киевом или Вашингтоном. Но как действительно выявить таковых или просто людей пытающихся активно донести своё мнение до остальных?
                              Читать дальше →
                              • +17
                              • 3,4k
                              • 5

                            Самое читаемое