uima-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Peter Klügl <peter.klu...@averbis.com>
Subject Re: Using RUTA
Date Mon, 13 Mar 2017 17:05:40 GMT
Hi,


Am 13.03.2017 um 17:41 schrieb José Vicente Moyano Murillo:
> From our point of view we would expect the same result using # or %

Yes, I thought the same, but after investigating the problem I changed
my mind a bit.
Even if we ignore the label expression overriding the values with 'X's,
there is still a difference. The wildcard # introduces a sequential
constraint, and the conjunction % does not. The former implies a match
only for the next occureence of a valid annotation. And the latter? I
would initially say that the match should not be restricted to the first
one, meaning the first rule element for example will match twice as does
the fourth rule element. This would result in four 'A's in the list
compared to the two for the wildcard.

And there is also the difference that the execution of the action is
decoupled from the specific rule elements in the conjunct element
(causing the initial problem with the label expression)

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

I can totally understand that. I had to debug the implementation myself
quite a bit in order to get to know what is going on. That does not
happen too often to me concerning ruta.

I am open to suggestions how this situation can be improved. I am not
sure yet what should/can be done.

Best,

Peter

>
> regards
>
> 2017-03-13 10:56 GMT+01:00 Peter Klügl <peter.kluegl@averbis.com>:
>
>> 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 <peter.kluegl@averbis.com
>>> <mailto:peter.kluegl@averbis.com>>:
>>>
>>>     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 <pkluegl@gmail.com
>>>     <mailto:pkluegl@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 <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
>>>     <moyanoj@aia.es <mailto:moyanoj@aia.es>>:
>>>     >>>
>>>     >>>> Many thanks Peter ¡¡¡
>>>     >>>>
>>>     >>>> 2017-02-24 9:46 GMT+01:00 Peter Klügl
>>>     <peter.kluegl@averbis.com <mailto:peter.kluegl@averbis.com>>:
>>>     >>>>
>>>     >>>>> 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
>>>     <peter.kluegl@averbis.com <mailto:peter.kluegl@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 <
>>>     >>>>> moyanoj@aia.es <mailto:moyanoj@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.kluegl@averbis.com <mailto:peter.kluegl@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.kluegl@averbis.com <mailto:peter.kluegl@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
<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
>>>     >>>>>>>>>>>>>>
>>>     >>>>>>>>>>>>>>
>>>     >>
>>>
>>>
>>


Mime
View raw message