>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 > > >>>>>>>>>>>>>> > > >>>>>>>>>>>>>> > > >> > > > > > >
