Re: [www-rdf-validator] <none> - (bug in ARP?)

Shadi Abou-Zahra wrote:

> anyway, the shema i plugged into the validator is located at
> <http://www.w3.org/TR/EARL10/#schema-rdf> and i've pasted it below as
> well.
> 
> regards,
>   shadi
> 
> 
> <?xml version='1.0' encoding='ISO-8859-1'?>
> 
> <!DOCTYPE rdf:RDF [
> 
> 
>  <!ENTITY earl 'http://www.w3.org/WAI/ER/EARL/nmg-strawman#'> 
>      <!ENTITY rdf 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'> 
>      <!ENTITY rdfs 'http://www.w3.org/TR/1999/PR-rdf-schema-19990303#'>
> ]> 
> <rdf:RDF xmlns:earl="&earl;"  
>          xmlns:rdf="&rdf;" 
>          xmlns:rdfs="&rdfs;"> 
> <!-- Classes -->
>   <rdfs:Class rdf:about="&earl;Assertion" rdfs:label="Assertion">
>        <rdfs:subClassOf rdf:resource="&rdfs;Resource"/> 
>   </rdfs:Class> 
>   <rdfs:Class rdf:about="&earl;Assertor"  rdfs:label="Assertor">
>        <rdfs:subClassOf rdf:resource="&rdfs;Resource"/> 
>   </rdfs:Class> 
>   <rdfs:Class rdf:about="&earl;ConfidenceLevel"
> rdfs:label="ConfidenceLevel">
>        <rdfs:subClassOf rdf:resource="&rdfs;Resource"/>
>   </rdfs:Class> 
>   <rdfs:Class rdf:about="&earl;Platform" rdfs:label="Platform"> 
>        <rdfs:subClassOf rdf:resource="&rdfs;Resource"/> 
>   </rdfs:Class> 
>   <rdfs:Class rdf:about="&earl;TestCase"  rdfs:label="TestCase"> 
>        <rdfs:subClassOf rdf:resource="&rdfs;Resource"/> 
>   </rdfs:Class> 
> <rdfs:Class rdf:about="&earl;TestMode"   rdfs:label="TestMode">
>      <rdfs:subClassOf rdf:resource="&rdf;Resource">
> </rdfs:Class>
>   <rdfs:Class rdf:about="&earl;TestResult"  rdfs:label="TestResult">
>        <rdfs:subClassOf rdf:resource="&rdfs;Resource"/>
>   </rdfs:Class> 
>   <rdfs:Class rdf:about="&earl;TestSubject" rdfs:label="TestSubject"> 
>      <rdfs:subClassOf rdf:resource="&rdfs;Resource"/> 
>   </rdfs:Class> 
>   <rdfs:Class rdf:about="&earl;Tool"  rdfs:label="Tool"> 
>        <rdfs:subClassOf rdf:resource="&earl;TestSubject"/> 
>   </rdfs:Class> 
>   <rdfs:Class rdf:about="&earl;UserAgent"  rdfs:label="UserAgent">
>        <rdfs:subClassOf rdf:resource="&earl;TestSubject"/>
>   </rdfs:Class> 
>   <rdfs:Class rdf:about="&earl;ValidityLevel"
> rdfs:label="ValidityLevel"> 
>        <rdfs:subClassOf rdf:resource="&rdfs;Resource"/> 
>   </rdfs:Class> 
>   <rdfs:Class rdf:about="&earl;WebContent"  rdfs:label="WebContent">
>        <rdfs:subClassOf rdf:resource="&earl;TestSubject"/>
>   </rdfs:Class> 
> <!-- Properties -->
>   <rdf:Property rdf:about="&earl;assertedBy" rdfs:label="assertedBy">
>        <rdfs:domain rdf:resource="&earl;Assertion"/> 
>        <rdfs:range rdf:resource="&earl;Assertor"/> 
>   </rdf:Property> 
>   <rdf:Property rdf:about="&earl;confidence"  rdfs:label="confidence">
>        <rdfs:range rdf:resource="&earl;ConfidenceLevel"/> 
>        <rdfs:domain rdf:resource="&earl;TestResult"/> 
>   </rdf:Property>
>   <rdf:Property rdf:about="&earl;contactInfo"  rdfs:label="contactInfo">
>        <rdfs:range rdf:resource="&rdfs;Resource"/> 
>        <rdfs:domain rdf:resource="&earl;Assertor"/> 
>   </rdf:Property> 
>   <rdf:Property rdf:about="&earl;email"  rdfs:label="email"> 
>        <rdfs:range rdf:resource="&rdfs;Literal"/> 
>        <rdfs:domain rdf:resource="&earl;Assertor"/> 
>        <rdfs:subPropertyOf rdf:resource="&earl;contactInfo"/> 
>   </rdf:Property>
>   <rdf:Property rdf:about="&earl;format"  rdfs:label="format">
>        <rdfs:range rdf:resource="&rdfs;Literal"/> 
>        <rdfs:domain rdf:resource="&earl;WebContent"/> 
>   </rdf:Property>
>   <rdf:Property rdf:about="&earl;message"  rdfs:label="message">
>        <rdfs:range rdf:resource="&rdfs;Literal"/> 
>        <rdfs:domain rdf:resource="&earl;TestResult"/> 
>   </rdf:Property>
> <rdf:Property rdf:about="&earl;mode"  rdfs:label="mode">
>      <rdfs:range rdf:resource="&earl;TestMode"/>
>      <rdfs:domain rdf:resource="&earl;Assertion"/>
> </rdf:Property>
>   <rdf:Property rdf:about="&earl;name"  rdfs:label="name">
>        <rdfs:range rdf:resource="&rdfs;Literal"/> 
>        <rdfs:domain rdf:resource="&earl;Assertor"/> 
>   </rdf:Property> 
>   <rdf:Property rdf:about="&earl;platform"  rdfs:label="platform"> 
>        <rdfs:range rdf:resource="&rdfs;Resource"/> 
>        <rdfs:domain rdf:resource="&earl;Assertor"/> 
>   </rdf:Property> 
>   <rdf:Property rdf:about="&earl;reprOf"  rdfs:label="reprOf"> 
>        <rdfs:range rdf:resource="&rdfs;Resource"/> 
>        <rdfs:domain rdf:resource="&earl;WebContent"/> 
>   </rdf:Property>
>   <rdf:Property rdf:about="&earl;result"  rdfs:label="result">
>        <rdfs:domain rdf:resource="&earl;Assertion"/> 
>        <rdfs:range rdf:resource="&earl;TestResult"/> 
>   </rdf:Property>
>   <rdf:Property rdf:about="&earl;subject"  rdfs:label="subject">
>        <rdfs:domain rdf:resource="&earl;Assertion"/> 
>        <rdfs:range rdf:resource="&earl;TestSubject"/> 
>   </rdf:Property>
>   <rdf:Property rdf:about="&earl;testcase"  rdfs:label="testcase">
>        <rdfs:domain rdf:resource="&earl;Assertion"/> 
>        <rdfs:range rdf:resource="&earl;TestCase"/> 
>   </rdf:Property> 
>   <rdf:Property rdf:about="&earl;validity"  rdfs:label="validity">   
>        <rdfs:domain rdf:resource="&earl;TestResult"/> 
>        <rdfs:range rdf:resource="&earl;ValidityLevel"/> 
>   </rdf:Property>
> <!-- Instances of Classes -->
>   <earl:TestMode rdf:about="&earl;manual"  rdfs:label="manual">
>      <rdfs:comment>The test was performed by a human.</rdfs:comment>
>   </earl:TestMode>
>   <earl:TestMode rdf:about="&earl;heuristic"  rdfs:label="heuristic">
>       <rdfs:comment>The test is derived from other test
> results.</rdfs:comment>
>   </earl:TestMode>
>   <earl:TestMode rdf:about="&earl;automatic"  rdfs:label="automatic">
>       <rdfs:comment>The test was performed by a tool or
> machine.</rdfs:comment>
>   </earl:TestMode>
>   <earl:ValidityLevel rdf:about="&earl;cannotTell"
> rdfs:label="cannotTell"/>
>   <earl:ValidityLevel rdf:about="&earl;fail"  rdfs:label="fail"/>
>   <earl:ConfidenceLevel rdf:about="&earl;high"  rdfs:label="high"/>
>   <earl:ConfidenceLevel rdf:about="&earl;low"  rdfs:label="low"/>
>   <earl:ConfidenceLevel rdf:about="&earl;medium"  rdfs:label="medium"/>
>   <earl:ValidityLevel rdf:about="&earl;notApplicable"
> rdfs:label="notApplicable"/>
>   <earl:ValidityLevel rdf:about="&earl;notTested"
> rdfs:label="notTested"/>
>   <earl:ValidityLevel rdf:about="&earl;pass"  rdfs:label="pass"/> 
> </rdf:RDF>

