Какие технологические проблемы возникают при создании языка разметки для электронной почты?

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

  • Он удовлетворяет все возможные потребности пользовательского агента для правильного структурирования и определения контента в электронной почте.
  • Он должным образом санкционирует обмен сообщениями в одном документе, чтобы позволить нескольким авторам вносить вклад в представление цепочки писем.
  • Он правильно связывает аналогичные данные заголовка RFC 5322 с каждым экземпляром связи в документе с использованием соглашений о разметке.
  • Он решает все возможные проблемы, связанные с доступностью, семантикой и другими проблемами, связанными исключительно с самой технологией разметки.
  • Он решает все возможные условия безопасности в отношении обработки на уровне приложений и не решает абсолютно никаких проблем, связанных с передачей.
  • Язык может быть написан на каком-либо производном от XML, а может и не быть написан на основе технологий, производных от XML.
  • Экземпляры языка требуют проверки со стороны пользовательского агента, прежде чем им будет разрешена передача по электронной почте.

При этом, какие технологические проблемы связаны с таким проектом? Будет ли это создавать проблемы программирования для пользовательских агентов? Окажется ли такой проект несовместимым с электронной почтой формы RFC 5322, содержание которой должно быть только 7-битным ASCII? Окажется ли такая технология вредной для почтовых серверов? Связаны ли с таким проектом дополнительные проблемы безопасности? Что вы думаете о таком проекте, связанном с другими технологиями? Пожалуйста, делайте ответы и ответы как можно более сфокусированными на технологиях / программировании. Я буду голосовать против любых комментариев, касающихся деловых мнений или усыновления.


person Community    schedule 27.08.2009    source источник
comment
Это должна быть вики сообщества.   -  person Welbog    schedule 27.08.2009
comment
Я не уверен, что это должна быть вики Сообщества.   -  person Brad Gilbert    schedule 27.08.2009
comment
Готово, теперь это в вики сообщества.   -  person    schedule 27.08.2009
comment
Как это решит такие проблемы, как вложения? «Он касается всех возможных условий безопасности в отношении обработки на уровне приложений», но что, если есть вложение, содержащее вредоносный исполняемый файл?   -  person Jonathan Leffler    schedule 07.10.2009
comment
Решение для вредоносных вложений, о котором я подумал, состоит в том, что MIME-тип должен быть объявлен с любым вложением, и вложение ДОЛЖНО выполняться только в соответствии с этим заявленным MIME-типом. Если прикреплено вредоносное вложение, такое как исполняемый файл с расширением файла gif, он должен быть выполнен в соответствии с его mime-типом. GIF-файл выполняется совершенно иначе, чем исполняемый файл. Если вредоносное вложение не запускается должным образом в соответствии с его указанным mime-типом, оно должно быть заблокировано или удалено пользовательским агентом. Хороший вопрос.   -  person    schedule 07.10.2009


Ответы (1)


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

"содержимое тега GOK должно быть целым числом, не превышающим общее количество тегов BREEP, содержащихся в предыдущем теге FLOIT"

это правило, которое я не вижу, чтобы вы в ближайшее время применяли проверку XML. (Я могу ошибаться, для меня это рано.)

Это не смертельно, но сложно, и не только это, это обманчиво сложно. Короче говоря, семантика, которую вам в конечном итоге потребуется внедрить в любом начинании, быстро потребует эквивалента логики первого порядка (если не второго порядка), что требует надежного языка описания. Такие языки существуют (сразу приходит на ум Common Logic, как и OWL Full) ... но тогда вам понадобится потрясающий механизм рассуждений, чтобы обеспечить соблюдение правил.

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

person Paul Brinkley    schedule 27.08.2009
comment
Я понимаю, что усыновление будет трудным, поэтому я предпочитаю, чтобы это не повторялось мне до такой степени, что это становится единственной ценностью, на которую мне постоянно указывают. Я думаю, что большинство семантических ограничений, о которых вы упомянули, можно было бы решить с помощью определений схемы, включая ожидаемые количества и определения типов для определенных тегов. Ограничения взаимоотношений потребуют вспомогательной технологии, такой как OWL, как вы упомянули, но я не уверен, что это необходимо для самого языка. Мне интересно, проявляется ли вред вне языка, о котором я думал. - person ; 27.08.2009
comment
Я полагаю, это будет зависеть от того, где вы проводите грань между языком и другим. В конце концов, семантика этих разметок должна быть выражена формально (не как комментарий) и публично. Даже если это выражение не является частью языка, его все равно нужно сделать таким же видимым, как и язык, не так ли? - person Paul Brinkley; 27.08.2009
comment
Я бы сказал, что. На мой взгляд, семантика наполовину декларативна и наполовину структурна, если предположить, что метаязык, используемый для написания языка разметки, структурно самосознает. Даже при том, что структурные интерпретации самого языка будут ограничены движением вверх и вниз по дереву только без помощи вспомогательных технологий. Я считаю, что вопрос о том, становятся ли вспомогательные технологии доступными для пользователя немедленно, является чисто конструктивным соображением обрабатывающего пользовательского агента, а не функциональным требованием языка. - person ; 27.08.2009