Re: ITS > NIF conversion - one testing contributor minimum needed

Felix,

Dave has discussed implementing  NIF and RDF so we could be in a position
to test also.

Cheers,
Leroy


On 23 May 2013 08:30, Felix Sasaki <fsasaki@w3.org> wrote:

>  Cool, thanks a lot, Phil, that was fast! I will then create a few input
> - output files for LQI by Monday & let's see who else will step up.
>
> Best,
>
> Felix
>
> Am 23.05.13 09:24, schrieb Phil Ritchie:
>
> Felix
>
>  I volunteer. If the single test category could be LQI all the better.
>
> Phil
>
>
>
> On 23 May 2013, at 08:17, "Felix Sasaki" <fsasaki@w3.org> wrote:
>
>   Hi all,
>
> we have one feature in ITS2 that is not yet tested: the conversion to NIF.
> To fill this gap, I would propose the following approach.
>
> 1) The conversion is tested with example files for one data category. No
> need to have the conversion output of several data categories in one output
> file.
>
>
> 2) Like the definition of the NIF > ITS algorithm
> http://www.w3.org/TR/2013/WD-its20-20130521/#conversion-to-nif
> the conversion output represents ITS information, but no information about
> how it was generated (local markup, global, interitance, defaults).
>
>
> 3) RDF can be represented in various formats: RDF/XML, RDFa, Turtle, ...
> for testing purpose having just one representation would be good, for ease
> of comparison.
>
>
> 4) It doesn't make sense to add the NIF conversion input / output to the
> test suite master file and to take it into account for comparison. The
> reason is that the test suite master file does a line by line comparison of
> test suite output. That doesn't provide useful info for NIF.
>
>
> 5) So how to compare output? The "meat" of the conversion to NIF is that
> for each node in a document that holds ITS information, a triple of the
> following form is generated:
> SubjectURI ITS2DataCategorySpecificPredicate Value
>
> "SubjectURI" is an URI that consists of the document base URI plus "#"
> plus character offsets. Example for "Dublin" in
>
> http://www.w3.org/International/multilingualweb/lt/drafts/its20/examples/html5/EX-HTML-whitespace-normalization.html
> this is
>
> http://www.w3.org/International/multilingualweb/lt/drafts/its20/examples/html5/EX-HTML-whitespace-normalization.html#char=12,18
>
> "ITS2DataCategorySpecificPredicate" is an RDF predicate that identifies
> the data category information in question, e.g. for "Dublin" it is
> "itsrdf:taIdentRef".
>
> "Value" is the data category value. For "Dublin" in the above example,
> this is http://dbpedia.org/resource/Dublin
>
> So we would need to compare whether two implementations create the sample
> triples of above form for a given input document. "The same" does not mean
> "the same offsets", e.g. "#char=12,18", since white space normalization for
> the NIF conversion is not defined in ITS2. "The same"  means: for each node
> that contains ITS information there must be a triple like above, with the
> same predicate and object.
>
>
> 6) Do we need automatic comparison?
> With the definition of "the same" like above an automatic comparison of
> the output is hard. But it is not needed IMO: NIF conversion is one feature
> like e.g. Translate "global"; so having 5-10 input files that we can check
> manually would be sufficient. Also, we don't need to cover several data
> categories in one NIF conversion test file, and we might restrict the
> testing even to one data category: "text analyis", "translate", ...
>
>
> 7) How to do this practically?
>
> Below is a template for the output ITS2NIF conversion, in Turtle
> serialization.
>
> [
> @prefix : <XXX-base-uriXXX#> .
>      @prefix itsrdf: <http://www.w3.org/2005/11/its/rdf#><http://www.w3.org/2005/11/its/rdf#>.
>      @prefix nif:
> <http://persistence.uni-leipzig.org/nlp2rdf/ontologies/nif-core#><http://persistence.uni-leipzig.org/nlp2rdf/ontologies/nif-core#>.
>      @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#><http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
>
>     :char=0,XXX-complete-length-XXX     a nif:Context;
>          nif:isString " XXX-complete-source-file-text-content-XXX";
>          nif:sourceUrl <XXX-base-uriXXX> .
>
>     :char=XXX-ITS-Annotation-Start-XXX,XXX-ITS-Annotation-End-XXX     a
> nif:RFC5147String;
>          nif:anchorOf "XXX-annotated-string-XXX";
>          nif:referenceContext :char=0,XXX-complete-length-XXX;
>
>
>          XXX-annotation-predicate-XXX XXX-annotation-value-XXX .
> ]
>
> The part starting with
> ":char=XXX-ITS-Annotation-Start-XXX,XXX-ITS-Annotation-End-XXX     a
> nif:RFC5147String;"
> and ending with
> "XXX-annotation-predicate-XXX XXX-annotation-value-XXX ."
> would be needed for each annotation.
>
> Here is an example how the template woud be filled in for
>
> http://www.w3.org/International/multilingualweb/lt/drafts/its20/examples/html5/EX-HTML-whitespace-normalization.html
> Note that in below test file, I am only processing "text analysis"
> information, see 6) above for the rationale.
>
> [
> @prefix :
> <http://www.w3.org/International/multilingualweb/lt/drafts/its20/examples/html5/EX-HTML-whitespace-normalization.html#><http://www.w3.org/International/multilingualweb/lt/drafts/its20/examples/html5/EX-HTML-whitespace-normalization.html#>.
>      @prefix itsrdf: <http://www.w3.org/2005/11/its/rdf#><http://www.w3.org/2005/11/its/rdf#>.
>      @prefix nif:
> <http://persistence.uni-leipzig.org/nlp2rdf/ontologies/nif-core#><http://persistence.uni-leipzig.org/nlp2rdf/ontologies/nif-core#>.
>      @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#><http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
>
>     :char=0,30     a nif:Context;
>          nif:isString " Welcome to Dublin in Ireland!";
>          nif:sourceUrl
> <http://www.w3.org/International/multilingualweb/lt/drafts/its20/examples/html5/EX-HTML-whitespace-normalization.html><http://www.w3.org/International/multilingualweb/lt/drafts/its20/examples/html5/EX-HTML-whitespace-normalization.html>.
>
>     :char=12,18     a nif:RFC5147String;
>          nif:anchorOf "Dublin";
>          nif:referenceContext :char=0,30;
>          itsrdf:taIdentRef <http://dbpedia.org/resource/Dublin><http://dbpedia.org/resource/Dublin>.
>
>     :xpath(/html/body%5B1%5D/h2%5B1%5D/span%5B1%5D/text()%5B1%5D)
> nif:convertedFrom :char=12,18 .
> ]
>
>
> 8) What effort is needed from test suite contributors?
>
> For Leroy / TCD as the test suite owner, I'd say no effort is needed
> except creating directories for NIF input / output and documenting them on
> the test suite main page, saying that they are part of the normative
> conformance testing.
>
> We need at least one test suite contributor that would - in addition to me
> - implement the conversion exemplified in 7). The implementation should be
> pretty straightforward:
> 0 Re-use the code that generates your test suite output
> 1 Create the template under 7), fill in file base URI "XXX-base-uriXXX",
> "XXX-complete-source-file-text-content-XXX" and "XXX-complete-length-XXX"
> 2 For each node that has ITS 2 annotation:
> 2.1 create a subject URI. That is, instead of generating XPath in a line
> like /html/body[1]/h2[1]/span[1] , you
> 2.1.1 generate XXX-ITS-Annotation-Start-XXX: count the characters in all
> element nodes preceding the current node
> 2.1.2 generate XXX-ITS-Annotation-End-XXX: count the string length of the
> current node and calculate plus XXX-ITS-Annotation-Start-XXX
> 2.2 Now you have the subject URI via using above offsets and the base UR.
> And now you can create this triple:
>        :char=XXX-ITS-Annotation-Start-XXX,XXX-ITS-Annotation-End-XXX     a
> nif:RFC5147String;
> 2.3 create the nif:anchorOf triple by putting the string value of the
> current node in, e.g. "Dublin";
> 2.4 create the nif:referenceContext triple by using the count of the
> complete document string length, e.g. :char=0,30;
> 2.5 for each annotation, create the triples, "e.g. itsrdf:taIdentRef
> <http://dbpedia.org/resource/Dublin> <http://dbpedia.org/resource/Dublin>"
> 3 after the last annoation, put the dot "." at the end instead of ";".
>
> 9) How much testing do we need?
>
> I have implemented the conversion for Text Analysis local, see
>
> http://www.w3.org/People/fsasaki/its20-general-processor/tools/its-ta-2-nif.xsl
> and an example conversion, in which the triples are shown with the RDF
> validator http://tinyurl.com/qhhjgmb
> So if we would have one more implementer who could do 8) we would be done.
> I'd be happy to contribute input files. I would also be happy to do this
> for any other data category. But before starting I'd like to know which
> data category to use, so that I don't need to redo the input files.
>
>
> 10) When do we need this?
>
> We need this for finalizing ITS2, that is the testing needs to be done
> within the next three weeks. I hope that with the test suite based
> description under 8) the processing of the actual conversion is
> straightforward and a question of a few hours for whose who are producing
> test suite output anyway.
>
>
> 11) How critical is this?
>
> We need - in addition to me - one more volunteer, otherwise we can't
> finalize ITS2.
>
>
> Best,
>
> Felix
>
>
> ************************************************************
> VistaTEC Ltd. Registered in Ireland 268483.
> Registered Office, VistaTEC House, 700, South Circular Road,
> Kilmainham. Dublin 8. Ireland.
>
> The information contained in this message, including any accompanying
> documents, is confidential and is intended only for the addressee(s).
> The unauthorized use, disclosure, copying, or alteration of this
> message is strictly forbidden. If you have received this message in
> error please notify the sender immediately.
> ************************************************************
>
>
>

Received on Thursday, 23 May 2013 10:52:31 UTC