I managed to identify the error which is just an XML well-formedness error:

<rdfs:Class rdf:about="&earl;TestMode"   rdfs:label="TestMode">
      <rdfs:subClassOf rdf:resource="&rdf;Resource">
</rdfs:Class>

SHOULD ACTUALLY BE

<rdfs:Class rdf:about="&earl;TestMode"   rdfs:label="TestMode">
      <rdfs:subClassOf rdf:resource="&rdf;Resource" />
</rdfs:Class>

That's all there is to it. However, I believe this points out a bug in 
ARP, as trying to parse this model triggers an internal error and does 
not tell what is the cause of the problem.


Jeremy,

in case this can help you, here's the traceback (obtained from IsaViz 
2.0 which uses Jena-2.0):
----------------------------------------------------------------------
com.hp.hpl.jena.rdf.arp.ParseException: {E300} Error recovery failed.
         at 
com.hp.hpl.jena.rdf.arp.RDFParser.error_recovery(RDFParser.java:1923)

         at 
com.hp.hpl.jena.rdf.arp.RDFParser.propertyElt(RDFParser.java:580)
         at com.hp.hpl.jena.rdf.arp.RDFParser.typedNode(RDFParser.java:936)
         at 
com.hp.hpl.jena.rdf.arp.RDFParser.description(RDFParser.java:337)
         at com.hp.hpl.jena.rdf.arp.RDFParser.obj(RDFParser.java:269)
         at com.hp.hpl.jena.rdf.arp.RDFParser.rdf(RDFParser.java:256)
         at com.hp.hpl.jena.rdf.arp.RDFParser.root(RDFParser.java:1315)
         at 
