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 Tue, 28 Feb 2017 14:38:49 GMT
Hi Peter,

I'm sorry but this example does not work properly. It seems that it is a
problem regarding conjunction rules (%)

This is our test case and result.

We have a book with 5 attributes
- name
- author
- pages
- ISBN
- Category

The rule is validatin name and author.

RUTA creates the annotation with the list but the list contains 20 times
the las attribute (Category).

If we use # it works perfectly. But in general we must use %

May be this information will help you.

Many thanks



2017-02-28 14:23 GMT+01:00 Peter Kluegl <pkluegl@gmail.com>:

> Hi,
>
>
> operations directly on lists and arrays are on my todo list but not yet
> implemented.
>
>
> Right now, there are still some options like a variable or restricted
> assignments.
>
>
> Here's an example with an ANNOTATIONLIST variable:
>
>
> ANNOTATIONLIST list;
> Book{-> CREATE(NeilsBook, "attributes" = list)}<-{
>     a1:Attribute{a1.name=="title", a1.ct=="Norse Mythology" ->
> ADD(list,a1)}
>     % a2:Attribute{a2.name=="author", a2.ct=="Neil Gaiman" ->
> ADD(list,a2)};
>     };
>
>
> Variables are global, so you need to clear the list maybe somewhere,
> e.g. before the first ADD.
>
>
> In the current trunk, something like the following is also possible:
>
> Book{-> NeilsBook("attributes" = Attribute{OR(Attribute
> .name=="title", Attribute.name=="author")})}....
>
>
> Best,
>
>
> Peter
>
>
> Am 28.02.2017 um 14:06 schrieb José Vicente Moyano Murillo:
> > Hi Peter, we have another question regarding the same example.
> >
> > Right now all is working properly (many thanks) and it seems that
> > 2.5.1-SNAPSHOT it's fine.
> >
> > Now we are planning to store some information in the created annotation.
> We
> > want to store all the attributes that matches the RUTA rule.
> >
> > It is possible to store a1 and a2 in a feature (attributes) of NeilsBook?
> >
> > The example:
> >
> > Book{-> NeilsBook}<-{
> >     a1:Attribute{a1.name=="title", a1.ct=="Norse Mythology"}
> >     %
> > a2:Attribute{a2.name=="author", a2.ct=="Neil Gaiman"};
> > };
> >
> > We are using this aproach:
> >
> > Book{-> NeilsBook("attributes" = Attribute )}<-{
> >      a1:Attribute{a1.name=="title", a1.ct=="Norse Mythology"}
> >      %
> > a2:Attribute{a2.name=="author", a2.ct=="Neil Gaiman"};
> > };
> >
> > This example works but it is storing all the annotations "Attribute"
> > covered by "Book" and we just want the attributes that matches the rule.
> >
> > Thanks in advance.
> >
> >
> >
> >
> > 2017-02-24 10:29 GMT+01:00 José Vicente Moyano Murillo <moyanoj@aia.es>:
> >
> >> Many thanks Peter ¡¡¡
> >>
> >> 2017-02-24 9:46 GMT+01:00 Peter Klügl <peter.kluegl@averbis.com>:
> >>
> >>> Hi,
> >>>
> >>>
> >>> the repo:
> >>>
> >>> <repository>
> >>>       <id>apache.snapshots</id>
> >>>       <name>Apache Snapshot Repository</name>
> >>>       <url>http://repository.apache.org/snapshots</url>
> >>>       <releases>
> >>>         <enabled>false</enabled>
> >>>       </releases>
> >>>     </repository>
> >>>
> >>>
> >>> the folder:
> >>>
> >>> https://repository.apache.org/content/groups/snapshots/org/a
> >>> pache/uima/ruta-core/2.5.1-SNAPSHOT/
> >>>
> >>>
> >>> Best,
> >>>
> >>> Peter
> >>>
> >>>
> >>>
> >>> Am 23.02.2017 um 13:47 schrieb José Vicente Moyano Murillo:
> >>>> Hi,
> >>>>
> >>>> ruta-core.jar it's enough.
> >>>>
> >>>> It will be fantastic if i could access the snapshot repository.
> >>>>
> >>>> 2017-02-23 13:03 GMT+01:00 Peter Klügl <peter.kluegl@averbis.com>:
> >>>>
> >>>>> Hi,
> >>>>>
> >>>>>
> >>>>> what do you need? Only ruta-core.jar or also the Eclipse
> plugins/update
> >>>>> site?
> >>>>>
> >>>>> I will prepare a new RC for the next release soon.
> >>>>>
> >>>>> There should be snapshot artifacts built by jenkins in the snapshot
> >>>>> repository. I am out-of-office today so do not have the link right
> >>> now. (If
> >>>>> you want to build it yourself, the svn source repo can be accessed
by
> >>>>> anyone)
> >>>>>
> >>>>>
> >>>>> Best,
> >>>>>
> >>>>>
> >>>>> Peter
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>> Am 23.02.2017 um 08:06 schrieb José Vicente Moyano Murillo:
> >>>>>
> >>>>>> Hi Peter, good morning.
> >>>>>>
> >>>>>> Have we any opportunity to get a fixed version? I mean a snapshot
or
> >>> an
> >>>>>> access to the repo.
> >>>>>>
> >>>>>> Regards
> >>>>>>
> >>>>>> 2017-02-22 10:38 GMT+01:00 José Vicente Moyano Murillo <
> >>> moyanoj@aia.es>:
> >>>>>> you're right
> >>>>>>> % is performing some kind of "or".
> >>>>>>>
> >>>>>>> So we will wait for the new release.
> >>>>>>>
> >>>>>>> Many thanks
> >>>>>>>
> >>>>>>> 2017-02-22 9:54 GMT+01:00 Peter Klügl <peter.kluegl@averbis.com>:
> >>>>>>>
> >>>>>>> I actually wonder why your rules work. I am quite sure that
they
> >>> match
> >>>>>>>> too often, i. e. they match also if only one of the
conjunct rule
> >>>>>>>> elements match.
> >>>>>>>>
> >>>>>>>> You can simply try that by using a wrong string in the
check like
> >>> "NG"
> >>>>>>>> instead of "Neil Gaiman"
> >>>>>>>>
> >>>>>>>> Anyways, the problem will be fixed in a few minutes
and will be
> >>> part of
> >>>>>>>> the next release.
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> Best,
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> Peter
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> Am 22.02.2017 um 09:38 schrieb Peter Klügl:
> >>>>>>>>
> >>>>>>>>> Thanks. Maybe its just a bug in 2.5.0 I already
fixed. I'll
> >>> investigate
> >>>>>>>> it.
> >>>>>>>>
> >>>>>>>>> Am 22.02.2017 um 09:24 schrieb José Vicente Moyano
Murillo:
> >>>>>>>>>
> >>>>>>>>>> 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