Re: Plain literals in Canonical N-triples

No, for once I am not coming from OWL :)

I'm just writing a simple n-triples serializer, and I am not sure if I
should simply always include the type if there is no @lang (e.g.
^^xsd:string)

..Or if I should have a special case to output anything with type
xsd:string as a classic "plain literal", e.g. no @ or ^^.

Surely just one of these should be in the canonical version ? My guts says
to always include the type for non-lang, but the spec is ambigous on this -
if xsd:string is implied, should I then prefer to generate this implied
version?

Before rdf 1.1 the norm tended to be to NOT express xsd:string unless it
really was a character-by-character string (e.g. a genome identifier), and
not when it was human text (but in unknown or mixed language).

As we SHOULD be generating the Canonical N-Triples, then it would be good
to know if there already is a silent de facto agreement that is just not
expressed in the spec.

You might know the code base -
https://github.com/stain/commons-rdf/blob/tests/src/test/java/com/github/commonsrdf/dummyimpl/LiteralImpl.java#L99
On 27 Dec 2014 17:14, "Peter Ansell" <ansell.peter@gmail.com> wrote:

> Hi Stian,
>
> RDF-1.1 does not have the concept of plain literals [1]. Hence, it is
> difficult to map the OWL-WG-derived rdf:PlainLiteral set to RDF-1.1,
> if that is where you are coming at the issue from [2].
>
> Cheers,
>
> Peter
>
> [1]
> http://www.w3.org/TR/2014/REC-rdf11-concepts-20140225/#section-Graph-Literal
> [2] https://github.com/owlcs/owlapi/issues/172
>
> On 27 December 2014 at 16:37, Stian Soiland-Reyes
> <soiland-reyes@cs.manchester.ac.uk> wrote:
> > In http://www.w3.org/TR/n-triples/#canonical-ntriples I read:
> >
> >> Canonical N-Triples has the following additional constraints on layout:
> >>
> >>     The whitespace following subject, predicate, and object MUST be a
> single space, (U+0020). All other locations that allow whitespace MUST be
> empty.
> >>     There MUST be no comments.
> >>     HEX MUST use only uppercase letters ([A-F]).
> >>     Characters MUST NOT be represented by UCHAR.
> >>     Within STRING_LITERAL_QUOTE, only the characters U+0022, U+005C,
> U+000A, U+000D are encoded using ECHAR. ECHAR MUST NOT be used for
> characters that are allowed directly in STRING_LITERAL_QUOTE.
> >
> >
> > and in http://www.w3.org/TR/n-triples/#sec-parsing-terms
> >
> >> If neither a language tag nor a datatype IRI is provided, the literal
> has a datatype of xsd:string.
> >
> >
> > and in http://www.w3.org/TR/n-triples/#sec-literals
> >
> >> If there is no datatype IRI and no language tag it is a simple literal
> and the datatype is http://www.w3.org/2001/XMLSchema#string.
> >
> >> Example 3
> >>     <http://example.org/show/218> <
> http://www.w3.org/2000/01/rdf-schema#label> "That Seventies Show"^^<
> http://www.w3.org/2001/XMLSchema#string> . # literal with XML Schema
> string datatype
> >>     <http://example.org/show/218> <
> http://www.w3.org/2000/01/rdf-schema#label> "That Seventies Show" . #
> same as above
> >
> >
> > So I am not any wiser with regards to how to serialize plain literals
> > in RDF 1.1 Canoical N-Triples..
> >
> >
> > Are both of the two examples allowed in Canonical N-Triples? (it seems
> > so by the spec.. :-( ).
> >
> > Which variant should I generate?
> >
> >
> > --
> > Stian Soiland-Reyes, myGrid team
> > School of Computer Science
> > The University of Manchester
> > http://soiland-reyes.com/stian/work/
> http://orcid.org/0000-0001-9842-9718
> >
>

Received on Sunday, 28 December 2014 03:24:49 UTC