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