UIMA Ruta Check Функция дополнительной аннотации

Можно ли создать правило, соответствующее значению ФУНКЦИИ в аннотации, которая является дочерней по отношению к другой аннотации?

Пример:

Annotation Person Annotation Doctor Feature TYPE: xyz

что-то вроде Person.Doctor{FEATURE("TYPE","xyz")}

Также возможно ли создать правило, которое соответствует ФУНКЦИИ в аннотации, которая является ЧАСТЬЮ другой аннотации?

|-----------A1------------|

|-----A2-----| |---A3----|

Составьте правило, где

A3{FEATURE("X","1")}, но также и A3{PARTOF(A1)}

Спасибо!


person Spiros Methenitis    schedule 06.07.2017    source источник
comment
Что вы имеете в виду под is a child of another Annotation? Он покрыт или его подтип? Не могли бы вы немного расширить описание вашего примера?   -  person Peter Kluegl    schedule 06.07.2017
comment
Вы не должны использовать type в качестве имени функции.   -  person Peter Kluegl    schedule 06.07.2017
comment
Это покрыто или его подтип оба!!! Первая часть вопроса заключается в том, как проверить особенность подтипа. Вторая часть вопроса, чтобы проверить, охватывает ли аннотация другую аннотацию, имеющую определенную функцию. Заранее спасибо!   -  person Spiros Methenitis    schedule 06.07.2017
comment
TYPE был плохим примером. Любая ОСОБЕННОСТЬ!   -  person Spiros Methenitis    schedule 06.07.2017


Ответы (1)


Предполагая, что существует тип Doctor и его родительский тип с именем Person, который определяет функцию kind типа uima.cas.String, вы можете просто написать:

Doctor.kind=="xyz";

Doctor{Doctor.kind=="xyz"};

d:Doctor{d.kind=="xyz"};

Doctor<-{Person.kind=="xyz";};

Краткое объяснение выражение метки d: и встроенное правило как условие (<-{}). Выражение метки вводит локальную переменную аннотации в рамках правила. В приведенном выше примере d:Doctor соответствует аннотации типа Doctor и присваивает ее новой переменной с именем d. Затем эти переменные можно использовать в других частях правила для ссылки на эту конкретную аннотацию. Во втором правиле выражение метки не используется, а ссылка на аннотацию осуществляется с использованием типа (Doctor.kind). Здесь аннотация разрешается заново в контексте совпадения правила, что может привести к другому в случае наличия нескольких аннотаций типа Doctor с одинаковыми смещениями. Встроенное правило как условие работает как сложное условие. Элемент правила Doctor соответствует только в том случае, если правило Person.kind=="xyz"; может соответствовать в пределах контекста/смещений/диапазона соответствующей аннотации Doctor.

Что касается второй части вопроса: вы не можете напрямую получить доступ к аннотации, которая используется в условии PARTOF, потому что на самом деле ни одна из них не используется. Вам нужно сопоставить аннотацию, чтобы получить доступ к ее функциям. Это зависит от того, какая аннотация какую покрывает, и какая аннотация должна быть проверена на предмет значения признака. Вот некоторые примеры:

a:A3{PARTOF(A1),a.x==1};

A1.x=="1"{CONTAINS(A3)};

A1<-{a:A3{a.x=="1"};};

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: я разработчик UIMA Ruta

person Peter Kluegl    schedule 07.07.2017
comment
Доктор‹-{Person.kind==xyz;}; не работает, так как вид является особенностью Доктора. Это должно быть Person‹-{Doctor.kind==xyz;}; Но это не соответствует аннотации Person с дочерней аннотацией Doctor, которая имеет тип функции со значением xyz. - person Spiros Methenitis; 07.07.2017
comment
img В этом примере нам нужно правило, которое будет соответствовать аннотации типа Card, которая имеет дочерний элемент типа CardType, который имеет key_CardType со значением кредита. Извините за путаницу. - person Spiros Methenitis; 07.07.2017
comment
Также не могли бы вы предоставить документацию или краткое объяснение операторов ‹- и :? Спасибо, мы очень ценим вашу помощь!! - person Spiros Methenitis; 07.07.2017
comment
Я расширил ответ. Я до сих пор не понимаю вашей формулировки относительно дочерних аннотаций. Есть две аннотации? Относительно Card и CardType: под ребенком ты подразумеваешь, что один является feautre другого? Лучше всего создать для этого новый вопрос, чтобы на него можно было ответить отдельно. - person Peter Kluegl; 08.07.2017