Relative IRIs and literals

Hi,

I have a couple of questions about the RIF-BLD document.

I notice in example 8 that there are some relative IRIs (<John> and
<Fred>). I'm presuming that the presentation syntax is fine to set the
base for these values, but I notice that the XML treats these as text,
meaning that they show up as the relative value. I suppose that
software reading the XML can record the xml:base on the document, and
make the change manually, but that seems to be a strange way to do it.
Is this intentional?

As a consequence of this, I note that the mapping described in
Sandro's "RIF in RDF" working draft loses the base information
completely.

Also, I'm wondering about the representation of rdf:PlainLiteral in
RIF-XML. The presentation syntax clearly states that it uses the
lexical form, meaning that a literal of "foo"@en is represented as:
  <Const type="&rdf;PlainLiteral">foo@en</Const>

.... and the plain literal of "foo" is represented as:
  <Const type="&rdf;PlainLiteral">foo@</Const>

However, section 4.1 of RIF-BLD says an xml:lang attribute may be used
for constants of the type rdf:PlainLiteral. I infer from this that the
value space of the rdf:PlainLiteral is being represented instead (ie.
a tuple, instead of a string). So the literal of "foo"@en can instead
be represented as:
  <Const type="&rdf;PlainLiteral" xml:lang="en">foo</Const>

Looking more carefully, this was the only clause I found on how
rdf:PlainLiterals were to be represented in XML. Since there is no
reference to the value space form, nor to the lexical form, then the
reference to the xml:lang attribute might be taken to obliquely imply
that the value space should be used. However, that *seems* odd to me.
I also noted that Sandro's "RIF in RDF" draft explicitly refers to the
lexical form, so Sandro appears to be expecting that form.

So are both forms valid? If so, then what happens if both are used
(the xml:lang attribute and the @lang)? Which takes precedence? What
about if neither is used? Does the lack of an xml:lang attribute mean
that the lexical form is in effect, and without an "@" character an
error is reported? Or will the lack of an "@" character mean that
xml:lang should be used, and the lack of one indicates a literal
without a language tag?

Alternately, if only the value-space form is valid in XML, then is
this mentioned anywhere? It would be quite an omission given that the
lexical form is explicitly mentioned for the presentation syntax.

Or perhaps the first question I should have asked may be the most
pertinent..... did I miss something that explains all of this?

Regards,
Paul Gearon

Received on Thursday, 11 November 2010 22:13:01 UTC