uima-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Peter Kluegl <pklu...@gmail.com>
Subject Re: Using RUTA
Date Tue, 28 Feb 2017 14:44:46 GMT
hmmm ok, maybe my example for testing the rule was too simple.

I will create a more complex example and check the results


Peter


Am 28.02.2017 um 15:38 schrieb José Vicente Moyano Murillo:
> 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
View raw message