Способ и система для модификации текста в документе
METHOD AND SYSTEM FOR MODIFYING TEXT IN DOCUMENT

ПЕРЕКРЕСТНАЯ ССЫЛКА
[01] Отсутствует.
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
[02] Настоящее изобретение относится к способам и системам модификации представления текста в документе.
УРОВЕНЬ ТЕХНИКИ
[03] Информация представляется пользователям в виде различных типов электронных документов, например электронных сообщений, текстовых сообщений, веб-страниц и тому подобного. Электронные документы могут включать в себя различные типы и форматы содержимого, например фотографии, аудиозаписи и т.п., которое относится к большому числу различных тем, таких как, новости, ситуация на дорогах, развлечения, финансы и т.д. Доступ к электронным документам можно получить с помощью большого количества электронных устройств, например настольных компьютеров, портативных компьютеров, смартфонов, планшетов и т.д.
[04] Часто к тексту добавляют дополнительную информацию. Например, в случае электронного приглашения на вечеринку, может быть желательно добавить карту, на которой отмечено место проведения вечеринки. Это может быть осуществлено путем добавления карты к отображаемому содержимому тела сообщения или путем добавления карты в виде ссылки с адресом. Преимуществом предоставления карты местности в виде выбираемой ссылки с адресом заключается в том, что электронное приглашение может представать собой отображение только наиболее важной информации получателям, одновременно предоставляя опцию удобного получения дополнительной информации пользователям, которые заинтересованы в ее получении.
[05] Таким образом, существует необходимость в удобном и эффективном способе и системе для определения и модификации частей текста в электронном документе.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
[06] Задачей предлагаемого решения является устранение по меньшей мере некоторых недостатков, присущих известному уровню техники.
[07] Варианты осуществления настоящего решения были разработаны на основе предположений ее изобретателей о том, что существует по меньшей мере одна проблема или сфера, для которых возможны улучшения, связанные с решениями, представленными в известном уровне техники.
[08] Таким образом, первым объектом настоящего решения является способ модификации представления текста в документе. Способ выполняется на сервере. Способ включает в себя получение дерева DOM (Document Object Model - объектная модель документа), связанного с разметкой документа, и поиск во множестве узлов дерева DOM целевой строки текста, например в дочернем узле, проводится после поиска в соответствующем родительском узле. Целевой текстовый узел дерева DOM определен, целевой текстовый узел включает в себя всю целевую текстовую строку и не обладает дочерними узлами, включающими в себя всю целевую текстовую строку. В ответ на определение целевого текстового узла разметка модифицируется в одном из: целевом текстовом узле или дочернем узле целевого текстового узла, включающем в себя часть целевой текстовой строки. Разметка модифицируется для модификации представления целевой текстовой строки в документе.
[09] В некоторых вариантах поиск во множестве узлов дерева DOM целевой текстовой строки, например в дочернем узле, проводится после поиска в соответствующем родительском узле, включая поиск в дочернем узле, связанном с соответствующим родительским узлом, содержащим целевую текстовую строку целиком.
[10] В некоторых вариантах осуществления целевой текстовый узел обладает первым дочерним узлом, включающим первую часть целевой текстовой строки, и вторым дочерним узлом, включающим вторую часть целевой текстовой строки, причем ни один из первого дочернего узла и второго дочернего узла не включает в себя целиком целевую текстовую строку. Модификация разметки включает в себя модификацию первого и второго дочерних узлов.
[11] В некоторых вариантах осуществления определение целевого текстового узла включает в себя поиск в первом узле из множества узлов дерева DOM для определения наличия в них целевой текстовой строки целиком. В ответ на то, что первый узел включает в себя целевую текстовую строку целиком, поиск в каждом дочернем узле первого узла проводится для определения наличия целевой текстовой строки целиком. Первый узел назначается целевым текстовым узлом в ответ по меньшей мере на одно из: первый узел не обладает дочерними узлами, первый узел обладает по меньшей мере одним дочерним узлом и ни один из по меньшей мере одного дочернего узла первого узла не включает в себя целевую текстовую строку целиком.
[12] В некоторых вариантах осуществления в ответ на то, что целевой текстовый узел не обладает дочерними узлами, целевой текстовый узел модифицируется. В ответ на то, что целевой текстовый узел обладает по меньшей мере одним дочерним узлом, по меньшей мере один из по меньшей мере одного дочернего узла целевого текстового узла, который включает в себя часть целевой текстовой строки, модифицируется, причем часть является одной из множества частей целевой текстовой строки.
[13] В некоторых вариантах осуществления технологии каждый из по меньшей мере одного дочернего узла целевого текстового узла, который обладает любой одной из множества частей целевой текстовой строки, модифицируется в ответ на то, что целевой текстовый узел обладает по меньшей мере одним дочерним узлом.
[14] В некоторых вариантах осуществления в ответ на то, что целевая текстовая строка отсутствует целиком в первом узле, проводится поиск по второму узлу дерева DOM для определения наличия целевой текстовой строки целиком, соответствующий родительский узел второго узла включает текстовую строку целиком. В ответ на то, что второй узел включает целевую текстовую строку целиком, поиск в каждом дочернем узле второго узла проводится для определения наличия в нем целевой текстовой строки целиком. Второй узел назначается целевым текстовым узлом в ответ по меньшей мере на одно из: второй узел не обладает дочерними узлами, второй узел обладает по меньшей мере одним дочерним узлом и ни один из по меньшей мере одного дочернего узла второго узла не включает целевую текстовую строку целиком.
[15] В некоторых вариантах первый и второй узлы являются сестринскими (дочерними для одного и того же родительского узла) узлами.
[16] В некоторых вариантах осуществления целевой текстовый узел является первым целевым текстовым узлом, в соответствии с первым появлением целевой текстовой строки в документе, и документ далее включает в себя второе появление целевой текстовой строки, разметка модифицируется для модификации представления первого появления целевой текстовой строки в документе.
[17] В некоторых вариантах определяется второй целевой текстовый узел, соответствующий второму появлению целевой текстовой строки в документе, второй целевой текстовый узел включает целевую текстовую строку целиком и не обладает дочерними узлами, включающими целевую текстовую строку целиком. Разметка модифицируется в одном из: втором целевом текстовом узле или дочернем узле второго целевого текстового узла, включающем часть целевой текстовой строки. Разметка модифицируется для модификации представления второго появления целевой текстовой строки в документе.
[18] В некоторых вариантах осуществления целевой текстовый узел является первым целевым текстовым узлом, соответствующим первой целевой текстовой строке в документе, разметка модифицируется для модификации представления первой целевой текстовой строки в документе. Способ также включает определение второго целевого текстового узла, соответствующего второй текстовой строке в документе, второй целевой текстовый узел включает вторую целевую текстовую строку целиком и не обладает дочерними узлами, включающими вторую целевую текстовую строку целиком. Разметка модифицируется в одном из: второй целевой текстовый узел или дочерний узел второго целевого текстового узла, включающий в себя часть второй целевой текстовой строки. Разметка модифицируется для модификации представления второй целевой текстовой строки в документе.
[19] В некоторых вариантах осуществления документ обрабатывается для определения целевой текстовой строки.
[20] В некоторых вариантах осуществления обработка документа включает в себя получение текстовой версии документа.
[21] В некоторых вариантах осуществления целевая текстовая строка определена на основе заранее определенного критерия.
[22] В некоторых вариантах осуществления целевая текстовая строка определена с помощью базы данных.
[23] В некоторых вариантах осуществления разметка представлена в HTML.
[24] В некоторых вариантах осуществления модифицирование разметки для модификации представления целевой текстовой строки включает в себя связывание гиперссылки с целевой текстовой строкой.
[25] Другим объектом настоящего решения является система модификации представления текста в документе. Система включает в себя процессор и интерфейс связи, оперативно соединенный с процессором и выполненный с возможностью получать документ. Процессор выполнен с возможностью инициировать модификацию представления документа путем получения дерева DOM (Document Object Model - объектная модель документа), связанного с разметкой документа, поиска во множестве узлов дерева DOM целевой строки текста, например в дочернем узле, проводится после поиска в соответствующем родительском узле, определения целевого текстового узла дерева DOM. Целевой текстовый узел включает в себя всю целевую текстовую строку и не обладает дочерними узлами, включающими в себя всю целевую текстовую строку. В ответ на определение целевого текстового узла разметка модифицируется в одном из: целевой текстовый узел или дочерний узел целевого текстового узла, включающий в себя часть целевой текстовой строки. Разметка модифицируется для модификации представления целевой текстовой строки в документе.
[26] В некоторых вариантах осуществления процессор выполнен с возможностью определять целевую текстовую строку.
[27] В контексте настоящего описания «сервер» подразумевает под собой компьютерную программу, работающую на соответствующем оборудовании, которая способна получать запросы (например, от клиентских устройств) по сети и выполнять эти запросы или инициировать выполнение этих запросов. Оборудование может представлять собой один физический компьютер или одну физическую компьютерную систему, но ни то, ни другое не является обязательным. В контексте настоящего решения использование выражения «сервер» не означает, что каждая задача (например, полученные инструкции или запросы) или какая-либо конкретная задача будет получена, выполнена или инициирована к выполнению одним и тем же сервером (то есть одним и тем же программным обеспечением и/или аппаратным обеспечением); это означает, что любое количество элементов программного обеспечения или аппаратных устройств может быть вовлечено в прием/передачу, выполнение или инициирование выполнения любого запроса или последствия любого запроса, связанного с клиентским устройством, и все это программное и аппаратное обеспечение может являться одним сервером или несколькими серверами, оба варианта включены в выражение «по меньшей мере один сервер».
[28] В контексте настоящего описания «клиентское устройство» или "электронное устройство" подразумевает под собой аппаратное устройство, способное работать с программным обеспечением, подходящим к решению соответствующей задачи. Таким образом, примерами клиентских устройств (среди прочего) могут служить персональные компьютеры (настольные компьютеры, ноутбуки, нетбуки и т.п.), смартфоны, планшеты, а также сетевое оборудование, такое как маршрутизаторы, коммутаторы и шлюзы. Следует иметь в виду, что устройство, ведущее себя как клиентское устройство в настоящем контексте, может вести себя как сервер по отношению к другим клиентским устройствам. Использование выражения «клиентское устройство» не исключает возможности использования множества клиентских устройств для получения/отправки, выполнения или инициирования выполнения любой задачи или запроса, или же последствий любой задачи или запроса, или же этапов любого вышеописанного метода.
[29] В контексте настоящего описания термин «информация» включает в себя любую информацию, которая может храниться в базе данных. Таким образом, информация включает в себя, среди прочего, аудиовизуальные произведения (изображения, видео, звукозаписи, презентации и т.д.), данные (данные о местоположении, цифровые данные и т.д.), текст (мнения, комментарии, вопросы, сообщения и т.д.), документы, таблицы и т.д.
[30] В контексте настоящего описания термин «база данных» или "словарь" подразумевает любой структурированный набор данных, не зависящий от конкретной структуры, программного обеспечения по управлению базой данных, аппаратного обеспечения компьютера, на котором данные хранятся, используются или иным образом оказываются доступны для использования. База данных может находиться на том же оборудовании, которое выполняет процесс, который сохраняет или использует информацию, хранящуюся в базе данных, или же она может находиться на отдельном оборудовании, например выделенном сервере или множестве серверов.
[31] В контексте настоящего описания термин "документ" подразумевает под собой любое электронное представление информации, которая может быть представлена пользователю или клиенту электронного устройства, причем по меньшей мере часть информации отображается в текстовом формате в документе.
[32] В контексте настоящего описание термин "разметка" подразумевает под собой аннотированную версию документа, аннотации к которому включают инструкции, выполняемые приложением, которое отображает документ. Аннотации включают инструкции для форматирования и представления различных частей документа. Разметка написана на языке разметки, таком как HTML, XML, XHTML и т.п.
[33] В контексте настоящего описания термин "Дерево объектной модели документа" или "дерево DOM" подразумевает под собой иерархическое представление разметки, включающее несколько связанных друг с другом узлов. Дерево DOM связано с версией разметки документа и создано путем разбора разметки для документа. Дерево DOM создано путем разбора разметки, например, каждый тег разметки создает узел и каждый тег узла создает субузел или дочерний узел и т.д.
[34] В контексте настоящего описания слова «первый», «второй», «третий» и т.д. используются в виде прилагательных исключительно для того, чтобы отличать существительные, к которым они относятся, друг от друга, а не для целей описания какой-либо конкретной связи между этими существительными. Так, например, следует иметь в виду, что использование терминов "первый узел" и "третий узел" не подразумевает какого-либо порядка, отнесения к определенному типу, хронологии, иерархии или ранжирования (например) узлов/между узлами, равно как и их использование (само по себе) не предполагает, что некий "второй узел" обязательно должен существовать в той или иной ситуации. В дальнейшем, как указано здесь в других контекстах, упоминание "первого" элемента и "второго" элемента не исключает возможности того, что это один и тот же фактический реальный элемент. Так, например, в некоторых случаях, "первый" сервер и "второй" сервер могут являться одним и тем же программным и/или аппаратным обеспечением, а в других случаях они могут являться разным программным и/или аппаратным обеспечением.
[35] Каждый вариант осуществления настоящего решения включает по меньшей мере одну из вышеупомянутых целей и/или объектов. Следует иметь в виду, что некоторые объекты данного решения, полученные в результате попыток достичь вышеупомянутой цели, могут удовлетворять другим целям, отдельно не указанным.
[36] Дополнительные и/или альтернативные характеристики, аспекты и преимущества вариантов осуществления решения станут очевидными из последующего описания, прилагаемых чертежей и прилагаемой формулы изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[37] Для лучшего понимания настоящего решения, а также других его аспектов и характерных черт сделана ссылка на следующее описание, которое должно использоваться в сочетании с прилагаемыми чертежами, где:
[38] На Фиг. 1 представлена схема сетевой среды, соответствующей не ограничивающим вариантам осуществления решения;
[39] На Фиг. 2 представлена блок-схема системы, соответствующая не ограничивающему варианту, работающему в сетевой среде, показанной на Фиг. 1;
[40] На Фиг. 3 представлена блок-схема способа модификации представления текста в документе в соответствии с вариантом осуществления решения;
[41] На Фиг. 4 представлен пример документа, который может быть модифицирован с помощью способа, показанного на Фиг. 3;
[42] На Фиг. 5 представлена первая часть примера дерева DOM для примерного документа, показанного на Фиг. 4; и
[43] На Фиг. 6 представлена вторая часть примера дерева DOM для примерного документа, показанного на Фиг. 4.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
[44] На Фиг. 1 представлена принципиальная схема сетевой среды 100, подходящей для использования вместе с некоторыми не ограничивающими вариантами осуществления решения. Важно иметь в виду, что сетевая среда 100 представлена здесь исключительно в виде примерного варианта осуществления. Таким образом, все последующее описание сетевой среды представлено только как описание иллюстративного примера. Это описание не предназначено для определения объема или установления границ решения.
[45] Некоторые полезные примеры модификаций сетевой среды 100 также могут быть охвачены нижеследующим описанием. Целью описания модификаций является также исключительно помощь в понимании, а не определение объема и границ решения. Эти модификации не представляют собой исчерпывающий список, и специалистам в данной области техники будет понятно, что возможны и другие модификации. Кроме того, это не должно интерпретироваться так, что там, где это еще не было сделано, т.е. там, где не были изложены примеры модификаций, никакие модификации невозможны, и/или что то, что описано, является единственным вариантом осуществления этого элемента. Как будет понятно специалисту в данной области техники, это, скорее всего, не так. Кроме того, следует иметь в виду, что сетевая среда 100 представляет собой в некоторых конкретных проявлениях достаточно простой вариант осуществления, и в подобных случаях представлен здесь с целью облегчения понимания. Как будет понятно специалисту в данной области техники, многие варианты будут обладать гораздо большей сложностью.
[46] Сетевая среда 100 включает в себя электронное устройство 110, сервер 120 и сеть 130 передачи данных. Электронное устройство 110 связано с сервером 120 через сеть 130 передачи данных. Несмотря на то, что настоящее описание сделано со ссылкой на сетевую среду 100, обладающую одним электронным устройством 110 и одним сервером 120, следует иметь в виду, что сетевая среда 100 может включать в себя более одного электронного устройства 110 и более одного сервера 120.
[47] На Фиг. 2 представлена система 200 для реализации вариантов осуществления решения. Система 200 включает в себя процессор 240, память 260 и интерфейс 230 связи. Процессор 240 включает в себя один или несколько модулей обработки, таких как одно- или многоядерный процессор и тому подобное. Память 260 (в форме Оперативного Запоминающего Устройства (ОЗУ), флэш-памяти или их комбинации) хранит программные инструкции (машиночитаемые коды) для использования процессора 240 для модификации представления текста в документе. Например, программные инструкции могут представлять собой часть библиотеки или приложения. Процессор 240 связывается с памятью 260 для инициирования использования различных инструкций для модификации представления текста в документе. Процессор 240 также соединен с интерфейсом 230 связи для связи с другими элементами сетевой среды 100 через сеть 130 передачи данных. Например, интерфейс 230 связи может включать в себя радиочастотный приемник для беспроводной связи по сети 130 передачи данных.
[48] Электронное устройство 110 обычно связано с пользователем (не показан) и, таким образом, иногда может упоминаться как «клиентское устройство». В представленном варианте электронное устройство 110 представляет собой ноутбук. Вариант осуществления электронного устройства 110, тем не менее, не ограничивается портативным компьютером 110. Например, электронное устройство 110 может быть реализовано в виде персонального компьютера (настольного компьютера, ноутбука, нетбука и т.п.), беспроводного электронного устройства (мобильного телефона, смартфона, планшета и т.п.), а также сетевого оборудования (маршрутизатора, коммутатора или шлюза). Общий вариант осуществления электронного устройства 110 известен в области техники, и поэтому не будет здесь подробно описан.
[49] Электронное устройство 110 включает в себя одно или несколько устройств 210 ввода (например, клавиатуру, мышь, сенсорную панель, микрофон и тому подобное) для получения ввода от пользователя электронного устройства 110. Электронное устройство 110 включает в себя одно или несколько устройств 220 вывода (например, экран, динамик, принтер и так далее) для предоставления визуального или звукового вывода пользователю. Электронное устройство 110 включает в себя сетевой интерфейс связи, например интерфейс 230 связи, показанный на Фиг. 2 (например, модем, сетевую карту и тому подобного) для двусторонней связи по сети 130 передачи данных. Электронное устройство 110 также включает в себя процессор, например процессор 240, представленный на Фиг. 2, соединенный с пользовательским(и) устройством(ами) 210 ввода, пользовательским(и) устройством(ами) 220 вывода и сетевым интерфейсом 230 связи. Процессор 240 выполнен с возможностью выполнять различные способы, включая те, что описаны ниже. Для этого процессор 240 может хранить или иметь доступ к машиночитаемым командам, выполнение которых инициирует процессор 240 использовать различные инструкции, включающие в себя те, которые описаны для модификации представления текста в документе 400, как будет описано далее. Электронное устройство 102 включает в себя аппаратное и/или прикладное программное, и/или системное программное обеспечение, что хорошо известно в данной области техники, для выполнения различных приложений.
[50] Браузерное приложение 250 представлено на электронном устройстве 110 для того, чтобы позволить пользователю (не показан) электронного устройства 110 получить доступ к одному или нескольким сетевым ресурсам через сеть 130 передачи данных. Примеры браузерных приложений включают в себя Google Chrome, Mozilla Firefox, Yandex и тому подобные. Браузерное приложение 250 позволяет пользователю электронного устройства 110 просматривать, создавать и иными способами взаимодействовать с различными типами сетевых ресурсов, таких как веб-страницы, электронные сообщения, аудиопоток и видеосодержимое и т.д. Следует иметь в виду, что браузерное приложение 250 получает сетевой ресурс, например, веб-страницу или электронное сообщение от сервера-хоста, например сервера 120, сетевого ресурса и обрабатывает сетевой ресурс для вывода пользователю электронного устройства 110. Например, веб-страница представлена браузерному приложению 250 в форме разметки 500 (создана на известном языке разметки, таком как HTML, XML, XHTML и т.п). Разметка 500 далее разбирается процессором электронного устройства 110, чтобы позволить браузерному приложению 250 сформировать веб-страницу на экране 220.
[51] Электронное устройство 110 также обладает другими приложениями, такими как приложение обработки слов, приложение просмотра видео, приложение для проигрывания музыки, приложение для обмена фотографиями и тому подобное, некоторые из которых могут быть выполнены с возможностью получать и передавать данные через сеть 130 передачи данных.
[52] В представленном варианте осуществления сеть 130 передачи данных может представлять собой сеть Интернет. В других вариантах осуществления решения сеть 130 передачи данных может отличаться от Интернета, например в виде глобальной сети передачи данных, локальной сети передачи данных, частной сети передачи данных и т.п. В сети 130 передачи данных связь может возникнуть по другим типам линий передачи данных, например беспроводным линиям (например, беспроводной интернет Wireless Fidelity или коротко WiFi, Bluetooth и тому подобное) или проводным линиям (например, соединение через универсальную последовательную шину USB или соединение на основе сети Ethernet).
[53] К сети 130 передачи данных также присоединен сервер 120. В представленном варианте осуществления сервер 120 является сервером 120 приложения для почтового приложения (например, Gmail, Yandex Mail и тому подобные), для создания, получения, передачи и хранения электронных сообщений, например электронного сообщения 400, часть которого показана на Фиг. 4. Сервер 120 соединен электронным устройством через сеть 130 передачи данных. Сервер 120 может быть соединен с множеством электронных устройств 110. Сервер 120 также может быть соединен с другими серверами, например, среди прочего, с серверами сетевых ресурсов, серверами приложений, серверами конфигурации сети через сеть 130 передачи данных.
[54] Сервер 120 может представлять собой обычный компьютерный сервер. В примере варианта осуществления настоящего решения сервер 120 может представлять собой сервер Dell PowerEdge, на котором используется операционная система Microsoft Windows Server. Сервер 120 также может быть реализован как любое другое сетевое оборудование, например маршрутизатор, коммутатор, шлюз, базовая станция и т.д. Сервер 120 может быть реализован на любом подходящем аппаратном и/или прикладном программном, и/или системном программном обеспечении или их комбинации. В представленном варианте осуществления, не ограничивающем объем решения, сервер 120 является одиночным сервером. В других вариантах осуществления, не ограничивающих объем решения, функциональность сервера 120 может быть разделена и может выполняться с помощью нескольких серверов. Вариант осуществления сервера 120 хорошо известен. Тем не менее, вкратце, сервер 120 содержит сетевой интерфейс связи, например сетевой интерфейс 230 связи, представленный на Фиг. 2, который настроен и выполнен с возможностью устанавливать соединение с электронным устройством 110 и другими устройствами, соединенными с сетью 130 передачи данных. Сервер 120 дополнительно включает по меньшей мере один компьютерный процессор, например процессор 240, представленный на Фиг. 2, функционально соединенный с сетевым интерфейсом 230 связи, и структурированный и выполненный с возможностью выполнять различные процессы для модификации представления текста в документе, как будет описано далее. В некоторых вариантах осуществления сервер 120 также включает в себя одну или несколько баз данных (не показаны), например картографическую базу данных или телефонный справочник и т.д. В других вариантах осуществления, сервер 120 может быть функционально соединен с одной или несколькими базами данных через сеть 130 передачи данных.
[55] Способ 300 модификации представления текста в документе 400 далее будет описан со ссылками на Фиг. 3-6.
[56] На Фиг. 3 показаны этапы 310-340 способа 300 модификации представления текста в документе 400 в форме электронного сообщения 400, часть которого показана на Фиг. 4. На Фиг. 5 и 6 представлено дерево 500 объектной модели документ (DOM), связанное с разметкой 500, которая соответствует части текста в электронном сообщении 400, показанном на Фиг. 4.
[57] Способ 300 выполняется системой 200. В некоторых вариантах осуществления, система 200 включена в сервер 120. Сервер 120 может быть сервером-хостом для почтового приложения, используемого отправителем электронного сообщения 400 для создания электронного сообщения 400, или хостом для почтового приложения, используемого получателем электронного сообщения 400 для получения электронного сообщения. Также предполагается, что в некоторых вариантах способ 300 также может быть реализован, по меньшей мере, частично, процессором 240 электронного устройства 110 отправителя и/или получателя электронного сообщения 400.
[58] Со ссылкой на Фиг. 4 способ 300 будет описан в отношении части электронного сообщения 400, включая предложение «Торонто самый населенный город в Канаде» (англ. «Toronto is the most populous city in Canada.»). В первом примерном сценарии слово "Торонто" в части электронного сообщения 400 модифицировано с помощью добавления ссылки на аудиофайл с произношением названия "Торонто" (англ. "Toronto"). Во втором примерном сценарии слово "Торонто" (англ. "Toronto") модифицировано путем добавления ссылки на карту Торонто.
[59] Несмотря на то, что способ 300 будет описан в отношении модификации текста в документе 400 в форме электронного сообщения 400, следует иметь в виду, что способ 300 может быть реализован для модификации текста в других типах документов 400, например веб-страниц и тому подобного.
[60] Со ссылкой на Фиг. 3 на этапе 310 способа 300 для модификации представления текста в документе 400 получают дерево 510 DOM, связанное с разметкой 500 документа 400.
[61] Как видно на Фиг. 5, в представленном варианте осуществления, разметка 500 создается в HTML (на Языке Разметки Гипертекста). Несмотря на то, что способ 300 описан со ссылкой на разметку 500, который создается в HTML, следует иметь в виду, что способ 300 может быть в общем случае применяться к разметке 500, написанной на любом другом языке разметки, не ограничивающимся HTML.
[62] Дерево 510 DOM получают путем разбиения разметки 500, что хорошо известно в данной области техники. Следует иметь в виду, что представленное дерево 510 DOM было упрощено для удобства дальнейшего описания способа 300 и не подразумевает никаких ограничений объема и границ способа 300, описанного далее. Дерево 510 DOM показано на Фиг. 5 и 6 только для целей иллюстрации. Следует иметь в виду, что дерево 510 DOM, соответствующее части электронного сообщения 400, которое показано на Фиг. 4, может отличаться от того, которое показано. Например, дерево 510 DOM может обладать дополнительными ветвями, узлами, элементами, тегами и тому подобным, как показано далее.
[63] Со ссылками на Фиг. 5 и 6, часть дерева 510 DOM, соответствующего примерной части документа 400, показанного на Фиг. 4, включает в себя узлы 1010, 1110, 1120, 1130, 1140, 1150, 1160, 1170, 1205, 1210, 1215, 1220, 1225, 1230, 1235, 1240, 1245 и 1250. Узел 1010 является родительским узлом, обладающим семью дочерними узлами 1110, 1120, 1130, 1140, 1150, 1160, 1170. Узел 1130 является родительским узлом, обладающим десятью дочерними узлами 1205, 1210, 1215, 1220, 1225, 1230, 1235, 1240, 1245, и 1250. Родительский узел 1010 является корневым узлом для этой части дерева 510 DOM и включает в себя полностью часть разметки 500, соответствующую части документа 400, показанного на Фиг. 4. Дочерние узлы 11101170 включают в себя подмножества части разметки 500, соответствующей части документа 400, показанного на Фиг. 4.
[64] На этапе 320 способ 300 проводит поиск по множеству узлов дерева 510 DOM для поиска целевой текстовой строки 520. В первом примерном сценарии целевая текстовая строка 520 - «Торонто». Во втором примерном сценарии целевая текстовая строка 520 - "Торонто" (англ. "Toronto"). Целевая текстовая строка 520 может включать в себя любое сочетание букв, цифр и символов, в общем случае любой знак, который может быть введен пользователем электронного устройства 110 или показан на экране 220 пользователю электронного устройства 110.
[65] Целевая текстовая строка 520 определена на основе заранее определенного критерия и использования одной или нескольких баз данных или словарей. Целевая текстовая строка 520 определена путем обработки документа 400. В некоторых вариантах осуществления обработка документа 400 включает в себя получение текстовой версии документа 400. В некоторых вариантах осуществления документ 400 может быть анализирован на предмет наличия семантической информации, контекстной информации и т.п. Например, заранее определенный критерий для целевой текстовой строки 520 может представлять собой название города, адрес, телефонный номер и т.п. Целевая текстовая строка 520 в соответствии с заранее определенным критерием может быть определена в текстовой версии документа 400 путем применения маски или шаблона для заранее определенного критерия (например, телефонного номера или адреса), полученного из словарей и/или баз данных. Словари и/или базы данных могут быть сохранены локально на сервере 120 или электронном устройстве 110, где способ 300 реализован или удаленно хранится на другом сервере 120, доступ к которому может быть получен через сеть 130 передачи данных. Способ 300, тем не менее, не ограничен средствами определения текстовой строки 520.
[66] На этапе 320 проводится поиск в множестве узлов 1010-1250 на наличие целевой текстовой строки 520 сверху вниз. Таким образом, поиск в родительском узле 1010, 1130 проводится до поиска в соответствующих их дочерних узлах 1110-1170, 1205-1250. В примерном варианте дерева 510 DOM поиск в родительском узле 1010 проводится до поиска в дочерних узлах 1110-1170 и поиск в дочерних узлах 1205-1250 проводится после поиска в соответствующем родительском узле 1130.
[67] В процессе поиска в узлах 1010-1250 поиск производится от родительского узла (например, 1010), который включает в себя целиком целевую текстовую строку 520, к первому дочернему узлу (например, 1110). Если первый дочерний узел не включает в себя полностью текстовую строку 520, поиск производится во втором дочернем узле 1120 (т.е. сестринском узле по отношению к первому дочернему узлу 1110). Если первый дочерний узел включает полностью текстовую строку 520, поиск также производится в дочерних узлах первого дочернего узла, если таковые имеются.
[68] Таким образом, корневой узел 1010 проверяется первым для подтверждения того, включает ли он в себя целиком целевую текстовую строку 520. Если корневой узел 1010 включает целиком целевую текстовую строку 520, каждый из дочерних узлов 1110-1170 корневого узла 1010 проверяется на наличие целиком целевой текстовой строки 520 или ее части. Если корневой узел 1010 определен как не включающий целиком целевую текстовую строку 520, то способ 300 не проводит поиск в дочерних узлах 1110-1170 или дочерних узлах дочерних узлов 1205-1250. Область поиска в дереве 510 DOM таким образом сужается до поиска в дочерних узлах родительского узла, который включает в себя целиком целевую текстовую строку 520.
[69] В первом примерном сценарии поиск в корневом узле 1010 показывает, что целевая текстовая строка 520 "Торонто" включена в него и, следовательно, поиск в дочерних узлах 1110-1170 проводится на предмет наличия целиком целевой текстовой строки 520 "Торонто" или ее части.
[70] Во втором примерном сценарии поиск в корневом узле 1010 показывает, что целевая текстовая строка 520 "Торонто" (англ. "Toronto") включена в него и, следовательно, поиск в дочерних узлах 1110-1170 проводится на предмет наличия целиком целевой текстовой строки 520 "Торонто" (англ. "Toronto") или ее части.
[71] Наличие целиком целевой текстовой строки 520 в узле 1010-1250 дерева 510 DOM показывает, что каждый знак целевой текстовой строки 520 имеется в тексте узла 1010-1270 в том же порядке, в котором он имеется в целевой текстовой строке 520, но соседствующие знаки в целевой текстовой строке 520 могут быть разделены в узле 1010-1250 одним или несколькими знаками, которые не являются частью целевой текстовой строки 520. Например, узел 1110 включает в себя все символы целевой текстовой строки 520 "Торонто" (англ. "Toronto") и никакие из соседствующих знаков не разделены нецелевыми текстовыми знаками. В качестве другого примера, узел 1130 включает в себя все символы целевой текстовой строки 520 "Торонто", но в этом случае соседние знаки, например, "t" и  текстовой строки 520 найдены в узле 1130, отделенном от других знаков, которые не являются частью целевой текстовой строки 520. В обоих случаях узел 1110 и 1130 включает в себя целиком целевую текстовую строку 520 "Торонто" (англ. "Toronto") и  соответственно.
[72] Поиск целиком целевой текстовой строки 520 в тексте любого из узлов 1010-1250 выполняется знак за знаком. Например, поиск в корневом узле 1010 первого знака "t" целевой текстовой строки 520 "Торонто" сравнивается с каждым символом в тексте узла 1010, начиная с первого знака узла 1010. Когда найдено совпадение первого знака целевой текстовой строки 520 второй знак  целевой текстовой строки 520, выбирается для сравнения с текстом в узле 1010, начиная с позиции после совпадения с первым знаком целевой текстовой строки 520, и т.д., до тех пор, пока не будет проведен поиск по всему тексту узла 1010, или до тех пор, пока все знаки целевой текстовой строки 520 не совпадут.
[73] Таким образом, для примерного варианта дерева 510 DOM целевой узел 1010 включает в себя все знаки целевой текстовой строки 520 "Торонто". Первый знак "t" целевой текстовой строки 520 "Торонто" найден в дочерних узнал 1110, 1130, 1140 и 1150, а второй знак  целевой текстовой строки 520 найден только в дочернем узле 1130. Следовательно, только в узле 1130 был проведен поиск на оставшиеся знаки целевой текстовой строки 520 "Торонто".
[74] Также предполагается, что поиск в узлах 1010-1250 на наличие знаков целевой текстовой строки 520 может быть проведен с учетом возможности ошибок и/или несоответствий, например типографских ошибок в документе 400. Например, может быть определено множество целевых текстовых строк 520 с другими вариантами написания конкретного названия города. В качестве другого примера, поиск в узлах 1010-1250 на предмет наличия целевой текстовой строки 520 может учитывать тот факт, что пары знаков определенной целевой текстовой строки 520 могут быть инвертированы в позиции в документе 400 и/или соответствующих узлах 1010-1250 дерева DOM.
[75] На этапе 330 определяется целевой текстовый узел 530. Целевой текстовый узел 530 определяется таким образом, что целевая текстовая строка 520 целиком включена в целевой текстовый узел 530, но ни один из дочерних узлов целевого текстового узла 530 не включает целевую текстовую строку 520 целиком. Целевой текстовый узел 520 является последним общим узлом для всех знаков целевой текстовой строки 520 в ветке дерева 510 DOM.
[76] В первом примерном сценарии с помощью примерной целевой текстовой строки 520 "Торонто" определяется, что целевым текстовым узлом 530 является узел 1130, включающий в себя все знаки целевой текстовой строки 520 "Торонто". Ни один из дочерних узлов 1205-1250 узла 1130 не включает в себя все знаки примерной целевой текстовой строки 520 "Торонто".
[77] Во втором примерном сценарии, где целевая текстовая строка 520 представляет собой "Торонто" (англ. "Toronto"), целевой текстовый узел 530 определен как узел 1110, поскольку узел 1110 включает в себя все знаки целевой текстовой строки 520 "Торонто" (англ. "Toronto"), и узел 1110 не имеет дочерних узлов, следовательно, ни один из дочерних узлов целевого текстового узла 1110 не включает в себя целиком целевую текстовую строку 520 "Торонто" (англ. "Toronto").
[78] В другом примере целевая текстовая строка 520, например, "Центральная Улица" (англ. "Center Street"), целевой текстовый узел 530 может быть узлом, который включен в слово "Центральная" (англ. "Center"), за которым следует один или несколько знаков, не являющихся частью целевой текстовой строки 520, и далее слово "Улица" (англ. "Street"), и ни один из дочерних узлов не включает в себя оба слова "Центральная" (англ. "Center") и "Улица" (англ. "Street"). Целевой текстовый узел 530 в этом примере целевой текстовой строки 520 "Центральная Улица" (англ. "Center Street") также может быть узлом, который включает "Центральная Улица" (англ. "Center Street") и ни один из его дочерних узлов не включает в себя "Центральная" (англ. "Center") и "Улица" (англ. "Street"), или любые другие его подмножества, которые будут последовательно добавлены до получения "Центральная Улица" (англ. "Center Street").
[79] На этапе 340 в ответ на целевой текстовый узел 530, который был определен на этапе 330, разметка 500 модифицируется либо в целевом текстовом узле 530 или по меньшей мере в одном из дочерних узлов целевого текстового узла 530, который включает в себя часть целевой текстовой строки 520.
[80] Например, разметка 500 может быть модифицирована, как упоминалось ранее, для добавления гиперссылки в целевую текстовую строку 520, для добавления загружаемого документа в целевую текстовую строку 520, для выделения цветом или подчеркивания или иным образом изменения формата или визуального представления целевой текстовой строки 520 и т.п. Способ 300 не ограничен никаким конкретным типом модификации разметки 500 или никаким конкретным типом модификации целевой текстовой строки 520.
[81] В первом примерном сценарии восемь узлов 1210-1245 десяти дочерних узлов 1205-1250 целевого текстового узла 1130, каждый включает в себя часть целевой текстовой строки 520 "Торонто", и разметка 500 модифицируется в каждом из этих восьми дочерних узлов 1210-1245. Дочерние узлы 1205, 1250, которые не включают никакие части целевой текстовой строки 520 "Торонто", остаются без изменений. В некоторых вариантах осуществления разметка 500 модифицируется только в одном из восьми дочерних узлов 1210-1245, который включает в себя часть целевой текстовой строки 520 "Торонто".
[82] Во втором примерном сценарии разметка 500 модифицируется в целевом текстовом узле 530, 1110.
[83] В некоторых вариантах способа 300 только одно появление целевой текстовой строки 520 будет модифицировано. В этом случае, поиск в узлах 1010-1250 целевой текстовой строки 520 заканчивается после определения первого целевого текстового узла 530, соответствующего первому появлению целевой текстовой строки 520 в документе 400. В этом случае, только в подмножестве дочерних узлов 1110-1170 корневого узла 1010 может быть произведен поиск в целевой текстовой строке 520. Поиск в дочерних узлах 1110-1170 может быть произведен последовательно от первого 1110 ко второму 1120 и так далее до тех пор, пока не будет найдена первая целевая текстовая строка 520. В некоторых вариантах поиск в подмножестве дочерних узлов 1110-1170 корневого узла 1010 может быть сужен другими способами, например, путем определения того, будет ли целевая текстовая строка встречаться до или после конкретного одного из дочерних узлов 1110-1170.
[84] В некоторых вариантах способа 300 только одно появление целевой текстовой строки 520 будет модифицировано, но поиск в дочерних узлах 1110-1170 продолжается до тех пор, пока все целевые текстовые узлы, соответствующие каждому из появлений целевой текстовой строки 520 в документе 400, не будут учтены. После того, как все появления целевой текстовой строки 520 были определены, одно из появлений целевой текстовой строки 520 выбирается для модификации. Конкретное появление целевой текстовой строки 520, которое выбирается для модификации, может быть основано на удобстве модификации разметки 500, соответствующей этому появлению целевой текстовой строки 520. Например, узел, который выбран для модификации разметки 510, может быть дочерним узлом целевого текстового узла, который включает очень малую часть содержимого, кроме части целевой текстовой строки 520. Модификация разметки 500 в таком узле, обладающем меньшим количеством текста, чем узел, обладающий большим числом текста (элементы, теги, свойства, текст и так далее), будет обладать меньшей вероятностью случайной или нежелательной модификации разметки и соответственного представления документа 400. Также предполагается, что выбор одного из одного или более появлений целевой текстовой строки может быть основан на подходящем появлении целевой текстовой строки 520. Например, конкретное появление целевой текстовой строки 520 может быть выбрано для модификации на основе его положения в документе 400 в центре и на видном месте в документе 400.
[85] В некоторых вариантах осуществления способа 300 каждое появление целевой текстовой строки 520 будет модифицировано. В этом случае, все целевые узлы 530 (каждый узел, соответствующий одной из целевых текстовых строк 520) определяются в дереве 510 DOM. Для каждого из определенных целевых текстовых узлов 530, разметка 500 изменяется либо в целевом текстовом узле 530, либо по меньшей мере в одном из его дочерних узлов, который включает в себя часть целевой текстовой строки 520. В этом случае, поиск в дочерних узлах 1110-1170 продолжается от одного сестринского узла 1110 корневого узла 1010 к другому сестринскому узлу 1120 до тех пор, пока поиск не будет проведен во всех дочерних узлах 1110-1170 корневого узла 1010. Предполагается, что в некоторых вариантах осуществления число появлений целевой текстовой строки 520 в документе 400 может сначала быть определено и использовано для уменьшения, ограничения или сужения поиска в узлах 1010-1250. Например, корневой узел 1010 может указывать на число появлений целевой текстовой строки 520, или число появлений целевой текстовой строки 520 может быть определено путем обработки текстовой версии документа 400. В этом случае, поиск в дочерних узлах 1110-1170 продолжается от одного сестринского узла 1110 корневого узла 1010 к другому сестринскому узлу 1120 до тех пор, пока число появлений целевой текстовой строки 520 не будет определено из корневого узла 1010.
[86] В некоторых вариантах осуществления множество целевых текстовых строк 520, причем каждая целевая текстовая строка 520 отличается от других, модифицировано в документе 400. В этом случае, в узлах 1010-1270 дерева 510 DOM будет проведен поиск каждого из целевых текстовых строк 520 и для каждой целевой текстовой строки 520 будет определен по меньшей мере один целевой текстовый узел 530 (соответствующий по меньшей мере одному появлению соответствующей целевой текстовой строки 520 в документе 400).
[87] Варианты осуществления настоящего решения могут быть выполнены с проявлением других технических результатов.
[88] Специалисты в данной области техники поймут, что в настоящем описании выражение "получение данных" от пользователя подразумевает получение электронным устройством данных от пользователя в виде электронного (или другого) сигнала. Кроме того, специалисты в данной области техники поймут, что отображение данных пользователю через графический интерфейс пользователя (например, экран электронного устройства и тому подобное) может включать в себя передачу сигнала графическому интерфейсу пользователя, этот сигнал содержит данные, которые могут быть обработаны, и по меньшей мере часть этих данных может отображаться пользователю через графический интерфейс пользователя.
[89] Некоторые из этих этапов, а также передача-получение сигнала хорошо известны в данной области техники и поэтому для упрощения были опущены в конкретных частях данного описания. Сигналы могут быть переданы-получены с помощью оптических средств (например, оптоволоконного соединения), электронных средств (например, проводного или беспроводного соединения) и механических средств (например, на основе давления, температуры или другого подходящего параметра).
[90] Модификации и улучшения вышеописанных вариантов осуществления будут ясны специалистам в данной области техники. Предшествующее описание представлено только в качестве примера и не несет никаких ограничений. Таким образом, объем настоящего решения ограничен только объемом прилагаемой формулы изобретения.