Re: How to Stringify RDFTriple and BlankNode

> What would you expect to be the result of the following print statements:
>
> 1. var bn = new BlankNode()
>    print(bn.toString())

Something like:

    _:fsdfsdgfdrg

Where everything after "_:" is a string that cannot be relied upon to be
stable.

> 2. subject = new URI("http://www.example.com#foo");
>    var triple1 = new RDFTriple(subject, rdfa.rdfs.label, new
> PlainLiteral("a,b c; g"));
>    print(triple1.toString());

Definately:

    http://www.example.com#foo

And not:

    <http://www.example.com#foo>

toString is called by the Javascript engine automatically when an object
is coerced into a string, so needs to return the most useful
representation of the object. Returning without the angled brackets allows
it to be used like this:

   for (each triple blah blah)
   {
     if (triple.subject == document.location.href)
     {
       do something;
     }
   }

> 3. subject = new URI("http://www.example.com#foo");
>    var triple1 = new RDFTriple(subject, rdfa.rdfs.label, new
> PlainLiteral("http://www.example.com#foo"));
>    print(triple1.toString());
>
> In an early release of the JS Prototype of the RDFa DOM API, I used
> TURTLE syntax in general.
> This would solve the problem but seems to be too much RDF in this API.

I'd expect an N-Triples representation of the triple with some
canonicalised whitespace agreed on. Say, a single space character between
each of the subject, predicate, object and full stop; and no trailing
whitespace or new line characters.

That makes it possible to easily check a triple against a known value:

  if (triple == '<http://example.com/joe#me>
<http://xmlns.com/foaf/0.1/name> "Joe" .')
  {
    do something;
  }

-Toby

Received on Friday, 23 April 2010 10:34:14 UTC