Re: Blank Node Identifiers and RDF Dataset Normalization

On 2/26/13 1:46 PM, Andy Seaborne wrote:
>
>
> On 26/02/13 17:53, Kingsley Idehen wrote:
>> On 2/26/13 12:46 PM, Andy Seaborne wrote:
>>> Jena users find the default graph concept useful:
>>>
>>> 1/ When there is one graph being published
>>
>> Yes-ish. I say that because the implications are really obvious.
>>
>> Imagine if that's how an SQL RDBMS handled the fact that you just wanted
>> to have some records created quickly i.e., they had an anonymous default
>> table. Likewise, the schema was an anonymous table etc..
>
> That an analogy does not work for me.
>
> Default database in a DBMS is nearer.

For me a Table is a collection of relations comprised of tuples. A Graph 
is a collection relations comprised of tuples. A database is a master 
collection of relations comprised of tuples.

In my travels, I've long concluded that "Table" and "Graph" are monikers 
conjured up by proponents of different aspects of relational database 
technology.

>
>>
>>>
>>> 2/ As the union of the named graphs
>>
>> But they could also explicitly seek a union of said graphs in a query if
>> that's what delivered the solution sought.
>
> Different - that would be the query asking for it, not the publisher 
> providing it.

Well, I beg to differ query and publisher dichotomy. Virtuoso doesn't 
have any such thing as an anonymous named graph. It starts with quads. 
Thus, if you aren't specific about a named graph in your query the 
solution will be derived from a union of all graphs.

>
> Historical note:
>
> One original usage of graph labelling was "contexts" - labels that 
> section up a large graph - where the intent is that there is one 
> graph, data-managed in sections.

But that's prone to problems. You have one store that can expose a data 
space on a network but its constituent data partitions need to be 
identified in manners that reflect the core relations. The relationship 
between the graph and its constituent relations needs to be explicit, it 
can't be arbitrary etc..

>
>>
>>>
>>> 3/ As a single place to put the manifest
>>
>> That place could have a name by default.
>
> Workable with care.
>
> 1/ Your name != my name because your default graph != my default graph.

Well speaking for what we do with Virtuoso, as already stated, there is 
no such thing as an anonymous default graph. You either seek data from a 
named graph or a union of all named graphs.

>
> (so please not rdf:manifestGraph for the name)
>
> 2/ Includes the manifest in the union of graphs
>
> 3/ Adding a rdf:type to find the manifest then allows several.
>
> Then the manifest is still "special" in some way so it's more of a 
> different approach than a unifying solution.

See my comments above re. how we protect the users of Virtuoso from this 
issue.


>
>>> Conclusion: you don't have to use it if you don't want to.
>>>
>>> (all well worn points)
>>>
>>>     Andy
>>
>> Yes-ish.
>>
>> The trouble is that users always use defaults under the misguided
>> assumption that defaults know best :-)
>
> On that we agree!  "default" = "a guess".

Great :-)

>
> Also, "default" is often taken to mean "solve my problem" which is not.

Exactly! Both parties are hoping the other will do the *nebulous* right 
thing.


Kingsley
>
>>
>> Kingsley
>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>
>
>


-- 

Regards,

Kingsley Idehen	
Founder & CEO
OpenLink Software
Company Web: http://www.openlinksw.com
Personal Weblog: http://www.openlinksw.com/blog/~kidehen
Twitter/Identi.ca handle: @kidehen
Google+ Profile: https://plus.google.com/112399767740508618350/about
LinkedIn Profile: http://www.linkedin.com/in/kidehen

Received on Tuesday, 26 February 2013 19:26:13 UTC