I am still struggling with the use of variables in some CREATE statements. The features do not always have the expected values after CREATE. Let me give another more concrete example:
TYPE pmcIdentifier; BLOCK(ForEach) IdentifierAnnotation.propertyName=="PMC"{} { // Just capturing scope IdentifierAnnotation.propertyName=="PMC" { -> ASSIGN(pmcIdentifier, IdentifierAnnotation), LOG(pmcIdentifier.ct)}; } TYPE doiIdentifier; BLOCK(ForEach) IdentifierAnnotation.propertyName=="DOI"{} { // Just capturing scope IdentifierAnnotation.propertyName=="DOI" { -> ASSIGN(doiIdentifier, IdentifierAnnotation), LOG(doiIdentifier.ct)}; } BLOCK(ForEach) XMLTagAnnotation.path=="article/front/article-meta"{} { XMLTagAnnotation.name=="article-meta" { -> CREATE( DocumentInfoAnnotation, “id" = pmcIdentifier, "doi" = doiIdentifier ) }; } The IdentifierAnnotation annotations have successfully been created in statements not shown here, which is also evident from a CAS inspection, and the LOG actions output the expected strings, but when I reference the variables in the CREATE action then the id and doi features of the DocumentInfoAnnotation end up pointing to the same identifier (pmc in the above example). Its puzzling me how this can happen. > On 09 Oct 2015, at 15:41 , Mario Juric <mario.juric...@gmail.com> wrote: > > Hi, > > I have a annotation type variable that I am assigning a value in a statement > block and then use that value in match rule to set the attribute in a new > annotation like this: > > Type myvar; > > BLOCK(ForEach) UniqueMatch{} { // Capturing unique scope with this > “Some (\\w+) Regex" -> 1 = MatchedRegexAnnotation; > MatchedRegexAnnotation { -> ASSIGN(myvar, MatchedRegexAnnotation)}; > } > > SomeOtherMatch{} { > -> CREATE(Markup, “myprop” = myvar) > }; > > The “myprop” attribute never gets a value even though the > MatchedRegexAnnotation is created. A completely analog implementation appears > to work flawlessly in another context but not in the current. > > I am in the dark about this and my Ruta skills are sill infant so any idea to > what could be the problem is much appreciated. > > Cheers > Mario