Здравствуйте, Sinclair, Вы писали:
R3>>Таким образом, действие можно записать как сущность:
Под словом "как" я подразумевал только визуальную похожесть. (Извини, если неясно выразился.) Поэтому...
S>Записываемость действия как сущности вообще никак не зависит от UI — будь там командная строка или веб-интерфейс. S>Вот у вас есть "объект" контакт, который состоит из нескольких скалярных атрибутов и ссылок типа "начальник/подчинённый". S>Чем этот объект отличается от объекта "изменить контакт", с атрибутами типа "дата изменения", "инициатор", "список троек "имя свойства, значение до, значение после""?
... я не понимаю, что за объект "изменить контакт". В моём понятии — это "действие + объект" или "действие над объектом".
Т.е. если мы опишем, что объект контакт имеет все перечисленные тобой атрибуты, то они и будут. Если мы создадим действие "изменить", то это будет просто редактирование любого контакта. А вот если мы создадим действие "отправить файл", то тут уже будут использоваться другие объекты (например, "электронный адрес" и "файл"), которые не существуют в описании объекта контакт.
Здравствуйте, Real 3L0, Вы писали:
R3>У него (в отличии от command.com) нет возможности выполнить любое действие.
Ну конечно же есть.
R3>Думаю, в первой, т.к. проблемы пока только в ней, а вторая у меня всегда зависила от первой.
Тогда вам надо сначала почитать книги, к примеру, Тео Манделла (критически) и Якоба Нильсена (с уважением).
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Real 3L0, Вы писали: R3>Под словом "как" я подразумевал только визуальную похожесть. (Извини, если неясно выразился.) Поэтому...
Откуда взялась визуальная похожесть?
S>>Записываемость действия как сущности вообще никак не зависит от UI — будь там командная строка или веб-интерфейс. S>>Вот у вас есть "объект" контакт, который состоит из нескольких скалярных атрибутов и ссылок типа "начальник/подчинённый". S>>Чем этот объект отличается от объекта "изменить контакт", с атрибутами типа "дата изменения", "инициатор", "список троек "имя свойства, значение до, значение после""?
R3>... я не понимаю, что за объект "изменить контакт". В моём понятии — это "действие + объект" или "действие над объектом".
Вы уже определили "объект" как ID и набор типизированных атрибутов. "изменить контакт" — это такой же объект, с id и атрибутами.
R3>Т.е. если мы опишем, что объект контакт имеет все перечисленные тобой атрибуты, то они и будут. Если мы создадим действие "изменить", то это будет просто редактирование любого контакта.
Да. R3>А вот если мы создадим действие "отправить файл", то тут уже будут использоваться другие объекты (например, "электронный адрес" и "файл"), которые не существуют в описании объекта контакт.
Правильно, потому что "отправить файл" — это объект другого типа, чем "изменить контакт".
Скажите честно, вы математику в каком объёме изучали?
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
R3>>У него (в отличии от command.com) нет возможности выполнить любое действие. S>Ну конечно же есть.
Т.е. под эксплорером подразумеваем комбинацию коммандной строки + то, что он предлагает?
R3>>Думаю, в первой, т.к. проблемы пока только в ней, а вторая у меня всегда зависила от первой. S>Тогда вам надо сначала почитать книги, к примеру, Тео Манделла (критически) и Якоба Нильсена (с уважением).
Ок, попробую почитать. Хотя Тео Манделла не нашёл.
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, Real 3L0, Вы писали: R3>>Под словом "как" я подразумевал только визуальную похожесть. (Извини, если неясно выразился.) Поэтому... S>Откуда взялась визуальная похожесть?
Как я писал в самом первом сообщении, сущность "привет" имеет вид:
R3>>... я не понимаю, что за объект "изменить контакт". В моём понятии — это "действие + объект" или "действие над объектом". S>Вы уже определили "объект" как ID и набор типизированных атрибутов. "изменить контакт" — это такой же объект, с id и атрибутами.
Т.е. мне надо отказаться от понятия "действия"?
S>Скажите честно, вы математику в каком объёме изучали?
В университетском, но, видать, я действительно плохо учился, потому что не понимаю, при чём тут она.
Здравствуйте, Real 3L0, Вы писали:
R3>Т.е. под эксплорером подразумеваем комбинацию коммандной строки + то, что он предлагает?
Ну да. Даже если спрятать cmd.exe, у нас по-прежнему остаётся Win+R.
S>>Тогда вам надо сначала почитать книги, к примеру, Тео Манделла (критически) и Якоба Нильсена (с уважением). R3>Ок, попробую почитать. Хотя Тео Манделла не нашёл. http://www.proklondike.com/books/usability/mandel_gui_development.html
Тео — собственно, основной пропонент "объектно-ориентированного UI", отвечавший за разработку UX в OS/2.
Значительная часть того, что вы видите в Windows 95 — Windows 7 основана на его идеях.
Важно читать его критически — проблемы интерфейса, которые он решал, сейчас в значительной мере устарели. И появились новые проблемы, про которые Тео ничего не знал, поэтому его решения во многом неадекватны.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
R3>>Т.е. под эксплорером подразумеваем комбинацию коммандной строки + то, что он предлагает? S>Ну да. Даже если спрятать cmd.exe, у нас по-прежнему остаётся Win+R.
Ну так это опять даёт нам отсутствие дружелюбности для любого действия.
S>Важно читать его критически — проблемы интерфейса, которые он решал, сейчас в значительной мере устарели. И появились новые проблемы, про которые Тео ничего не знал, поэтому его решения во многом неадекватны.
После Раскина мне всё кажется устаревшим (хотя я с ним и не во всём согласен).
Здравствуйте, Real 3L0, Вы писали:
R3>Ну так это опять даёт нам отсутствие дружелюбности для любого действия.
Критерий дружелюбности?
Поймите, пока вы не возмёте конкретный сценарий с конкретными параметрами, вы никогда не сможете спроектировать UX.
Простейший пример: безналичный перевод денег со счёта пользователя в адрес некоего бенефициара.
Формально в общем случае у нас есть пачка реквизитов, которые могут потребоваться для идентификации бенефициара.
Можно бесконечно долго совещаться в замкнутой комнате и бесконечно передвигать по макетному столу все эти БИК, ОКАТО, двадцатизначные счета и прочее.
Но результат один хрен будет как в сбербанке 90х.
А когда мы выходим из коробки и смотрим в реальные сценарии, выясняется, что можно сэкономить 410 нажатий кнопок из 415 благодаря тому, что люди чаще всего переводят деньги своим родственникам/знакомым, у которых мало того, что счета в том же банке, но они ещё и включены в адресную книгу смартфонов друг друга.
Понимаете? Невозможно это угадать, не глядя в реальный сценарий. И это — для изолированной задачи!
А если поставить задачу не просто "переводить деньги куда угодно", а "делать что угодно с чем угодно", то спроектировать "удобный UI" практически невозможно.
Можно сделать что-то типа 1С — где есть понятия типов данных, поэтому разработчику не нужно заморачиваться с банальными вещами вроде прикручивания справочника счетов к полю ввода "номер счёта" для отчётов.
R3>После Раскина мне всё кажется устаревшим (хотя я с ним и не во всём согласен).
Вот как раз до него у меня руки не дошли. Надо бы заняться.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
S>А если поставить задачу не просто "переводить деньги куда угодно", а "делать что угодно с чем угодно", то спроектировать "удобный UI" практически невозможно.
Пример понятен. Соглашусь с невозможностью спроектировать удобный UI (только потому, что не встречал), но не соглашусь с невозможностью спроектировать такой UI. Доказательство — существование таких проектов, как всякие Siri или Mozilla Ubiquity.
Это может быть задачей?
Здравствуйте, Real 3L0, Вы писали: R3>Пример понятен. Соглашусь с невозможностью спроектировать удобный UI (только потому, что не встречал), но не соглашусь с невозможностью спроектировать такой UI. Доказательство — существование таких проектов, как всякие Siri или Mozilla Ubiquity. R3>Это может быть задачей?
На всякий случай поясню, что "всякие Siri" начинались не с "давайте прикрутим голосовое управление к чему угодно", а со списка сценариев типа "узнать текущую погоду", "добавить событие в календарь", "ответить на сообщение" и прочих.
Если хочется полезть на рынок Siri, то нужно иметь как минимум полсотни, а лучше сто, очень конкретных сценариев с внятными критериями успеха и удобства.
Иначе — не взлетит.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
S>На всякий случай поясню, что "всякие Siri" начинались не с "давайте прикрутим голосовое управление к чему угодно", а со списка сценариев типа "узнать текущую погоду", "добавить событие в календарь", "ответить на сообщение" и прочих.
Ну вообще-то, голосовое управление в своё время очень неплохо прикручивали к Emacs'у. Там можно было чем угодно управлять, и оно работало — с помощью марковских моделей строилась наиболее подходящая цепочка действий.
S>Если хочется полезть на рынок Siri, то нужно иметь как минимум полсотни, а лучше сто, очень конкретных сценариев с внятными критериями успеха и удобства. S>Иначе — не взлетит.
У Сири их порядка 500. Но они все очень простые, в принципе, это вообще не очень сложный проект по нынешним меркам. Я про конкретно распознавание голоса, в Сири есть ещё много интересных технических решений для улучшения experience'а (типа Multipath TCP сразу через оба радиоканала).
Здравствуйте, Sinclair, Вы писали:
S>На всякий случай поясню, что "всякие Siri" начинались не с "давайте прикрутим голосовое управление к чему угодно", а со списка сценариев типа "узнать текущую погоду", "добавить событие в календарь", "ответить на сообщение" и прочих. S>Если хочется полезть на рынок Siri, то нужно иметь как минимум полсотни, а лучше сто, очень конкретных сценариев с внятными критериями успеха и удобства. S>Иначе — не взлетит.
Ну так и я тему создал не на пустом месте. При наличии простых действиях (создать, изменить, удалить) — можно управлять любой информацией. Теперь я хочу увеличение количества действий. Но начав их добавлять (конкретные сценарии), я то приходил к тому, что надо переделывать, то к тому, что не знаю как лучше сделать.
Здравствуйте, Sinclair, Вы писали:
S>Если хочется полезть на рынок Siri, то нужно иметь как минимум полсотни, а лучше сто, очень конкретных сценариев с внятными критериями успеха и удобства. S>Иначе — не взлетит.
Для эксперимента это сообщение я пишу с помощью распознания голоса. Как не странно но для русского языка это работает очень даже неплохо, даже запятые ставятся в нужных местах. А вот с английским всё плохо, видимо для английского языка простые технологии распознавания уже достигли своего теоретического придела. Хотя и для русского языка есть ещё куда совершенствуется.
Здравствуйте, Cyberax, Вы писали: C>Для эксперимента это сообщение я пишу с помощью распознания голоса. Как не странно но для русского языка это работает очень даже неплохо, даже запятые ставятся в нужных местах. А вот с английским всё плохо, видимо для английского языка простые технологии распознавания уже достигли своего теоретического придела. Хотя и для русского языка есть ещё куда совершенствуется.
Круто. Но "диктовка текста" — это всего один сценарий, хоть и сложный.
Если речь об управлении, то банальное "найди мне заправку по пути" или "скажи эльзе, что я опоздаю на митинг на двадцать минут" требует ещё больших усилий, чем функция стенографиста.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Real 3L0, Вы писали:
R3>Приветствую. R3>А теперь, для тех кто дочитал до сюда, правильно ли я думаю: если у нас есть две сущности, хранящиеся в разных местах, то сохранять действие, которое использовало эти сущности, нужно: R3>1. там, где действие выполнено; R3>2. там, где хранятся сущности (это актуально для примера с правами доступа — надо обязательно сохранить в рабочей области); R3>3. предоставлять автору действия выбирать, где сохранять действие.
Зачем плодить новые понятия. Хранить надо объект и методы. Где хранить объекты вопрос пользователя, а методы храняться в классе. Кроме того есть еще необходимость хранить связи. Не адреса, а то, что я называю событиями. Нечто которое фиксирует факт актуальности применения какого то метода. Т.е. процедуры обработки события. И есть еще одна проблема. Сам метод тоже надо хранить. А он состоит из операторов или инструкций. Это не объекты, а субъекты. Они должны тоже иметь какой-то формат. И очень подходит вариант типа класс-субъект. Я назвал такой подход концептным.
Здравствуйте, Real 3L0, Вы писали:
R3>Т.е. мне надо отказаться от понятия "действия"?
Надо понять, для чего оно нужно. R3>В университетском, но, видать, я действительно плохо учился, потому что не понимаю, при чём тут она.
Математика обучает обходиться минимумом абстракций, и сводить задачи к уже известным.
Например не придумывать какие-то "действия", которые изоморфны "объектам". Или при придумывании сразу идентифицировать различия.
Вот, скажем, в COM есть интерфейс IUnknown, которого вполне достаточно в качестве основы.
Но спецификация обязана описывать не только вопрос взаимодействия между объектами, но и вопросы порождения объектов, обмена данными, и прочие.
Отсюда IClassFactory, IContext, IMalloc, и прочие неотъемлемые части спецификации COM.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
S>Если речь об управлении, то банальное "найди мне заправку по пути" или "скажи эльзе, что я опоздаю на митинг на двадцать минут" требует ещё больших усилий, чем функция стенографиста.
Современные лингвистические модели (гуглить по "frame-semantic parsing") уже умеют извлекать смысл из текста. В смысле, пытаться заматчить текст на некоторый набор стандартных предложений.
Во многом, сложность голосовых систем сейчас упирается в сложность собственно распознавания английского. С русским всё было бы на порядок проще
Здравствуйте, Cyberax, Вы писали: C>Современные лингвистические модели (гуглить по "frame-semantic parsing") уже умеют извлекать смысл из текста. В смысле, пытаться заматчить текст на некоторый набор стандартных предложений.
Важное выделено.
Мы опять уходим от "всё понимать и всё делать", и приходим к оптимизации под конкретные сценарии.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
C>>Современные лингвистические модели (гуглить по "frame-semantic parsing") уже умеют извлекать смысл из текста. В смысле, пытаться заматчить текст на некоторый набор стандартных предложений. S>Важное выделено. S>Мы опять уходим от "всё понимать и всё делать", и приходим к оптимизации под конкретные сценарии.
Насколько я помню, в самом большом корпусе "semantic frame"'ов сейчас более 20 тысяч шаблонов. Причём есть и правила их каноникализации.
Конечно, это не настоящий AI, но запросы типа "где ближайшее место, чтобы заправить топливо" поймёт.