Re: canonical representation

Hi Ruben and RDFJS, happy new year :)

What we are looking for is:
> – a name for this method or property
>    – current suggestions include .toCanonical() and .toNT()
>

My preference is (in order):
.canonical() - or directly as attribute - canonical
.toCanonical()
.getCanonical()
.toNT()


> – values this method or property should return
>     – e.g., "IRIs are surrounded by angular brackets"


I would go for following as much as possible the N-quads format, with the
addition of ?variables just as they are expressed in SPARQL

<...> for IRIS, no prefixes
"..." for literals
?... for variables

A triple would look like
*?movie <http://schema.org/ratingValue <http://schema.org/ratingValue>> "5"
<http://movies.com/movies <http://movies.com/movies>>*

Language and datatype can be messy because they are often absent in feral
triples. I see a risk in having a different canonical for triples that are
practically the same, for example:
*?movie <http://schema.org/name <http://schema.org/name>> "The real history
of the marshmellow"@en*
*?movie <http://schema.org/name <http://schema.org/name>> "The real history
of the marshmellow"*

Anyway I understand the need for a 1to1 relation and avoid the temptation
to propose just omitting them from the canonical.
Maybe again, just follow the N-triples and add @... when
*triple.literal.language* is present and ^... when the
*triple.literal.datatype* is present.
Same choice goes for the fourth term of the triple, many times there isn't
one. Maybe there can be a method for battle-ready triples where there is no
context and literals are without language and datatypes. For that I would
propose the name .shortCanonical().

Piero

-- 
http://pieroit.org/portfolio
+39 320 09 23 630

Received on Monday, 4 January 2016 16:26:30 UTC