Если задаться вопросом, отчего семантические технологии до сих пор широко не шагнули в массы, ответ окажется на поверхности: из-за сложности существующей реализации. Сложно создать уникальный идентификатор предмета или отыскать в словарях идентификатор класса предмета, сложно и описывать предметные свойства - простому человеку не понятны и чужды эти Schema.org, Dublin Core, etc. Надобен бы простой, примитивный даже инструмент - чтобы занимательная семантика стала массовым явлением. И такой инструмент, конечно же, есть - это обычные вопросы естественного языка: что, зачем, как? - и т.д.

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

<эскимо><https://dbpedia.org/ontology/is-a><мороженое>

- где идентификатором свойства "is-a" является некий URL, отсылающий к записи некоего онлайн-словаря.

Удобно это? Нет. Для каждого высказывания нам требуется подыскивать адрес описания этого свойства в специализированных словарях. Будет это делать обычный человек? Нет!.. А как вам такой вариант того же высказывания:

<что "Что такое эскимо?">мороженое</что>

Такую семантическую конструкцию способен составить чуть ли не каждый встречный, и даже в таком виде она уже будет полезна для поисковиков. Чтобы наша запись стала "честным семантическим триплетом", надо явно пометить объект№1 (так называемый "субъект") данного высказывания, к примеру, так:

<что "Что такое эскимо%1?">мороженое</что>

или, например, по-аглицки:

<what "What is eskimo%1?">ice cream</what>

Пока это лишь смысловая связка между двумя литералами. В английском варианте, к тому же, мы получили смысловую коллизию, поскольку eskimo на английском - это, в первую очередь, национальность. Однако, пойдём дальше:

<что "Что такое эскимо%1", https://ru.wikipedia.org/wiki/Эскимо>мороженое</что>

Теперь мы привязали термин "эскимо" к URL соответствующего описания в Википедии, чтобы уточнить, о каком именно эскимо идёт речь, т.е., что мы подразумеваем под этим словом. В данном случае, правда, не совсем ясно, к чему нам утверждать, что мороженое - это мороженое, но не суть. Конструкция "%1", немного напоминающая спецификатор формата в сишной строке форматного вывода, будучи прилепленной к некому литералу-термину внутри вопросительного предложения (если этот литерал состоит из нескольких слов, он может быть выделен апострофами), будет служить, с одной стороны, указанием на объект высказывания, с другой стороны (не обязательно) - связкой с соответствующим уточнением этого объекта. В качестве уточнения может выступать либо другой литерал, либо URI. URI, в свою очередь, может состоять из URL и/или URN/CID. В качестве ответа на вопрос может также выступать как литерал, так и URI, таким образом, мы можем записать и так:

<что "Что такое эскимо%1">https://ru.wikipedia.org/wiki/Эскимо</что>

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

<что "Что такое эскимо%1", https://ru.wikipedia.org/wiki/Эскимо>это такая вкуснятина!</что>

или:

<что "Что такое эскимо%1", https://ru.wikipedia.org/wiki/Эскимо>URI2</что>

- где URI2 - это наш довесок к статье в Вики.

Строка вопроса может включать в себя более одного объекта высказывания:

<как "Как из камня%1 сделать пар%2"[, URI1][, URI2]>URI3</как>

или:

<зачем "Зачем Герасим%1 утопил свою Муму%2"[, URI1][, URI2]>URI3</зачем>

Если вопросительное слово склоняется, соответствующий ему тег - нет:

<что "О чём здесь%1"[, URI1]>...</что>

- таким образом можно помечать что угодно: отдельные блоки HTML-страницы, URN какой-либо книги (её ISSBN), CID видео-ролика,,,

