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 <pklu...@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 <moya...@aia.es>: >>> >>>> Many thanks Peter ¡¡¡ >>>> >>>> 2017-02-24 9:46 GMT+01:00 Peter Klügl <peter.klu...@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.klu...@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 < >>>>> moya...@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.klu...@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.klu...@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 >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>