Главная
Онлайн-демонстрация
Проекты
Другие системы
Скачать
Бесплатная версия для некоммерческого использования
Текущая версия SDK Pullenti:
Демонстрационный стенд: zip
Документация: doc   pdf
SDK для .NET 4.0 (solution for Visual Studio 2010): zip
SDK для .NET Core 2.0 (solution for Visual Studio 2017): zip
SDK для Java (генерируется из исходников .NET): zip
SDK для Python 3 (генерируется из исходников .NET): zip
Сотрудничество
Приглашаем программистов на C# и группы программистов для реализации проектов по обработке текстов на базе технологии Pullenti. Оплата договорная.
Изменения
Внимание, с версии 3.7 произошли небольшие переименования, связанные с поддержкой Python. Описание изменения см. здесь
Внимание, с версии 3.0 произошли существенные изменения, несовместимые с предыдущими версиями. Описание изменения см. здесь
Внимание, с версии 2.51 существенно расширена документация, в которой описаны способы работы с различными лингвистическими конструкциями на уровне токенов (именные группы, кавычки и скобки, словари и пр.). В связи с этим произведены небольшие переименования внутри пространства имён EP.Semantix. В основном это касается ранее неописанных возможностей, но в любом случае имейте это в виду при обновлении очередной версии.
Внимание, с версии 2.63 удален проект под .NET20. Если вдруг кому нужно, обращайтесь напрямую - откомпилируем.
Ошибки и доработки
Мы неустанно боремся с ошибками, которые бывают 3-х видов:
  1. Ложная тревога - выделение сущности там, где её нет;
  2. Некорректные атрибуты - сущность выделена, но все или часть атрибутов определились некорректно;
  3. Пропуск цели - сущность не выделена;
Вы можете помочь делу совершенствования продукта, если поделитесь некорректно обрабатываемыми текстами.
Просьба пока отправлять замечания на почту, в скором будущем регистрацию ошибок и мониторинг их состояния можно будет делать через сайт. Спасибо!
Контакты
Почта: k.smith@mail.ru
Скайп: konstantin.smith
Конвертeр C#.NET => Java
Существует множество конвертeров C#.NET в Java, однако те, которые удалось попробовать, оказались неработоспособны на проекте Pullenti. Пришлось писать этот конвертeр самим, что оказалось весьма нетривиальной задачей. Конечно, решить задачу в общем виде вряд ли возможно из-за огромного количества библиотечных классов и их методов. Но обычно в конкретных проектах используется ограниченное их множество, поэтому задачу решить вполне возможно. Речь не идёт о проектах, в которых есть элементы GUI или ASP, а только о тех их частях, где чистая логика. Ну или если есть аналоги, как, например, для работы с XML или файловой системой.
Преобразование C# => Java сложнее, чем Java => C# из-за больших возможностей самого языка C#. Приходится моделировать отсутствующие ref\out-аргументы у функций, перегрузку операторов, операции над enum, ресурсы, свойства (property) и события (event), делегаты и пр. И со стандартными классами в некоторых случаях приходится писать обёртки. Например, в Java вместо единого базового Stream два разных InputStream и OutputStream.
Но в результате небольшого трудового подвига удалось все эти сложности преодолеть, чтобы программисты на Java могли напрямую использовать Pullenti. Скорость обработки примерно одинаковая (.NET быстрее на 15-20% под Eclipse Windows). Статья здесь.


Если Вам нужен конвертер для перманентной конвертации C# в Java, то можем настроиться на используемые функции Вашего проекта и в дальнейшем осуществлять сопровождение при задействовании в проекте новых функций. То, что конвертер работоспособный, доказано на Pullenti, в котором все автотесты отрабатывают идентичным образом на C# и сгенерированных тестах Java. Краткое описание конвертера здесь
Конвертер C#.NET => Python 3
Аналогично Java разработан конвертер C#.NET => Python 3, генерируемые исходники выложены. Скорость обработки получилась в 30 раз ниже, чем у .NET (запускал в Eclipse PyDev). Основная "засада" - в крайней неэффективности работы Python с элементами строк (элемент string[i] в Питоне имеет не тип char, а тоже string из одного элемента со всеми вытекающими накладными расходами, да и вообще примитивные типы valuetype отсутствуют - все являются объектами). В Pullenti основная операция - доступ к элементу строки, отсюда и скорость. Впрочем, Питон - это не для нетерпеливых...
ВНИМАНИЕ!
Был бы крайне признателен за консультацию профессионала Python по скайпу по вопросам:
  • Комментирование кода через docstrings - сейчас я использую какой-то вариант, но хотелось бы это делать наиболее правильным образом, принятым большинством;
  • Оформление setup.py - навскидку не получилось, не хватает квалификации. В принципе, каждый может оформить и сам или вставлять код в свой проект напрямую, но это может оказаться нетехнологично;
  • Работа со строками - как максимально эффективно в цикле пройтись по элементам string для выполнения какой-либо проверки на уровне отдельных символов;
  • Оформление кода, наименования и пр. согласно PEP - конечно, конвертер старается соответствовать рекомендациям, но если есть какие пожелания или несоответствия, то они будут учтены;
© Кузнецов К.И., 2013. All rights reserved.