Re: Scoping bnodes (was: Re: Blank Nodes Re: Toward easier RDF: a proposal)

On 11/27/2018 12:43 AM, Pat Hayes wrote:
> I think this is a very basic and important point. It is what I meant, 
> expressed differently, by saying that RDF has no way to indicate scope. 
> Bnodes in RDF are, logically, existentially quantified variables, but 
> RDF has no way to indicate, and therefore no way for anyone to know, 
> where the quantifiers are which bind those variables. So, for example, 
> if we assume they are just outside each RDF document, then we should 
> standardize bnodeIDs apart when merging; but if we assume they have 
> larger scope, then maybe we shouldn’t. Bnodes introduced to encode 
> structures like n-ary relational assertions, or lists, or some 
> complicated piece of OWL syntax, should have a very narrow scope 
> corresponding to the exact boundaries of those structures, and hence 
> should be ‘invisible’ from outside (which is why it is fine to make them 
> vanish in a higher-level syntax using [ ] or ( ).)
> 
> Ideally, RDF2 should provide for these structures directly, but maybe we 
> can get the benefit with a relatively tiny step, just by having a syntax 
> for RDF which has explicit scoping brackets. Off the cuff, imagine a 
> variant of NTriples in which a subset of triples can be enclosed in 
> brackets, say [  ] (or something else if thse are already taken) to 
> indicate that any bnode ID in a triple inside the bracket is local to 
> those triples, ie is ‘bound'. Current RDF engines which do not make use 
> of this information can simply ignore them, since they do not change the 
> RDF meaning of the graph, but they may provide useful information to 
> newer engines. For example, they might make it a lot easier to parse OWL 
> syntax (‘Manchester’ syntax) from OWL/RDF.

This is the kind of thing I think about when I talk about "idioms" of 
usage.  This particular example could perhaps be achieved by marking the 
bnode with a "scope" relationship. You suggest above that such a scope 
would take a syntax change, but I think that you could just state the 
scope using the already-existing syntax. You'd have to invent a few new 
types, that's all.

Topic Maps has always had scopes built in. Since Topic Maps scopes can 
be drawn as part of a diagram - i.e., using nodes and edges - they can 
be modeled with the current version of RDF without (I think) any 
changes.  OTOH, Topic Maps do not have the equivalent of bnodes - every 
topic (i.e., every concept) has an ID. That was because the intent was 
to make everything (every concept) something that could be talked about. 
  Even n-ary relationships (called associations) have IDs, since they 
are concepts that could in principle be talked about.

Of course, tools and people would need to understand what is meant; 
that is outside the purview of the current standards and would 
constitute one of those idioms of use.  All we'd need is a document 
containing the standardized form of the idiom and its interpretation.

Received on Tuesday, 27 November 2018 15:17:10 UTC