Sharing blank nodes among graphs

Hi,

How Virtuoso manages the scope of blank nodes? (for sharing BN among graphs)
Does the RDF Graph Groups table has a role for this feature?

Thanks in advance.

You cannot depend on a blank node beyond the named graph within which it is used. Put differently, blank nodes are named graph scoped. A Named Graph is like a page in a book, a pronoun is only meaningful within paragraph (relation) and possibly the page that contains said paragraph.

You can use owl:sameAs inference to make sense of a blank node beyond a named graph.
Example:

[   
    rdf:type schema:Article ;
    schema:dateModified "2020-08-30T02:11:11Z"^^schema:Date ;
    schema:datePublished "2005-07-18T05:28:00Z"^^schema:Date ;
    schema:mainEntity <http://www.wikidata.org/entity/Q4116377> ;
    schema:name "Coincidence of wants" ;
    schema:url <https://en.wikipedia.org/wiki/Coincidence_of_wants> 
]
schema:sameAs <https://www.wikidata.org/wiki/Q4116377> . 

Hi,

According to the SPARQL specification, the scope of BN can be a graph or a set of graphs (dataset) or depending on the application. In Oracle for example, we can share BN among graphs of a semantic model…

Thanks for your reply.

Hi Beli,

And Virtuoso is compatible with the spec.

You can user Blank Nodes to denote entities across Named Graphs, Named Graph Groups etc… Ultimately, the issue with Blank Node denotation is that it is the equivalent of a real-world Indefinite Pronoun.