W3C home > Mailing lists > Public > www-rdf-interest@w3.org > August 2003

Re: RDF validator error

From: Eric Prud'hommeaux <eric@w3.org>
Date: Thu, 28 Aug 2003 16:27:27 -0400
To: Jeremy Carroll <jjc@hplb.hpl.hp.com>, Art Barstow <Art.Barstow@nokia.com>
Cc: Charlie Abela <abcharl@keyworld.net>, www-rdf-interest@w3.org
Message-ID: <20030828202727.GC25368@w3.org>

On Wed, Aug 27, 2003 at 11:54:51AM -0400, Eric Prud'hommeaux wrote:
> 
> On Wed, Aug 27, 2003 at 03:08:51PM +0100, Jeremy Carroll wrote:
> > 
> > 
> > (Would value comment from other WG members)
> > 
> > 
> > Charlie Abela wrote:
> > 
> > 
> > >I am trying to parse some DAML with the validator. The parsing of this 
> > >file used to give no complaint except that lately I am being faced with 
> > >this error: Error: {W130} Base URI is "", relative URIs left as relative 
> > >and I can?t figure out why?
> > 
> > 
> > Also this example from Art Barstow:
> > 
> > <rdf:Description rdf:ID="Profile">
> > <dc:title>World Wide Web Consortium</dc:title>
> > </rdf:Description>
> > 
> > generating the same error.
> > 
> > At some point I upgraded ARP to correctly identify the use of relative URIs 
> > in documents given with relative URIs as a problem.
> > The RDF graph uses absolute URI refs, and if no absolute URI can be 
> > established then there is an issue. Whether this is a warning or an error 
> > depends on the use case, and ARP supports either. The validator I believe 
> > runs in strict mode, and so most problems are treated as errors.
> > 
> > Recently the validator has had the ARP engine upgraded. At which point this 
> > behaviour was introduced.
> > 
> > I agree that it is a bug in the validator, since while no base URI can be 
> > determined for text pasted into a web form, it is unhelpful to complain 
> > about this. It is however not a bug in a compliant parser.
> > 
> > I suggest one of the following fixes in the validator code:
> > a) specify an arbitrary base URI instead of ""
> 
> I just did this on a test server. I used http://example.org/# for my
> experiment. I could also use the validator page. The validator form is
> an HTTP POST and rfc2616 has this to say about POST:
> 
> [[ http://www.w3.org/Protocols/rfc2616/rfc2616.txt
> The POST method is used to request that the origin server accept the
> entity enclosed in the request as a new subordinate of the resource
> identified by the Request-URI in the Request-Line.
> ...
> The posted entity is subordinate to that URI in the same way that a
> file is subordinate to a directory containing it, a news article is
> subordinate to a newsgroup to which it is posted, or a record is
> subordinate to a database.
> ]]
> 
> It also talks about return codes for created objects, but we're not
> creating anything that is resolvable later so that's not germain...
> 
> The base URI could also have a unix time in it to prevent
> inappropriate graph merging of output from multiple calls to the
> validator. This would allow us to scope the names used in a particular
> POST to that POST. Otherwise, #n1 in one POST would identify the same
> node as #n1 in antother POST (as opposed to having all POST through
> all time be in the same lexical space). Plus bNodes would be nicely
> distinct...
> 
> > or
> > b) tell ARP to ignore this condition
> >   setErrorMode(
> >      ARPErrorNumbers.WARN_RESOLVING_URI_AGAINST_EMPTY_BASE,
> >      ARPErrorNumbers.EM_IGNORE );
> > 
> > Personally I think option (b) is better.
> 
> Any particular reason? I have no great preference for A, but it does
> seem like the triples generated by allowing unanchored relative URIs
> might cause someone trouble down the line. For instance, if the output
> were in n3 or some other language using URIs for nodes, a consumer of
> the data might whine where jena had been instructed not to whine.
> 
> > A workaround until the validator is updated is to have the file to be 
> > tested as web accessible and use the validate URL option.
> 
> It's a simple matter of copying a file at this point so unless the
> workaround is prefferable to A or B, you shouldn't need to use it.

I implemented A while we grasp for consensus.

  <?xml version="1.0"?>
  <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <rdf:Description rdf:ID="Profile">
      <dc:title>World Wide Web Consortium</dc:title> 
    </rdf:Description>
  </rdf:RDF>
produced an arc with a subject of
  http://www.w3.org/RDF/Validator/run/1062074071150#Profile

in N3:
  @prefix run: <http://www.w3.org/RDF/Validator/run/1062074071150#> .
  @prefix dc: <http://purl.org/dc/elements/1.1/> .
  run:Profile dc:title "World Wide Web Consortium" .

Note that the run is nigh-unique. It produced an arc with a subject of
  http://www.w3.org/RDF/Validator/run/1062074071150#Profile
This way it will not touch another graph that happens to have similar
XML IDs like this one:

  <?xml version="1.0"?>
  <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:p="http://www.w3.org/2002/01/p3prdfv1#">

    <rdf:Description rdf:ID="Profile">
      <p:htmlForm rdf:resource="http://www.w3.org/2003/07/p3p2html/glance-public.html"/> 
    </rdf:Description>

    <rdf:Description rdf:about="http://www.w3.org/2001/10/glance/view">
      <p:policyRef>
        <rdf:Description
         rdf:about="http://www.w3.org/2001/05/P3P/glance-ref.xml">
          <p:about rdf:resource="#Profile"/>
        </rdf:Description
      </p:policyRef>
    </rdf:Description>
  </rdf:RDF>
-- 
-eric

office: +1.617.258.5741 NE43-344, MIT, Cambridge, MA 02144 USA
cell:   +1.857.222.5741

(eric@w3.org)
Feel free to forward this message to any list for any purpose other than
email address distribution.
Received on Thursday, 28 August 2003 16:27:27 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:52:01 GMT