>From our point of view we would expect the same result using # or %

In any case it is our idea and the truth is that we do not know how to
predict the impact.

regards

2017-03-13 10:56 GMT+01:00 Peter Klügl <[email protected]>:

> Hi,
>
>
> there is a conceptual problem when using label expressions in those
> conjunct rules. The label expression stores the value of the matched
> annotations even if the rule element does not match. It has to since the
> matched annotation may be used to validate the conditions as you do.
>
> Maybe the value should be reset if the rule element does not match
> correctly, but I have to investigate the consequences furhter before I
> implement this change. Are there opinions?
>
>
> If you change the rule to not use the label expression in the action,
> there still seems to be a problem with the conjunct rules. e.g. like:
>
> Document{ -> CREATE(Detection, "anchors" = list)} <- {
>         w1:CW{w1.ct=="A" -> ADD(list, CW)}
>         %
>         w2:CW{w2.ct=="B" -> ADD(list, CW)}
>        %
>        w3:CW{w3.ct=="B" -> ADD(list, CW)}
>        %
>        w4:CW{w4.ct=="A" -> ADD(list, CW)};
>        };
>
>
> This looks like a bug when validating the match itself depednent on the
> element matches. I need to investigate that further...
>
>
> I'll create a jira ticket for both.
>
>
> Best,
>
>
> Peter
>
>
>
> Am 09.03.2017 um 11:23 schrieb José Vicente Moyano Murillo:
> > Hi Peter
> >
> > We have prepared a short test with 2 methods.
> > The first one is using #, the second one is using %
> >
> > We expect the same behaviour. But as you will see there are diferences.
> >
> > Regards
> >
> > 2017-02-28 16:00 GMT+01:00 Peter Klügl <[email protected]
> > <mailto:[email protected]>>:
> >
> >     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 <[email protected]
> >     <mailto:[email protected]>>:
> >     >
> >     >> 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 <http://a1.name>=="title",
> >     a1.ct=="Norse Mythology" ->
> >     >> ADD(list,a1)}
> >     >>     % a2:Attribute{a2.name <http://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 <http://a1.name>=="title",
> >     a1.ct=="Norse Mythology"}
> >     >>>     %
> >     >>> a2:Attribute{a2.name <http://a2.name>=="author", a2.ct=="Neil
> >     Gaiman"};
> >     >>> };
> >     >>>
> >     >>> We are using this aproach:
> >     >>>
> >     >>> Book{-> NeilsBook("attributes" = Attribute )}<-{
> >     >>>      a1:Attribute{a1.name <http://a1.name>=="title",
> >     a1.ct=="Norse Mythology"}
> >     >>>      %
> >     >>> a2:Attribute{a2.name <http://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
> >     <[email protected] <mailto:[email protected]>>:
> >     >>>
> >     >>>> Many thanks Peter ¡¡¡
> >     >>>>
> >     >>>> 2017-02-24 9:46 GMT+01:00 Peter Klügl
> >     <[email protected] <mailto:[email protected]>>:
> >     >>>>
> >     >>>>> Hi,
> >     >>>>>
> >     >>>>>
> >     >>>>> the repo:
> >     >>>>>
> >     >>>>> <repository>
> >     >>>>>       <id>apache.snapshots</id>
> >     >>>>>       <name>Apache Snapshot Repository</name>
> >     >>>>>       <url>http://repository.apache.org/snapshots
> >     <http://repository.apache.org/snapshots></url>
> >     >>>>>       <releases>
> >     >>>>>         <enabled>false</enabled>
> >     >>>>>       </releases>
> >     >>>>>     </repository>
> >     >>>>>
> >     >>>>>
> >     >>>>> the folder:
> >     >>>>>
> >     >>>>> https://repository.apache.org/content/groups/snapshots/org/a
> >     <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
> >     <[email protected] <mailto:[email protected]>>:
> >     >>>>>>
> >     >>>>>>> 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 <
> >     >>>>> [email protected] <mailto:[email protected]>>:
> >     >>>>>>>> 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
> >     <[email protected] <mailto:[email protected]>>:
> >     >>>>>>>>>
> >     >>>>>>>>> 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 <
> >     >> [email protected] <mailto:[email protected]>
> >     >>>>>> :
> >     >>>>>>>>>>>> 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 <http://a1.name>=="title",
> >     a1.ct=="Norse Mythology"}
> >     >>>>>>>>>>>>>      % a2:Attribute{a2.name
> >     <http://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
> >     <http://a1.name>=="title", a1.ct=="Norse
> >     >>>>>>>>>>>>> Mythology"->
> >     >>>>>>>>>>>>> ft=true};};
> >     >>>>>>>>>>>>>      book->{a2:Attribute{a2.name
> >     <http://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 <http://a1.name>=="title",
> >     a1.ct=="Norse Mythology"->
> >     >>>>>>>>>>>>>
> >     >>>>>>>>>>>> ft=true};
> >     >>>>>>>>>>>      a2:Attribute{a2.name <http://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 <http://a1.name>=="title",
> >     a1.ct=="Norse Mythology"}
> >     >>>>>>>>>>>>>      # a2:Attribute{a2.name
> >     <http://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-
> >     <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
> >     <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
> >     >>>>>>>>>>>>>>
> >     >>>>>>>>>>>>>>
> >     >>
> >
> >
>
>

Reply via email to