W3C home > Mailing lists > Public > www-archive@w3.org > July 2013

RE: Input needed from RDF group on JSON-LD skolemization

From: Markus Lanthaler <markus.lanthaler@gmx.net>
Date: Mon, 1 Jul 2013 16:33:38 +0200
To: "'David Booth'" <david@dbooth.org>
Cc: "'Pat Hayes'" <phayes@ihmc.us>, "'www-archive'" <www-archive@w3.org>, "'Andy Seaborne'" <andy@apache.org>, "'Manu Sporny'" <msporny@digitalbazaar.com>, "'Hawke, Sandro'" <sandro@w3.org>, "'Wood, David'" <david@3roundstones.com>, "'David Longley'" <dlongley@digitalbazaar.com>, "'Gregg Kellogg'" <gregg@greggkellogg.com>
Message-ID: <011701ce7667$fdbe4fa0$f93aeee0$@lanthaler@gmx.net>
On Monday, July 01, 2013 4:07 PM, David Booth wrote:
> On 07/01/2013 05:41 AM, Markus Lanthaler wrote:
> > You seem to suggest that we remove a mechanism that allows to map
> > data to something close enough to RDF that some RDF systems already
> > support.
> 
> Yes, I am suggesting that the feature of permitting blank nodes in that
> JSON-LD position -- the position that would result in blank predicates
> in the RDF model -- be removed.   Users would instead be required to
> use URIs in those cases instead of blank nodes.

Or, more likely, they would just not map those properties at all and the
data would be lost due to that.


> > IMO, that's also information loss.
> 
> I would consider it a feature loss rather than information loss, since a
> user could still represent the information.  The user would just have to
> use a URI instead of a blank node.   Is there an important use case for
> permitting blank nodes in the JSON-LD position that would map them to
> blank node predicates in RDF?  If so, what is it?

If you look at JSON, you could say that all properties are effectively
bnodes because they have just local meaning. Sometimes you wanna preserve
that data when transforming the JSON-LD using one of the transformation
algorithms.

Another use case is, for instance, if just wanna extract nodes of a certain
type. Let's say all persons that occur in a graph. In that case it is enough
to map the properties you are interested in to IRIs and threat all the
others as blank node predicates.

For example, you may have a JSON representation of a blog post and all its
comments:

...
comments: [
  {
    text: ...
    author: 
      {
        name: ...
        .. other properties you are interested in ...
      }
  }
]

You could extract the all persons by mapping name to foaf:name etc. and all
other properties to blank nodes:

{
  "@context": {
    "@vocab": "_:",
    "name": "http://xmlns.com/foaf/0.1/name",
    ...
  }
}

and then just filter out the nodes which have a foaf:name.

If you wouldn't map all other properties to blank nodes you wouldn't get any
triples at all as we ignore unmapped properties (and their complete
subtrees).



--
Markus Lanthaler
@markuslanthaler
Received on Monday, 1 July 2013 14:34:43 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 7 January 2015 14:44:21 UTC