Преобразование правила JAPE в UIMA RUTA

Есть ли какой-либо пример, чтобы объяснить, как код JAVA, написанный в части RHS правила JAPE, может быть преобразован в UIMA RUTA? Также есть ли возможность получить особенности аннотаций в RUTA?

Вы не можете напрямую включать Java-код в UIMA Ruta. Однако вы можете создать механизм анализа и выполнить его в своем коде Ruta. Во многих ситуациях, таких как назначение функций, вам не нужен код Java, поскольку функциональность может быть напрямую выражена в Ruta.

Peter Kluegl 07.12.2018 14:59
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
1
71
1

Ответы 1

У вас есть вопрос, можно ли вставлять аннотации (найденные другими системами) в RUTA перед запуском анализа RUTA? Так что, если это вопрос, ответ - «да, это возможно».

Вы можете сделать что-то вроде этого:

private static createCASAnnotation(Cas cas, MyOwnAnnotation myOwnAnnotation) {
    Type annotationType = cas.getTypeSystem().getType(myOwnAnnotation.getType());
    if (annotationType != null) {
        AnnotationFS casAnnotation = cas.createAnnotation(annotationType, myOwnAnnotation.getTextStart(), myOwnAnnotation.getTextEnd());

        // Also possible to add features / child annotations
        for (MyOwnAnnotation childAnnotation : myOwnAnnotation.getChildAnnotations()) {
            String featureFullName = casAnnotation.getType().getName() + ":" + childAnnotation.getName();
            Feature feature = casAnnotation.getCAS().getTypeSystem().getFeatureByFullName(featureFullName);
            if (feature != null && feature.getRange().isPrimitive() 
                   && "uima.cas.String".equalsIgnoreCase(feature.getRange().getName())) {

                casAnnotation.setStringValue(feature, childAnnotation.getText());

                // Other options for example "uima.cas.Integer" -> casAnnotation.setIntValue(...
            }
            // if not primitive you can also add Annotation type:
            // AnnotationFS childCASAnnotation = createCASAnnotation(...
            // casAnnotation.setFeatureValue(feature, childCASAnnotation);
        }

        cas.addFsToIndexes(casAnnotation);

    } else {
        log.error("invalid type .... or something better");
        // Or throw exception
    }
}

MyOwnAnnotation - это объект из вашего собственного домена / системы и может быть примерно таким:

class MyAnnotation {
    private final String value;   // or text or fragment ...??
    private final Long startIndex;
    private final Long endIndex; // or use size/length
    private final List<MyAnnotation> childAnnotations;

    // constructor, builder pattern?, getters ....
}

Примеры кода предназначены для демонстрации концепции.

Мой вопрос больше связан с использованием существующих функций аннотаций, таких как длина, тип и так далее.

Alishiba Dsouza 09.12.2018 14:14

Вы можете привести здесь пример файла MyOwnAnnotation myOwnAnnotation? это написано на Яве или каких-то правилах рута?

Alishiba Dsouza 11.12.2018 15:23

Обычный Java-объект. Я обновлю пример указанными файлами.

Jasper Huzen 11.12.2018 20:43

Другие вопросы по теме