Основные вопросительные слова во многих языках имеют четкие соответствия между собой, поэтому WHOW по сути мультиязычен. То есть, размечать можно на своём родном языке, а при автоматической обработке всё это может транслироваться к единому (англ., как общеупотребительному) синтаксису. Впоследствии могут быть созданы тезаурусы вопросительных предложений, по которым одинаковые по сути вопросы, прописанные в разной форме, будут также автоматически приводиться (с тем или иным весовым коэффициентом достоверности) к унифицированным образцам (в том числе, из др. языков сем. разметки), индексируемым в БД.

Подобный тип разметки, в бинарной форме, может быть применён в так называемых "понятийных" файлах, о которых мы говорили здесь.

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

ЗЫ: В русском варианте язык разметки WHOW может быть представлен как ЯР ЧПОК (Язык разметки "Что-ПОчему-Как"). Прошу любить и жаловать!

Комментарии (8)


  1. sshikov
    02.10.2021 13:03

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

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

    Ну да. Зато вы всегда знаете, какое именно свойство вы тут задали, потому что оно из словаря, и у него есть уникальный URI. А еще вы всегда можете нарисовать свой словарь, и поделиться им с другими.

    Три свойства, что/почему/как, а других в природе не бывает? И чем это лучше варианта, когда вы создали бы свой словарь с тремя свойствами, и пользовались бы только им? Все равно ведь в вашем случае нужно знать, можно ли написать "<зачем>" или скажем "<почему>", чем это отличается от простого использования языка на базе RDF с ограниченным словарем из трех URI?


    1. starver Автор
      02.10.2021 13:29

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

      • создать/выбрать понятие/предмет высказывания

      • выбрать тип вопроса высказывания ("что", "где", "когда" и т.д.)

      • написать сам вопрос, отметить в нём предмет высказывания ("субъект")

      • написать ответ на вопрос (текст или URI)

      >> Три свойства, что/почему/как, а других в природе не бывает?

      По количеству вопросительных слов, а их около десятка, основных.


      1. sshikov
        02.10.2021 13:38

        >о чём угодно
        Как о чем угодно, если у вас словарь ограничен?

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


        1. starver Автор
          02.10.2021 14:31

          Словарь ограничен, но он определяет не свойства, а целые классы свойств: бесконечные множества свойств, каждое из которых с общим вопросительным словом. Сами свойства (вопросительные предложения) формализованы лишь в части принадлежности их к тому или иному классу (главному вопросительному слову в предложении). Вопросы: "Где находится что-то?", "Где я видел что-то?", "Где можно найти что-то?" - это разные свойства для этого "что-то", но они объединены в общий класс вопросов "где". Какие из этих свойств можно транслировать однозначно, скажем, в "location", какие можно, но лишь частично, а какие нет - будет зависеть от алгоритмов обработки такого "полуструктурированного сырья". Задача - по максимуму облегчить пользователям ввод высказываний. Если кто-то хочет поделиться с миром лайфхаком "как открыть бутылку", например, то это желание не должно сталкиваться с барьером получения новых знаний о разметке. Достаточно будет щелкнуть правой кнопкой мыши на слове "бутылка" или соотв. картинке, выбрать во всплывающем меню тип вопроса (вопрос. слово), на который хочется ответить, напечатать сам вопрос, привязать к этому вопросу ответ (текст или ссылка). Всё остальное должно быть отдано на откуп ПО.


  1. starver Автор
    02.10.2021 14:30

    .


  1. ivan386
    02.10.2021 19:25

    В XML вполне можно реализовать ваше решение.

    <текст xmlns="https://habr.com/ru/post/581196/">
       <мороженое>Эскимо</мороженое>
    </текст>

    Ну и с ссылками.

    <текст xmlns="https://habr.com/ru/post/581196/">
       <мороженое links="https://ru.wikipedia.org/wiki/Эскимо,https://ru.wikipedia.org/wiki/Мороженое">Эскимо</мороженое>
    </текст>


  1. alexbolgov94
    03.10.2021 12:22

    Что/Зачем/Как я только что прочитал ????


    1. starver Автор
      03.10.2021 12:39

      практически все гениальные идеи поначалу кажутся чепухой :)