2017-07-06 58 views
1

是否有可能制定規則以匹配另一個註釋的子級註釋中的FEATURE值?UIMA Ruta檢查子註釋的特徵

實施例:

註釋人 註釋醫生 特徵類型:XYZ

類似Person.Doctor {FEATURE( 「類型」, 「XYZ」)}

而且是有可能創建一個與PARTOF註釋中的FEATURE相匹配的規則?

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

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

制定一條規則,其中

A3 {FEATURE( 「X」, 「1」)}也是A3 {PARTOF(A1)}

謝謝!

+0

你是什麼意思UIMA魯塔開發商'是另一個Annotation'的孩子?它是覆蓋的還是它的一個子類型?你能稍微擴展你的例子的描述嗎? –

+0

您不應該使用'type'作爲特徵的名稱。 –

+0

「這是覆蓋或其子類型」兩個! 問題的第一部分是如何檢查子類型的特徵。 問題的第二部分,用於檢查註釋是否覆蓋具有特定功能的其他註釋。 預先感謝您! –

回答

0

假設有一個類型Doctor與其父類型,稱爲Person其定義uima.cas.String類型的功能kind,可以簡單的寫:

Doctor.kind=="xyz"; 

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

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

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

label expressiond:inlined rule as condition的一些簡短的說明(<-{} )。標籤表達式在規則的範圍內引入了本地註釋變量。在上面的示例中,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"};}; 

免責聲明:我

+0

非常感謝! –

+0

Doctor < - {Person.kind ==「xyz」;};不起作用,因爲那種是Doctor的一個特徵。 它應該是Person < - {Doctor.kind ==「xyz」;}; 但是這與註釋不匹配具有子註釋的人具有值爲「xyz」的特徵種類的醫生。 –

+0

(https://slack-files.com/T2KSD2BS9-F64LWDFNU-63546b1582) 在這個例子中,我們需要一個規則來匹配Card類型的註釋,該類型的CardType類型的子類具有key_CardType類型價值信用。 對此感到抱歉。 –