com.hp.hpl.jena.rdf.arp.RDFParser.embeddedFile(RDFParser.java:1308)
         at com.hp.hpl.jena.rdf.arp.ARPFilter.parse(ARPFilter.java:293)
         at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:227)
         at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:256)
         at org.w3c.IsaViz.RDFLoader.load(RDFLoader.java:210)
         at org.w3c.IsaViz.Editor$4.construct(Editor.java:531)
         at com.xerox.VTM.engine.SwingWorker$2.run(SwingWorker.java:123)
         at java.lang.Thread.run(Thread.java:534)
com.hp.hpl.jena.shared.JenaException: rethrew: {E300} Error recovery failed.
         at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:231)
         at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:256)
         at org.w3c.IsaViz.RDFLoader.load(RDFLoader.java:210)
         at org.w3c.IsaViz.Editor$4.construct(Editor.java:531)
         at com.xerox.VTM.engine.SwingWorker$2.run(SwingWorker.java:123)
         at java.lang.Thread.run(Thread.java:534)
Caused by: com.hp.hpl.jena.rdf.arp.ParseException: {E300} Error recovery 
failed.

         at 
com.hp.hpl.jena.rdf.arp.RDFParser.error_recovery(RDFParser.java:1923)

         at 
com.hp.hpl.jena.rdf.arp.RDFParser.propertyElt(RDFParser.java:580)
         at com.hp.hpl.jena.rdf.arp.RDFParser.typedNode(RDFParser.java:936)
         at 
com.hp.hpl.jena.rdf.arp.RDFParser.description(RDFParser.java:337)
         at com.hp.hpl.jena.rdf.arp.RDFParser.obj(RDFParser.java:269)
         at com.hp.hpl.jena.rdf.arp.RDFParser.rdf(RDFParser.java:256)
         at com.hp.hpl.jena.rdf.arp.RDFParser.root(RDFParser.java:1315)
         at 
com.hp.hpl.jena.rdf.arp.RDFParser.embeddedFile(RDFParser.java:1308)
         at com.hp.hpl.jena.rdf.arp.ARPFilter.parse(ARPFilter.java:293)
         at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:227)
         ... 5 more
----------------------------------------------------------------------


Emmanuel

-- 
Emmanuel Pietriga (epietriga@nuxeo.com)
http://claribole.net

Received on Monday, 17 May 2004 11:13:23 UTC