uima-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From José Vicente Moyano Murillo <moya...@aia.es>
Subject Re: Using RUTA
Date Wed, 22 Feb 2017 08:24:37 GMT
Thank you very much Peter. Your advice was amazing.

We tried the first option using Conjunct rules and as you said it does not
work with version 2.5.0. But we change a little your example and it works
perfectly witn 2.4.0 and 2.5.0

We use theses examples with success:

DECLARE Annotation RuleDetection;
 Book{ -> CREATE(NeilsBook) } <- {
      Attribute{Attribute.name=="title", Attribute.ct=="Norse Mythology"}"
      %
              Attribute{Attribute.name=="author", Attribute.ct=="Neil
Gaiman"};"
 };


DECLARE Annotation RuleDetection;
 Book{ -> CREATE(NeilsBook) } <- {
       Attribute{FEATURE("name","title"), FEATURE("ct", "Norse Mythology")}"
      %
               Attribute{FEATURE("name","author"), FEATURE("ct", "Neil
Gaiman")};
 };

DECLARE Annotation RuleDetection;
 Book{ -> CREATE(NeilsBook) } <- {
      Attribute{Attribute.name=="title", Attribute.ct=="Norse Mythology"}"
      %
               Attribute{FEATURE("name","author"), FEATURE("ct", "Neil
Gaiman")};
 };


May be the problem is with when we use Identifiers:
   a1:Attribute and  a2:Attribute

In any case thank you very much for your help.


2017-02-21 17:46 GMT+01:00 Peter Klügl <peter.kluegl@averbis.com>:

> Hi,
>
>
> I'd normally say that you need the conjunt rules construct to specify an
> AND between two rule element independent of the position:
>
>
> Book{-> NeilsBook}<-{
>     a1:Attribute{a1.name=="title", a1.ct=="Norse Mythology"}
>     % a2:Attribute{a2.name=="author", a2.ct=="Neil Gaiman"};
>     };
>
>
> However, I just noted that there is a problem with conjunct rules. I
> haven't used it in a long time and the test coverage much lower than the
> other constructs. I'll create a ticket for it and fix it.
>
>
> Without conjunct rules, you need some boolean variables for cheking the
> AND, which looks all but declarative:
>
>
> BOOLEAN ft, fa;
> FOREACH(book) Book{}{
>     book{-> ft = false, fa = false};
>     book->{a1:Attribute{a1.name=="title", a1.ct=="Norse Mythology"->
> ft=true};};
>     book->{a2:Attribute{a2.name=="author", a2.ct=="Neil Gaiman"->
> fa=true};};
>     book{ft,fa -> NeilsBook};
> }
>
>
> ... or with a BLOCK...
>
>
> BLOCK(book) Book{}{
>     Document{-> ft = false, fa = false};
>     a1:Attribute{a1.name=="title", a1.ct=="Norse Mythology"-> ft=true};
>     a2:Attribute{a2.name=="author", a2.ct=="Neil Gaiman"-> fa=true};
>     Document{ft,fa -> NeilsBook};
> }
>
>
> If the order of the attributes is known, you can avoid the AND check and
> just specify a sequential constraint:
>
>
> Book{-> NeilsBook}<-{
>     a1:Attribute{a1.name=="title", a1.ct=="Norse Mythology"}
>     # a2:Attribute{a2.name=="author", a2.ct=="Neil Gaiman"};
>     };
>
>
> If you need to check on the complete title with the URL, you can replace
> the coveredText comparison with a REGEXP condition.
>
>
> (tested with UIMA Ruta 2.5.0)
>
>
> Best,
>
>
> Peter
>
>
>
> Am 21.02.2017 um 13:58 schrieb José Vicente Moyano Murillo:
> > Hello everyone
> >
> > I'm planning to use RUTA to create some annotations. But i'm not able to
> > accomplish my objective.
> >
> > This is my case right now:
> >
> > I have a text annotated with some annotations "*Book*".
> >
> > Under "*Book*" annotation i have a few annotations "*Attribute*" that
> > stores some information about the book. Each "*Attribute*" has a feature
> "
> > *name*" and a feature "*parent*" to its parent (one "*Book*" annotation).
> >
> > And example could be a text with 2 "*Book*" annotations:
> >
> > "*Book*" annotation number 1 with 3 nested attributes
> > 1.- *Attribute* with name feature equals "title" -> covered text: "Norse
> > Mythology
> > <http://www.barnesandnoble.com/w/norse-mythology-neil-
> gaiman/1124023596;jsessionid=FD1D8F9690602616CA59B38CFE9290
> 06.prodny_store02-atgap08?ean=9780393609097>
> > "
> > 2.- *Attribute* with name feature equals "author" ->  covered text: "Neil
> > Gaiman"
> > 3.- *Attribute* with name feature equals "language" - > covered text:
> > "English"
> >
> >
> > "*Book*" annotation number 2 with 3 nested attributes
> > 1.- *Attribute* with name feature equals "title" -> covered text: "Never
> > Never
> > <http://www.barnesandnoble.com/w/never-never-james-patterson/1123863634;
> jsessionid=FD1D8F9690602616CA59B38CFE929006.prodny_store02-atgap08?ean=
> 9780316433174>
> > "
> > 2.- *Attribute* with name feature equals "author" ->  covered text:
> "James
> > Patterson"
> > 3.- *Attribute* with name feature equals "language" - > covered text:
> > "English"
> >
> > I need to respect this schema but i have this question:
> > It is possible to create and annotation over a book for a given author
> name
> > and a given title name?
> >
> > Thank's in advance
> >
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message