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

Reply via email to