МОДУЛЬ ОБНАРУЖЕНИЯ ФОРМУЛ
FORMULA DETECTION MODULE

УРОВЕНЬ ТЕХНИКИ
[1] Документы нефиксированного формата и документы фиксированного формата широко используются и имеют разные цели. Документы нефиксированного формата организуют документ с использованием сложных структур логического форматирования, например разделов, абзацев, столбцов и таблиц. В результате документы нефиксированного формата предлагают гибкость и простую модификацию, что делает их подходящими для задач, включающих в себя документы, которые часто обновляются или подвержены значительной правке. В отличие от этого документы фиксированного формата организуют документ с использованием базовых элементов физического макета, таких как текстовые цепочки, контуры и изображения, для сохранения внешнего вида оригинала. Документы фиксированного формата предлагают согласованный и точный макет формата, что делает их подходящими для задач, включающих в себя документы, которые изменяются не часто или не сильно, либо там, где нужно единообразие. Примеры таких задач включают в себя документные архивы, высококачественное воспроизведение и исходные файлы для коммерческой полиграфии. Документы фиксированного формата часто создаются из исходных документов нефиксированного формата. Документы фиксированного формата также включают в себя цифровые воспроизведения (например, сканирования и фотографии) физических (то есть бумажных) документов.
[2] В ситуациях, где нужна правка документа фиксированного формата, но исходный документ нефиксированного формата недоступен, документ фиксированного формата должен быть преобразован в документ нефиксированного формата. Преобразование включает в себя синтаксический анализ документа фиксированного формата и преобразование базовых элементов физического макета из документа фиксированного формата в более сложные логические элементы, используемые в документе нефиксированного формата. Существующие преобразователи документов, столкнувшись со сложными элементами, например математическими формулами и выражениями, прибегают к базовым методикам, предназначенным для сохранения визуальной точности макета документа фиксированного формата (например, рамки с текстом, междустрочный интервал, межзнаковый интервал и изображения) ценой "подвижности" выходного документа. Результатом является ограниченный документ нефиксированного формата, который требует от пользователя выполнение значительного ручного восстановления, чтобы получить действительно полезный документ нефиксированного формата. Именно относительно этих и других соображений создано настоящее изобретение.
КРАТКОЕ ИЗЛОЖЕНИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
[3] Нижеследующее краткое изложение сущности изобретения предоставляется, чтобы представить подборку идей в упрощенном виде, которые дополнительно описываются ниже в Подробном описании. Данное Краткое изложение сущности изобретения не предназначено ни для определения ключевых признаков или существенных признаков заявленного изобретения, ни для использования в ограничении объема заявленного изобретения.
[4] Один вариант осуществления модуля обнаружения формул исполняет ассоциированный способ обнаружения формул как часть процесса преобразования, преобразующего документ фиксированного формата в документ нефиксированного формата. Модуль обнаружения формул создает начальные области формулы путем идентификации элементов, которые потенциально являются частью математической формулы, и группирования тех элементов в области формулы на основе относительного положения тех элементов. Модуль обнаружения формул начинает с идентификации исходных элементов формулы в проанализированных элементах. Исходный элемент формулы является текстовым элементом, который несет некоторое указание, что является частью формулы, например текстовые цепочки, записанные шрифтами, используемыми исключительно или почти исключительно для отображения математических выражений и математических операторов, символы или ключевые слова, которые исключительно или почти исключительно используются в математических формулах. Как только идентифицированы исходные элементы формулы, модуль обнаружения формул задает область формулы (то есть границу) вокруг каждого из обнаруженных исходных элементов формулы и расширяет границы, чтобы сгруппировать исходные элементы формулы и другие элементы на основе близости. Все элементы страницы, обведенные ограничивающим прямоугольником области формулы, считаются захваченными элементами.
[5] Далее модуль обнаружения формул устраняет перекрытие между областями формулы и любым окружающим обычным текстом (то есть текстовыми элементами, которые не являются частью математической формулы) путем подразделения областей формулы, перекрывающих обычный текст, на основе вертикального положения и разбиения областей формулы на основе горизонтального интервала. Модуль обнаружения формул начинает с анализа каждой области формулы для определения того, перекрывает ли область формулы какие-либо области обычного текста. Если область формулы перекрывает какой-либо обычный текст, то модуль обнаружения формул делит область формулы путем группирования захваченных элементов на основе вертикального положения. Вокруг каждой группы захваченных элементов создается новая область формулы. Модуль обнаружения формул анализирует содержимое новых областей формулы на предмет перекрытия с обычным текстом, и любая новая область формулы, все еще содержащая обычный текст, делится дальше. Как только поделены области формулы, модуль обнаружения формул разбивает каждую область формулы в соответствии с горизонтальным интервалом между захваченными элементами.
[6] В конечном счете, модуль обнаружения формул восстанавливает математические формулы в виде "плавающих" элементов путем объединения любых соседних областей формулы на основе близости. Модуль обнаружения формул использует информацию о положениях соседних текстовых элементов, чтобы предотвратить объединение областей формулы, появляющихся на разных строках на странице. Области формулы, которые перекрываются горизонтально (то есть по меньшей мере частично ориентированы вертикально) и находятся в пределах выбранного расстояния вертикального разделения, группируются в качестве кандидатов объединения. Модуль обнаружения формул упорядочивает (например, сортирует) кандидаты объединения в соответствии с вертикальным разделением между областями формулы и заменяет две области формулы у кандидата объединения новой областью формулы при условии, что две области формулы еще не объединены и не находятся на отдельных строках.
[7] Подробности одного или нескольких вариантов осуществления излагаются на прилагаемых чертежах и в описании ниже. Другие признаки и преимущества станут очевидными из прочтения нижеследующего подробного описания и рассмотрения ассоциированных чертежей. Нужно понимать, что нижеследующее подробное описание является лишь поясняющим, а не ограничивающим изобретение, которое заявлено.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[8] Дополнительно признаки, особенности и преимущества станут понятнее в результате обращения к нижеследующему подробному описанию, прилагаемой формуле изобретения и прилагаемым чертежам, где элементы не изображаются в масштабе, чтобы понятнее показать подробности, где одинаковые номера ссылок указывают одинаковые элементы во всех видах и где:
Фиг. 1 иллюстрирует систему, включающую в себя модуль обнаружения формул;
Фиг. 2 - блок-схема, показывающая последовательность операций в одном варианте осуществления процессора документов;
Фиг. 3 - логическая блок-схема, показывающая один вариант осуществления способа обнаружения формул;
Фиг. 4 - логическая блок-схема, показывающая один вариант осуществления процесса для создания начальных областей формулы, используемого в способе обнаружения формул;
Фиг. 5A графически иллюстрирует типовую операцию по идентификации исходных элементов формулы, применяемую к выбранной части данных, полученных посредством синтаксического анализа из документа фиксированного формата, который содержит несколько математических формул и уравнений, появляющихся в цепочке обычного текста;
Фиг. 5B графически иллюстрирует типовую операцию из одного варианта осуществления процесса создания начальных областей формулы;
Фиг. 6 - блок-схема алгоритма, показывающая один вариант осуществления процесса для устранения перекрытия между областями формулы и обычным текстом, используемого в способе обнаружения формул;
Фиг. 7A-D графически иллюстрируют избранные типовые операции из одного варианта осуществления процесса устранения перекрытия между областями формулы и обычным текстом, используемого в одном варианте осуществления способа обнаружения формул;
Фиг. 8 - логическая блок-схема, показывающая один вариант осуществления процесса восстановления отдельных формул, используемого в способе обнаружения формул;
Фиг. 9A-B графически иллюстрируют избранные типовые операции из одного варианта осуществления процесса восстановления отдельных формул, используемого в способе обнаружения формул;
Фиг. 10 иллюстрирует типовое планшетное вычислительное устройство, исполняющее вариант осуществления модуля обнаружения формул;
Фиг. 11 - упрощенная блок-схема типового вычислительного устройства, подходящего для осуществления на практике вариантов осуществления модуля обнаружения формул;
Фиг. 12A иллюстрирует один вариант осуществления мобильного вычислительного устройства, исполняющего один вариант осуществления модуля обнаружения формул;
Фиг. 12B - упрощенная блок-схема типового мобильного вычислительного устройства, подходящего для осуществления на практике вариантов осуществления модуля обнаружения формул; и
Фиг. 13 - упрощенная блок-схема типовой системы распределенных вычислений, подходящей для осуществления на практике вариантов осуществления модуля обнаружения формул.
ПОДРОБНОЕ ОПИСАНИЕ
[9] Модуль обнаружения формул и связанный с ним способ для идентификации математических формул и выражений в данных, извлеченных из документа фиксированного формата, описываются в этом документе и иллюстрируются на прилагаемых чертежах. Модуль обнаружения формул определяет местонахождение формул в части документа фиксированного формата путем идентификации исходного элемента формулы. Модуль обнаружения формул создает и расширяет границу вокруг исходного элемента формулы, чтобы задать область формулы. Чтобы устранить перекрытие с окружающим обычным текстом, область формулы делится на несколько областей формулы на основе вертикального положения и горизонтального интервала между захваченными элементами. Результирующие области формулы, упорядоченные вертикально, и горизонтально перекрывающиеся области формулы объединяются для восстановления формулы в виде плавающего элемента.
[10] Фиг. 1 иллюстрирует один вариант осуществления системы, заключающей в себе модуль 100 обнаружения формул. В проиллюстрированном варианте осуществления модуль 100 обнаружения формул работает как часть преобразователя 102 документов, исполняемого на вычислительном устройстве 104. Преобразователь 102 документов преобразует документ 106 фиксированного формата в документ 108 нефиксированного формата, используя синтаксический анализатор (парсер) 110, процессор 112 документов и параллельно-последовательный преобразователь (сериализатор) 114. Синтаксический анализатор 110 считывает и извлекает данные из документа 106 фиксированного формата. Данные, извлеченные из документа фиксированного формата, записываются в хранилище 116 данных, доступное процессору 112 документов и параллельно-последовательному преобразователю 114. Процессор 112 документов анализирует и преобразует данные в плавающие элементы, используя один или несколько модулей обнаружения и/или восстановления (например, модуль 100 обнаружения формул из настоящего изобретения). В конечном счете параллельно-последовательный преобразователь 114 записывает плавающие элементы в плавающий формат документа (например, формат обработки текстов).
[11] Фиг. 2 подробнее иллюстрирует один вариант осуществления последовательности операций в процессоре 112 документов. Процессор 112 документов включает в себя необязательный модуль 202 оптического распознавания символов (OCR), модуль 204 анализа макета и модуль 206 семантического анализа. Данные, содержащиеся в хранилище 116 данных, включают в себя объекты 208 физического макета и объекты 210 логического макета. В некоторых вариантах осуществления объекты 208 физического макета и объекты 210 логического макета иерархически организуются в древовидный массив групп (то есть объектов данных). В различных вариантах осуществления страница является группой верхнего уровня для объектов 208 физического макета, тогда как раздел является группой верхнего уровня для объектов 210 логического макета. Данные, извлеченные из документа 106 фиксированного формата, обычно сохраняются в виде объектов 208 физического макета, организованных по содержащей странице, в документе 106 фиксированного формата. Базовые объекты физического макета включают в себя текстовые цепочки, изображения и контуры. Текстовые цепочки являются текстовыми элементами в потоках содержимого страницы, задающими положения, где отрисовываются знаки при отображении документа фиксированного формата. Изображения являются растровыми изображениями (то есть картинками), сохраненными в документе 106 фиксированного формата. Контуры описывают элементы, такие как линии, кривые (например, кривые Безье третьего порядка) и текстовые структуры, используемые для создания векторной графики. Логические объекты данных включают в себя плавающие элементы, например разделы, абзацы, столбцы и таблицы.
[12] То, где начинается обработка, зависит от типа анализируемого документа 106 фиксированного формата. "Родной" документ 106a фиксированного формата, созданный непосредственно из исходного документа нефиксированного формата, содержит некоторые или все базовые элементы физического макета. Как правило, данные извлекаются из "родного" документа фиксированного формата. Внедренные структуры данных извлекаются синтаксическим анализатором и доступны для немедленного использования преобразователем документов; хотя в некоторых случаях применяется незначительное переформатирование или другая незначительная обработка для организации или стандартизации данных. В отличие от этого вся информация в основанном на изображениях документе 106b фиксированного формата, созданном с помощью оцифровки физического документа (например, сканирования или фотографирования), сохраняется в виде последовательности изображений страниц без дополнительных данных (то есть без текстовых цепочек или контуров). В этом случае необязательный модуль 202 оптического распознавания символов анализирует каждое изображение страницы и создает соответствующие объекты физического макета. Как только доступны объекты 208 физического макета, модуль 204 анализа макета анализирует макет документа фиксированного формата. После того как завершается анализ макета, модуль 206 семантического анализа "обогащает" объекты логического макета семантической информацией, полученной из анализа объектов физического макета и/или объектов логического макета.
[13] Фиг. 3 - логическая блок-схема, показывающая один вариант осуществления способа 300 обнаружения формул, исполняемого модулем 100 обнаружения формул. Модуль 100 обнаружения формул создает (302) начальные области формулы путем идентификации элементов в объектах физического макета, которые потенциально являются частью математической формулы, и группирования тех элементов в области формулы на основе относительного положения тех элементов. Далее, модуль 100 обнаружения формул устраняет (304) перекрытие между областями формулы и любым окружающим обычным текстом (то есть текстовыми элементами, которые не являются частью математической формулы) путем подразделения областей формулы, перекрывающих обычный текст, и разбиения областей формулы на основе горизонтального интервала. В конечном счете модуль 100 обнаружения формул восстанавливает (306) математические формулы в виде "плавающих" элементов путем объединения любых соседних областей формулы на основе близости.
[14] Фиг. 4 - логическая блок-схема, показывающая один вариант осуществления процесса создания (302) начальных областей формулы, используемого в способе 300 обнаружения формул. Модуль 100 обнаружения формул начинает с идентификации (402) исходных элементов формулы в проанализированных элементах. В более общем смысле исходный элемент формулы является текстовым элементом, который несет некоторое указание того, что он является частью формулы. Чтобы идентифицировать исходные элементы формулы, модуль 100 обнаружения формул ищет одно или несколько из следующего, без ограничения: текстовые цепочки, записанные шрифтами, используемыми исключительно или почти исключительно для отображения математических выражений и математических операторов, символы или ключевые слова, которые исключительно или почти исключительно используются в математических формулах.
[15] Например, текстовый процессор может представлять формулы с помощью математического шрифта, например Cambria Math Корпорации Майкрософт, тогда как система подготовки документов (например, LaTeX) может использовать несколько семейств математических шрифтов, например математические шрифты Computer Modern. Модуль 100 обнаружения формул также рассматривает наличие математических операторов, символов и ключевых слов, чтобы идентифицировать исходные элементы формулы, поскольку некоторые процессоры документов не используют никакие специальные математические шрифты для математики. Примеры математических операторов, символов или ключевых слов, используемых для обнаружения формул, включают в себя операторы, например "Σ" и "±", символы, например "π", и ключевые слова, например "cos", представляющий косинусную функцию. Как правило, модуль 100 обнаружения формул использует ключевые слова, которые не имеют смысла в обычном языке (например, "tan"). В различных вариантах осуществления шрифты, используемые для идентификации исходных элементов формулы, включают в себя, но не ограничиваются, некоторые или все из следующих шрифтов: Cambria Math, Computer Modern math Italic (cmmi), Computer Modern math bold Italic (cmmib), Computer Modern math extension (cmex), Computer Modern math symbols (cmsy), Computer Modern bold math symbols (cmbsy), дополнительные математические символы American Math Society - первая последовательность (masm), дополнительные математические символы American Math Society - вторая последовательность (msbm), расширенный набор интегралов для Computer Modern (esint), MathTime TeX math italic (mtmi), MathTime TeX math symbols (mtsy), MathTime TeX math extension (mtex) и символы Roland Waldi (wasy). В некоторых вариантах осуществления исходные элементы формулы включают в себя, но не ограничиваются, некоторые или все знаки или наборы знаков Unicode в диапазонах #2200-#22FF (математические операторы), #27C0-#27EF (разнообразные математические символы-A), #2980-#29FF (разнообразные математические символы-B) и #2A00-#2AFF (дополнительные математические операторы) в качестве исходных элементов формулы. В различных вариантах осуществления исходные элементы формулы включают в себя, но не ограничиваются, некоторые или все из следующих текстовых ключевых слов: det, sin, cos, tg, tan, ctg, ctan, sinh, cosh, tanh, ctanh, log, In, gcd, arcsin, arcos, arctan, sec, csc, max, min, inf, sup, lim, sgn, exp, mod и var.
[16] Как только идентифицированы исходные элементы формулы, модуль 100 обнаружения формул задает (404) область формулы (то есть границу) вокруг каждого из обнаруженных исходных элементов формулы. Далее модуль 100 обнаружения формул расширяет (406) границы вокруг исходных элементов формулы, чтобы создать начальные области формулы. В одном варианте осуществления он добавляет все элементы страницы в окрестности исходного элемента формулы, которые обладают свойствами математических элементов, до тех пор, пока больше не останется таких элементов. Чтобы решить, следует ли включить элемент страницы в область формулы, модуль 100 обнаружения формул ищет свойства, идентифицирующие элемент страницы как возможный элемент математической формулы. В различных вариантах осуществления модуль 100 обнаружения формул рассматривает свойства, включающие в себя, но не только, евклидово расстояние от области формулы до элемента страницы, шрифт текста у элемента страницы, наличие математических операторов, символов и/или цифровых знаков (то есть цифр) в элементе страницы и размеры элемента страницы (то есть выше ли он либо шире стандартных текстовых элементов). Все элементы страницы, обведенные ограничивающим прямоугольником области формулы, считаются захваченными элементами.
[17] Фиг. 5A графически иллюстрирует выбранную часть данных 500, полученных посредством синтаксического разбора из документа фиксированного формата, примерами исходных элементов 502a-d формулы, идентифицированных модулем 100 обнаружения формул. Исходные элементы формулы, идентифицированные по шрифту 502a, обводятся прямоугольниками из пунктирной линии, а исходные элементы формулы, идентифицированные по математическим операторам 502b, символам 502c и ключевым словам 502d, обводятся овалами из сплошной линии.
[18] Фиг. 5B графически иллюстрирует начальную область 504 формулы, созданную модулем 100 обнаружения формул, очерченную ограничивающим прямоугольником. В проиллюстрированном варианте осуществления результатом является область формулы, ограниченная прямоугольниками, которые содержат одну или несколько математических формул. Там, где математические формулы достаточно разнесены друг от друга, каждая область формулы будет захватывать одну математическую формулу; однако в случаях, где несколько математических формул находятся в непосредственной близости, можно захватить отдельные математические формулы в одной области формулы. Кроме того, когда захватывается больше одной формулы в одной области формулы, расширенная область формулы может перекрывать окружающий обычный текст. В проиллюстрированном варианте осуществления расширенная область формулы захватила несколько математических формул 506 и перекрывает обычный текст 508, окружающий математические формулы.
[19] Фиг. 6 - логическая блок-схема, показывающая один вариант осуществления процесса устранения (304) перекрытия между областями формулы и обычным текстом, используемого в способе 300 обнаружения формул. Модуль 100 обнаружения формул начинает с анализа (600) каждой области формулы для определения, перекрывает ли область формулы какие-либо области обычного текста. Если область формулы перекрывает какой-либо обычный текст, то модуль 100 обнаружения формул продолжает выполнение группированием (602) каждого захваченного элемента на основе вертикального положения захваченного элемента. Вокруг каждой новой группировки захваченных элементов создается (604) новая область формулы. Модуль 100 обнаружения формул анализирует содержимое новых областей формулы на предмет перекрытия с обычным текстом, и любая новая область формулы, содержащая обычный текст, делится дальше. Многократный анализ, разбиение и уменьшение каждой новой области формулы по мере необходимости позволяет модулю 100 обнаружения формул справляться со случаями, где область формулы перекрывает несколько строк текста. Как только области формулы сгруппированы вертикально, модуль 100 обнаружения формул продолжает выполнение разбиением (606) каждой области формулы в соответствии с горизонтальным интервалом между захваченными элементами.
[20] Фиг. 7A-D графически иллюстрируют подпроцесс устранения (304) перекрытия между областями формулы и обычным текстом, используемый в способе 300 обнаружения формул, применяемом к начальной области 504 формулы. Фиг. 7A показывает начальную область 504 формулы, поделенную двумя горизонтальными делителями 700a, 702a, используемыми для группирования захваченных элементов начальной области 504 формулы на основе вертикального положения. Горизонтальные линии 700a, 702a соответствуют высоте строки обычного текста. Первая горизонтальная линия 700a соответствует верхнему краю (то есть границе) прямоугольника, ограничивающего строку обычного текста, содержащую математическую формулу. Вторая горизонтальная линия 702a соответствует нижнему краю прямоугольника, ограничивающего строку обычного текста, содержащую математические формулы.
[21] Делители 700a, 702a делят начальную область 504 формулы на верхнюю область 704a, среднюю область 706a и нижнюю область 708a, которые соответствуют областям выше, на уровне и ниже строки обычного текста. Если один из основных делителей 700a, 702a пересекает захваченные элементы, то модуль 100 обнаружения формул по необходимости устанавливает вспомогательную верхнюю горизонтальную разделительную линию 710a и вспомогательную нижнюю горизонтальную разделительную линию 712a выше и ниже самого верхнего и самого нижнего положений пересеченных захваченных элементов. Специалистам в данной области техники следует принять во внимание, что вспомогательные делители 710a, 712a не нужно устанавливать, если основные делители 700a, 702a не пересекают никакие захваченные элементы. В качестве альтернативы вспомогательные делители 710a, 712a могут быть коллинеарными с основными делителями 700a, 702a.
[22] Только те захваченные элементы, которые находятся целиком выше самой верхней разделительной линии 700a, 710a, установленной модулем 100 обнаружения формул, помещаются в первую группу, соответствующую верхней области 704a. В проиллюстрированном варианте осуществления в первую группу попадают только символы "n" и "∞". Аналогичным образом только те захваченные элементы, которые находятся целиком ниже самой нижней разделительной линии 702a, 712a, установленной модулем 100 обнаружения формул, помещаются во вторую группу, соответствующую нижней области 708a. В проиллюстрированном варианте осуществления члены "k=0" и "n=1" и текст, уравнения и формулы на строке ниже тех членов становятся частью второй группы. Все захваченные элементы, которые не попадают ни в одну из первой группы и второй группы, помещаются в третью группу, соответствующую средней области 706a. Другими словами, третья группа содержит захваченные элементы, которые находятся целиком между основными делителями 700a, 702a, пересекаются одним или обоими основными делителями 700a, 702a либо вертикально перекрывают пересеченный захваченный элемент. Любые пустые группы отбрасываются.
[23] Фиг. 7B иллюстрирует операцию создания (604) новых областей формулы вокруг групп на основе вертикального положения захваченных элементов. Из начальной области 504 формулы создается вплоть до трех новых областей формулы. Модуль 100 обнаружения формул при желании уменьшает размеры каждой новой области формулы в подходящей степени, достаточной для обведения всех захваченных там элементов формулы. В проиллюстрированном варианте осуществления начальная область 504 формулы подразделена на три новые области 714, 716 и 718 формулы, а начальная область 500 формулы отброшена. Каждая из новых областей 714, 716 и 718 формулы подвергается операции 600 идентификации перекрытия. В проиллюстрированном варианте осуществления две самые верхние новые области 714, 716 формулы не требуют никакого дополнительного вертикального деления. Третья новая область 718 формулы все еще содержит вертикальное перекрытие между областями формулы и обычным текстом. Соответственно, модуль 100 обнаружения формул повторяет операцию 602 группирования по вертикальному положению и операцию 604 создания новой области формулы над третьей новой областью 718 формулы. Нижняя разделительная линия 702b пересекает оператор суммирования, а верхняя разделительная линия 700b пересекает оператор квадратного корня и оператор суммирования. Отметим, что вспомогательный верхний делитель 710b устанавливается выше самого высокого пересеченного захваченного элемента (то есть оператора квадратного корня). Как и раньше, делители 700b, 702b разбивают область 718 формулы на верхнюю область 704b, среднюю область 706b и нижнюю область 708b. Модуль 100 обнаружения формул перегруппирует захваченные элементы в области 718 формулы описанным выше способом.
[24] Фиг. 7C иллюстрирует конечный результат многократного применения операции 600 идентификации перекрытия, операции 602 группирования по вертикальному положению и операции 604 создания новой области формулы. Третья новая область 718 формулы поделена на две новые области 724, 726 формулы. Первая область 724 формулы соответствует верхней области 704b у области 718 формулы, а вторая область 726 формулы соответствует средней области 706b у области 718 формулы. Пустая группа, соответствующая средней области 706b у области 718 формулы, отброшена. Ни одна из оставшихся областей 724, 726 формулы не требует никакого дополнительного вертикального группирования.
[25] Фиг. 7D иллюстрирует операцию разбиения (606) областей формулы на основе горизонтального интервала между захваченными элементами. Модуль 100 обнаружения формул начинает с горизонтального сканирования каждой области формулы и определения горизонтального расстояния между каждой парой последовательных захваченных элементов в области формулы. В некоторых вариантах осуществления направление горизонтального сканирования соответствует направлению чтения в языке документа. В других вариантах осуществления направление горизонтального сканирования идет слева направо или справа налево независимо от языка документа. Модуль 100 обнаружения формул делит область формулы между двумя последовательными захваченными элементами, разделенными горизонтальным расстоянием больше выбранного порогового расстояния, для создания новых областей формулы. В различных вариантах осуществления горизонтальное расстояние между последовательными захваченными элементами определяется из пробельного символа. Пунктирные линии 730 разрыва, показанные на фиг. 7D, указывают, где горизонтальное разделение превышает выбранную пороговую величину. В некоторых вариантах осуществления используется одна пороговая величина. В других вариантах осуществления пороговая величина меняется на основе окружающего текста.
[26] Фиг. 8 - логическая блок-схема, показывающая один вариант осуществления подпроцесса восстановления (306) отдельных формул путем группирования блоков формул. Модуль 100 обнаружения формул начинает с определения местонахождения (800) элементов обычного текста, появляющихся слева и справа от каждой области формулы. Модуль 100 обнаружения формул использует информацию о положениях соседних текстовых элементов, чтобы предотвратить объединение областей формулы, появляющихся на разных строках на странице. Модуль 100 обнаружения формул затем формирует наборы кандидатов объединения из доступных областей формулы. Области формулы, которые перекрываются горизонтально (то есть по меньшей мере частично ориентированы вертикально) и находятся в пределах выбранного расстояния вертикального разделения, группируются (802) в качестве кандидатов объединения. Модуль обнаружения формул упорядочивает (например, сортирует) (804) кандидатов объединения в соответствии с вертикальным расстоянием между областями формулы. В некоторых вариантах осуществления кандидаты объединения сортируются в возрастающем порядке. В других вариантах осуществления кандидаты объединения сортируются в убывающем порядке. Проходя по сортированным кандидатам объединения от первого к последнему, модуль 100 обнаружения формул заменяет (806) две области формулы, образующие кандидата объединения, новой областью формулы при условии, что две области формулы еще не объединены в одну область формулы и их вертикальные положения не ассоциированы с вертикальными положениями отдельных строк. В некоторых вариантах осуществления то, находятся ли области формулы на одной и той же строке на странице, определяется из обычного текста справа и/или слева от каждой области формулы. Если обычный текст справа или слева от каждой области формулы является одинаковым, то области формулы определяются как расположенные в пределах одной строки на странице. Наоборот, несходство обычного текста справа или слева от областей формулы указывает, что области формулы располагаются на разных строках на странице. Граница объединенной области формулы задается максимальными размерами двух областей формулы, образующих кандидата объединения. Другими словами, новая область формулы задается путем выбора самой верхней, самой нижней, самой левой и самой правой границы из верхней, нижней, левой и правой границ кандидатов объединения.
[27] Фиг. 9A и 9B графически иллюстрируют избранные операции из подпроцесса восстановления (306) отдельных формул, применяемого к текстовой цепочке 500. Фиг. 9A показывает выбранные области формулы, сгруппированные в кандидаты объединения. Первая группа 900a кандидатов объединения включает в себя области 914a, 916a и 924a формулы. Вторая группа 900b кандидатов объединения включает в себя области 914b, 916b и 924b формулы. Области 924a и 924b формулы не являются кандидатами объединения с областями 926a и 926b формулы соответственно, потому что расстояние вертикального разделения превышает выбранную пороговую величину. Более того, области 926a и 926b формулы не объединяются с группами 900a и 900b объединения соответственно, потому что обычный текст слева и справа отличается между ними (то есть области формулы находятся на разных строках на странице). Фиг. 9B показывает окончательное решение с каждой из четырех формул 902a-d, должным образом отделенных друг от друга и от окружающего обычного текста.
[28] При использовании в данном документе термины "область", "граница", "прямоугольник" используются взаимозаменяемо. Аналогичным образом термины "строка" и "делитель" используются взаимозаменяемо. Специалистам в данной области техники следует принять во внимание, что границы и делители, описанные в этом документе, в действительности не должны визуально представляться и/или отображаться во время способа обнаружения формул. Более того, границы и делители не ограничиваются прямоугольниками или строками. Границы и делители могут принимать другие формы (например, кривые) без отклонения от объема и сущности настоящего изобретения. Кроме того, границы и делители просто используют координаты или другие системы отсчета. Термины, ассоциирующиеся с формами (например, прямоугольник, линия и овал), не следует толковать как ограничивающие, а следует широко интерпретировать по обстоятельствам как включающие в себя любую подходящую границу или делитель, пока описание изобретения ясно не укажет иное.
[29] Модуль обнаружения формул и связанный с ним способ обнаружения формул, описанные в этом документе, полезны для идентификации каждой отдельной математической формулы, появляющейся в документе фиксированного формата, и для преобразования каждой идентифицированной математической формулы в элемент нефиксированного формата. В различных вариантах осуществления результат модуля обнаружения формул дополнительно обрабатывается дополнительными модулями форматирования в процессоре документов перед преобразованием в последовательную форму.
[30] Хотя изобретение описано в общем контексте программных модулей, которые исполняются в сочетании с прикладной программой, которая выполняется в операционной системе на компьютере, специалисты в данной области техники признают, что изобретение также можно реализовать совместно с другими программными модулями. Как правило, программные модули включают в себя процедуры, программы, компоненты, структуры данных и другие типы структур, которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных.
[31] Варианты осуществления и функциональные возможности, описанные в этом документе, могут функционировать посредством множества вычислительных систем, включающих в себя, без ограничения, настольные компьютерные системы, проводные и беспроводные вычислительные системы, мобильные вычислительные системы (например, мобильные телефоны, нетбуки, компьютеры планшетного типа, блокнотные компьютеры и переносные компьютеры), наладонные устройства, многопроцессорные системы, микропроцессорную или программируемую бытовую электронику, мини-компьютеры и мэйнфреймы. Фиг. 10 иллюстрирует типовое планшетное вычислительное устройство 1000, исполняющее вариант осуществления модуля 100 обнаружения формул. К тому же варианты осуществления и функциональные возможности, описанные в этом документе, могут функционировать на распределенных системах (например, облачных вычислительных системах), где прикладными функциональными возможностями, запоминающим устройством, хранением и извлечением данных и различными обрабатывающими функциями можно управлять удаленно друг от друга по сети распределенных вычислений, такой как Интернет или Интранет. Интерфейсы пользователя и информация различных типов могут отображаться посредством встроенных дисплеев вычислительных устройств или посредством дистанционных блоков отображения, ассоциированных с одним или несколькими вычислительными устройствами. Например, интерфейсы пользователя и информацию различных типов можно отобразить и взаимодействовать с ними на поверхности стены, на которую проецируются интерфейсы пользователя и информация различных типов. Взаимодействие с множеством вычислительных систем, с помощью которых можно применить на практике варианты осуществления изобретения, включают в себя ввод нажатием клавиши, сенсорный ввод, голосовой или другой звуковой ввод, ввод жестами, где ассоциированное вычислительное устройство оборудовано функциональными возможностями обнаружения (например, камерой) для захвата и интерпретирования жестов пользователя для управления функциональными возможностями вычислительного устройства и т.п. Фиг. с 11 по 13 и ассоциированные описания предоставляют обсуждение ряда операционных сред, в которых варианты осуществления изобретения могут быть применены на практике. Однако устройства и системы, проиллюстрированные и обсуждаемые по отношению к фиг. с 11 по 13, предназначены для примера и иллюстрации и не ограничивают большое количество конфигураций вычислительных устройств, которые могут использоваться для осуществления на практике вариантов осуществления изобретения, описанных в этом документе.
[32] Фиг. 11 - блок-схема, иллюстрирующая физические компоненты (то есть аппаратные средства) вычислительного устройства 1100, с помощью которого можно применить на практике варианты осуществления изобретения. Описанные ниже компоненты вычислительного устройства могут подходить для описанных выше вычислительных устройств. В базовой конфигурации вычислительное устройство 1100 может включать в себя по меньшей мере один блок 1102 обработки и системную память 1104. В зависимости от конфигурации и типа вычислительного устройства системная память 1104 может содержать, но не ограничивается, энергозависимое запоминающее устройство (например, оперативное запоминающее устройство), энергонезависимое запоминающее устройство (например, постоянное запоминающее устройство), флэш-память или любое сочетание таких запоминающих устройств. Системная память 1104 может включать в себя операционную систему 1105 и один или несколько программных модулей 1106, подходящих для выполнения программных приложений 1120, например модуль 100 обнаружения формул, синтаксический анализатор 110, преобразователь 112 документов и параллельно-последовательный преобразователь 114. Операционная система 1105, например, может подходить для управления работой вычислительного устройства 1100. Кроме того, варианты осуществления изобретения могут быть осуществлены на практике в сочетании с графической библиотекой, другими операционными системами или любой другой прикладной программой, и не ограничиваются каким-либо конкретным приложением или системой. Данная базовая конфигурация иллюстрируется на фиг.11 с помощью этих компонентов внутри пунктирной линии 1108. Вычислительное устройство 1100 может обладать дополнительными признаками или функциональными возможностями. Например, вычислительное устройство 1100 также может включать в себя дополнительные устройства хранения данных (съемные и/или несъемные), такие как, например, магнитные диски, оптические диски или лента. Такое дополнительное запоминающее устройство иллюстрируется на фиг. 11 с помощью съемного запоминающего устройства 1109 и несъемного запоминающего устройства 1110.
[33] Как указано выше, в системной памяти 1104 можно сохранить некоторое количество программных модулей и файлов данных. При исполнении в блоке 1102 обработки программные модули 1106, например модуль 100 обнаружения формул, синтаксический анализатор 110, процессор 112 документов и параллельно-последовательный преобразователь 114, могут выполнять процессы, включающие в себя, например, один или несколько этапов способа 300 обнаружения формул. Вышеупомянутый процесс является примером, и блок 1102 обработки может выполнять другие процессы. Другие программные модули, которые могут использоваться в соответствии с вариантами осуществления настоящего изобретения, могут включать в себя приложения электронной почты и контактов, приложения обработки текстов, приложения электронных таблиц, приложения баз данных, приложения показа слайдов, прикладные программы черчения или автоматизированного проектирования и т.д.
[34] Кроме того, варианты осуществления изобретения могут быть осуществлены на практике в электрической схеме, содержащей дискретные электронные элементы, в заключенных в корпус или интегральных электронных микросхемах, содержащих логические вентили, в схеме, использующей микропроцессор, или в однокристальной ИС, содержащей электронные элементы или микропроцессоры. Например, варианты осуществления изобретения можно применить на практике посредством системы на кристалле (SOC), где каждый или многие из компонентов, проиллюстрированных на фиг. 11, можно объединить в одну интегральную схему. Такое SOC-устройство может включать в себя один или несколько блоков обработки, графических блоков, блоков связи, блоков виртуализации систем и различных прикладных функциональных возможностей, которые объединяются (или "спекаются") на подложке кристалла в виде одной интегральной схемы. При функционировании посредством SOC функциональными возможностями, описанными в этом документе по отношению к модулю 100 обнаружения формул, синтаксическому анализатору 110, процессору 112 документов и параллельно-последовательному преобразователю 114, можно управлять посредством специализированной логики, объединенной с другими компонентами вычислительного устройства 1100 на одной интегральной схеме (кристалле). Варианты осуществления изобретения также могут быть осуществлены на практике с использованием других технологий, допускающих выполнение логических операций, таких как И (AND), ИЛИ (OR) и НЕТ (NOT), включая, но не ограничиваясь, механические, оптические, жидкостные и квантовые технологии. К тому же варианты осуществления изобретения могут быть осуществлены на практике в универсальном компьютере или в любых других схемах или системах.
[35] Вычислительное устройство 1100 также может иметь одно или несколько устройств 1112 ввода, таких как клавиатура, мышь, перо, устройство звукового ввода, устройство сенсорного ввода и т.д. Также может включаться устройство (устройства) 1114 вывода, например дисплей, динамики, принтер и т.д. Вышеупомянутые устройства являются примерами и могут использоваться другие устройства. Вычислительное устройство 1100 может включать в себя одно или несколько соединений 1116 связи, допускающих взаимодействия с другими вычислительными устройствами 1118. Примеры подходящих соединений 1116 связи включают в себя, но не ограничиваются, РЧ-передатчик, приемник и/или схемы приемопередатчика; порты универсальной последовательной шины (USB), параллельные или последовательные порты и другие соединения, подходящие для использования с подходящими машиночитаемыми носителями.
[36] Варианты осуществления изобретения могут быть реализованы, например, в виде компьютерного процесса (способа), вычислительной системы или в виде изделия, например компьютерного программного продукта или машиночитаемых носителей. Компьютерный программный продукт может быть компьютерными носителями информации, читаемыми вычислительной системой и кодирующими компьютерную программу в виде команд для исполнения компьютерного процесса.
[37] Термин "машиночитаемые носители" при использовании в данном документе может включать в себя компьютерные носители информации и среды связи. Компьютерные носители информации могут включать в себя энергозависимые и энергонезависимые, съемные и несъемные носители, реализованные по любому способу или технологии для хранения информации, такой как машиночитаемые команды, структуры данных, программные модули или другие данные. Системная память 1104, съемное запоминающее устройство 1109 и несъемное запоминающее устройство 1110 являются примерами компьютерных носителей информации (то есть запоминающего устройства). Компьютерные носители информации могут включать в себя, но не ограничиваются, RAM, ROM, электрически стираемое и программируемое постоянное запоминающее устройство (EEPROM), флэш-память или другую технологию памяти, компакт-диск, универсальные цифровые диски (DVD) или другое оптическое запоминающее устройство, магнитные кассеты, магнитную ленту, накопитель на магнитных дисках или другие магнитные запоминающие устройства, или любой другой носитель, который можно использовать для хранения информации и к которому можно обращаться с помощью вычислительного устройства 1100. Любые такие компьютерные носители информации могут быть частью вычислительного устройства 1100.
[38] Среды связи воплощают машиночитаемые команды, структуры данных, программные модули или другие данные в модулированном сигнале данных, таком как несущая или другой транспортный механизм, и включают в себя любые среды доставки информации. Термин "модулированный сигнал данных" может описывать сигнал, который имеет одну или несколько характеристик, устанавливаемых или изменяемых таким образом, чтобы кодировать информацию в сигнале. В качестве примера, а не ограничения, среды связи могут включать в себя проводные среды, такие как проводная сеть или прямое проводное соединение, и беспроводные среды, такие как акустические, радиочастотные (РЧ), инфракрасные и другие беспроводные средства.
[39] Фиг. 12A и 12B иллюстрируют мобильное вычислительное устройство 1200, например мобильный телефон, смартфон, планшетный персональный компьютер, переносной компьютер и т.п., с помощью которого можно применить на практике варианты осуществления изобретения. Со ссылкой на фиг. 12A иллюстрируется типовое мобильное вычислительное устройство 1200 для реализации вариантов осуществления. В базовой конфигурации мобильное вычислительное устройство 1200 является наладонным компьютером, имеющим элементы ввода и элементы вывода. Мобильное вычислительное устройство 1200 обычно включает в себя дисплей 1205 и одну или несколько кнопок 1210 ввода, которые позволяют пользователю вводить информацию в мобильное вычислительное устройство 1200. Дисплей 1205 мобильного вычислительного устройства 1200 также может функционировать в качестве устройства ввода (например, сенсорного дисплея). Если включается в состав, то необязательный боковой элемент 1215 ввода предоставляет возможность дополнительного пользовательского ввода. Боковой элемент 1215 ввода может быть поворотным переключателем, кнопкой или любым другим типом элемента ручного ввода. В альтернативных вариантах осуществления мобильное вычислительное устройство 1200 может включать в себя больше или меньше элементов ввода. Например, в некоторых вариантах осуществления дисплей 1205 может быть не сенсорным экраном. В еще одном альтернативном варианте осуществления мобильное вычислительное устройство 1200 является портативным телефонным аппаратом, например сотовым телефоном. Мобильное вычислительное устройство 1200 также может включать в себя необязательную клавишную панель 1235. Необязательная клавишная панель 1235 может быть физической клавишной панелью или "программной" клавишной панелью, сформированной на сенсорном дисплее. В различных вариантах осуществления элементы вывода включают в себя дисплей 1205 для показа графического интерфейса пользователя (GUI), визуальный индикатор 1220 (например, светоизлучающий диод) и/или звуковой преобразователь 1225 (например, динамик). В некоторых вариантах осуществления мобильное вычислительное устройство 1200 включает в себя вибрационный датчик для предоставления пользователю тактильной обратной связи. В еще одном варианте осуществления мобильное вычислительное устройство 1200 включает в себя порты ввода и/или вывода, такие как звуковой вход (например, гнездо микрофона), звуковой выход (например, гнездо наушников) и видеовыход (например, порт HDMI) для отправки сигналов или приема сигналов от внешнего устройства.
[40] Фиг. 12B - блок-схема, иллюстрирующая архитектуру одного варианта осуществления мобильного вычислительного устройства. А именно мобильное вычислительное устройство 1200 может заключать в себе систему (то есть архитектуру) 1202 для реализации некоторых вариантов осуществления. В одном варианте осуществления система 1202 реализуется в виде "смартфона", допускающего выполнение одного или нескольких приложений (например, обозревателя, электронной почты, календаря, диспетчеров контактов, клиентов обмена сообщениями, игр и мультимедийных клиентов/проигрывателей). В некоторых вариантах осуществления система 1202 объединяется в виде вычислительного устройства, например объединенного персонального цифрового помощника (PDA) и беспроводного телефона.
[41] Одну или несколько прикладных программ 1266 можно загрузить в запоминающее устройство 1262 и выполнить в операционной системе 1264 или совместно с ней. Примеры прикладных программ включают в себя программы для набора номеров, программы для электронной почты, программы управления личной информацией (PIM), программы обработки текстов, программы работы с электронными таблицами, программы Интернет-обозревателя, программы для обмена сообщениями и так далее. Система 1202 также включает в себя энергонезависимую область 1268 памяти в запоминающем устройстве 1262. Энергонезависимая область 1268 памяти может использоваться для хранения неизменной информации, которая не должна быть утрачена, если система 1202 выключается. Прикладные программы 1266 могут использовать и хранить информацию в энергонезависимой области 1268 памяти, например электронную почту или другие сообщения, используемые приложением электронной почты, и т.п. Приложение синхронизации (не показано) также постоянно находится в системе 1202 и программируется для взаимодействия с соответствующим приложением синхронизации, находящимся на главном компьютере, чтобы поддерживать сохраненную в энергонезависимой области 1268 памяти информацию синхронизированной с соответствующей информацией, сохраненной на главном компьютере. Следует принять во внимание, что другие приложения можно загрузить в запоминающее устройство 1262 и выполнить на мобильном вычислительном устройстве 1200, включая модуль 100 обнаружения формул, синтаксический анализатор 110, процессор 112 документов и параллельно-последовательный преобразователь 114, описанные в этом документе.
[42] Система 1202 имеет источник 1270 питания, который может быть реализован в виде одной или нескольких батарей. Источник 1270 питания дополнительно мог бы включать в себя внешний источник питания, например адаптер переменного тока или стыковочную подставку с питанием, который пополняет или перезаряжает батареи.
[43] Система 1202 также может включать в себя радиоблок 1272, который выполняет функцию передачи и приема радиочастотных передач. Радиоблок 1272 обеспечивает возможность беспроводного подключения между системой 1202 и "внешним миром" посредством оператора связи или поставщика услуг. Передачи к радиоблоку 1272 или от него проводятся под управлением операционной системы 1264. Другими словами, принятые радиоблоком 1272 передачи могут распространяться прикладным программам 1266 посредством операционной системы 1264, и наоборот.
[44] Радиоблок 1272 позволяет системе 1202 взаимодействовать с другими вычислительными устройствами, например по сети. Радиоблок 1272 является одним примером средств связи. Как правило, средства связи могут быть реализованы посредством машиночитаемых команд, структур данных, программных модулей или других данных в модулированном сигнале данных, таком как несущая или другой транспортный механизм, и включают в себя любые средства доставки информации. Термин "модулированный сигнал данных" означает сигнал, который имеет одну или несколько своих характеристик, установленных или измененных таким образом, чтобы кодировать информацию в сигнале. В качестве примера, а не ограничения, средства связи включают в себя проводные средства, такие как проводная сеть или прямое проводное соединение, и беспроводные средства, такие как акустические, радиочастотные, инфракрасные и другие беспроводные средства. Термин "машиночитаемые носители" при использовании в данном документе включает в себя как носители информации, так и средства связи.
[45] Этот вариант осуществления системы 1202 предоставляет уведомления с использованием визуального индикатора 1220, который может использоваться для предоставления визуальных уведомлений, и/или звукового интерфейса 1274, создающего слышимые уведомления посредством звукового преобразователя 1225. В проиллюстрированном варианте осуществления визуальный индикатор 1220 является светоизлучающим диодом (LED), а звуковой преобразователь 1225 является динамиком. Эти устройства могут непосредственно соединяться с источником 1270 питания, чтобы при активизации они оставались включенными в течение длительности, предписанной механизмом уведомления, даже если процессор 1260 и другие компоненты могли бы выключиться для сбережения энергии батарей. LED можно запрограммировать оставаться включенным неограниченно, пока пользователь не примет меры для указания включенного состояния устройства. Звуковой интерфейс 1274 используется для предоставления слышимых сигналов пользователю и приема слышимых сигналов от него. Например, в дополнение к соединению со звуковым преобразователем 1225 звуковой интерфейс 1274 также может соединяться с микрофоном для приема слышимого ввода, например для обеспечения телефонного разговора. В соответствии с вариантами осуществления настоящего изобретения микрофон также может служить в качестве акустического датчика для упрощения управления уведомлениями, что будет описываться ниже. Система 1202 может дополнительно включать в себя видеоинтерфейс 1276, который дает возможность работы встроенной камеры 1230 для записи неподвижных изображений, видеопотока и т.п.
[46] Мобильное вычислительное устройство 1200, реализующее систему 1202, может обладать дополнительными признаками или функциональными возможностями. Например, мобильное вычислительное устройство 1200 также может включать в себя дополнительные устройства хранения данных (съемные и/или несъемные), такие как, например, магнитные диски, оптические диски или лента. Такое дополнительное запоминающее устройство иллюстрируется на фиг. 12B с помощью энергонезависимой области 1268 памяти. Компьютерные носители информации могут включать в себя энергозависимые и энергонезависимые, съемные и несъемные носители, реализованные по любому способу или технологии для хранения информации, такой как машиночитаемые команды, структуры данных, программные модули или другие данные.
[47] Данные/информация, сформированные или собранные мобильным вычислительным устройством 1200 и сохраненные посредством системы 1202, могут храниться локально на мобильном вычислительном устройстве 1200, как описано выше, либо данные могут храниться на любом количестве носителей информации, к которым можно обращаться с помощью устройства посредством радиоблока 1272 или посредством проводного соединения между мобильным вычислительным устройством 1200 и отдельным вычислительным устройством, ассоциированным с мобильным вычислительным устройством 1200, например, сервером в сети распределенных вычислений, такой как Интернет. Следует принять во внимание, что к таким данным/информации можно обращаться посредством мобильного вычислительного устройства 1200 через радиоблок 1272 или по сети распределенных вычислений. Аналогичным образом такие данные/информацию можно легко переносить между вычислительными устройствами для хранения и использования в соответствии с общеизвестным средством переноса и хранения данных/информации, включающим в себя электронную почту и системы совместного использования данных/информации.
[48] Фиг. 13 иллюстрирует один вариант осуществления архитектуры системы для предоставления модуля 100 обнаружения формул, синтаксического анализатора 110, процессора 112 документов и параллельно-последовательного преобразователя 114 одному или нескольким клиентским устройствам, как описано выше. Содержимое, разработанное, полученное от взаимодействия или отредактированное совместно с модулем 100 обнаружения формул синтаксическим анализатором 110, процессором 112 документов и параллельно-последовательным преобразователем 114, можно хранить в разных каналах связи или других типах запоминающего устройства. Например, различные документы можно хранить с использованием службы 1322 каталогов, web-портала 1324, службы 1326 почтовых ящиков, хранилища 1328 мгновенных сообщений или сайта 1330 социальной сети. Модуль 100 обнаружения формул, синтаксический анализатор 110, процессор 112 документов и параллельно-последовательный преобразователь 114 могут использовать любые из этих типов систем или т.п. для обеспечения возможности использования данных, как описано в этом документе. Сервер 1320 может предоставлять клиентам модуль 100 обнаружения формул, синтаксический анализатор 110, процессор 112 документов и параллельно-последовательный преобразователь 114. В качестве одного примера сервер 1320 может быть веб-сервером, предоставляющим модуль 100 обнаружения формул, синтаксический анализатор 110, процессор 112 документов и параллельно-последовательный преобразователь 114 через Интернет. Сервер 1320 может предоставлять модуль 100 обнаружения формул, синтаксический анализатор 110, процессор 112 документов и параллельно-последовательный преобразователь 114 через Интернет клиентам посредством сети 1315. В качестве примера клиентское вычислительное устройство 1318 можно реализовать в виде вычислительного устройства 1100 и воплотить в персональном компьютере 1318a, планшетном вычислительном устройстве 1318b и/или мобильном вычислительном устройстве 1318c (например, смартфоне). Любой из этих вариантов осуществления клиентского вычислительного устройства 1318 может получать содержимое из хранилища 1316.
[49] Варианты осуществления настоящего изобретения, например, описываются выше со ссылкой на блок-схемы и/или функциональные иллюстрации способов, систем и компьютерных программных продуктов в соответствии с вариантами осуществления изобретения. Функции/действия, отмеченные в блоках, могут происходить не в том порядке, который показан в любой блок-схеме алгоритма. Например, показанные в последовательности два блока на самом деле могут выполняться практически одновременно, или блоки иногда могут выполняться в обратном порядке в зависимости от участвующих функциональных возможностей/действий.
[50] Хотя описаны некоторые варианты осуществления изобретения, могут существовать другие варианты осуществления. Кроме того, хотя варианты осуществления настоящего изобретения описаны как ассоциируемые с данными, сохраненными в запоминающем устройстве и других носителях информации, данные также могут храниться или считываться с других типов машиночитаемых носителей, таких как вспомогательные запоминающие устройства типа жестких дисков, дискет или компакт-диска, несущей из Интернета или других форм RAM или ROM. Более того, раскрытые этапы способов можно изменять любым образом, включая переупорядочение этапов и/или вставку или удаление этапов, без отклонения от изобретения.
[51] В различных вариантах осуществления типы сетей, используемых для взаимодействия между вычислительными устройствами, которые образуют настоящее изобретение, включают в себя, но не ограничиваются, Интернет, интранет, глобальные сети (WAN), локальные сети (LAN) и виртуальные частные сети (VPN). В настоящей заявке сети включают в себя сеть предприятия и сеть, по которой клиентское вычислительное устройство обращается к сети предприятия (то есть клиентскую сеть). В одном варианте осуществления клиентская сеть является частью сети предприятия. В другом варианте осуществления клиентская сеть является отдельной сетью, обращающейся к сети предприятия через внешние доступные точки входа, например шлюз, протокол удаленного доступа или адрес из адресного пространства Интернета либо вне его.
[52] Описание и иллюстрация одного или нескольких вариантов осуществления, предоставленные в этой заявке, никоим образом не предназначены для ограничения объема изобретения, которое заявлено. Варианты осуществления, примеры и подробности, предоставленные в этой заявке, считаются достаточными для передачи владения и предоставления возможности другим создать и использовать лучший вариант осуществления заявленного изобретения. Заявленное изобретение не следует толковать как ограниченное каким-либо вариантом осуществления, примером или подробностями, предоставленными в этой заявке. Различные признаки (структурные и методологические) предназначены для выборочного включения или пропуска для создания варианта осуществления с конкретным набором признаков независимо от того, показаны и описаны они в сочетании или отдельно. Получив описание и иллюстрацию настоящей заявки, специалист в данной области техники может представить изменения, модификации и альтернативные варианты осуществления, соответствующие сущности более широких особенностей заявленного изобретения и общей идеи изобретения, воплощенной в этой заявке, которые не отклоняются от более широкого объема.