[
https://issues.apache.org/jira/browse/JENA-2152?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17402553#comment-17402553
]
Andy Seaborne commented on JENA-2152:
-------------------------------------
Yes - it can be done.
If it is for security, there is the graph-level access control:
https://jena.apache.org/documentation/fuseki2/fuseki-data-access-control.html#graph-acl
. This also works when the default graph is the union of all named graphs -
only the permitted named graphs are in the union view.
Another way is to use an assembler to describe the setup. Any combination of
named graphs can be combined into a single graph view of the union with a
UnionModel assembler.
Full example attached which sets up a dataset for an endpoint that is a view of
the underlying database. There can also be a Fuseki service with update
endpoints to go directly to the database.
The database setup is:
{noformat}
:dataset rdf:type ja:RDFDataset ;
ja:defaultGraph :graphMyUnion ;
.
:graphMyUnion rdf:type ja:UnionModel ;
ja:rootModel [ rdf:type tdb2:GraphTDB2 ; tdb2:dataset :dataset_tdb2 ; ] ;
ja:subModel :graph1 ;
ja:subModel :graph2 ;
.
## Graphs out of DB2.
:graph1 rdf:type tdb2:GraphTDB2 ;
tdb2:graphName "http://example/ng1" ;
tdb2:dataset :dataset_tdb2 ;
.
:graph2 rdf:type tdb2:GraphTDB2 ;
tdb2:graphName "http://example/ng2" ;
tdb2:dataset :dataset_tdb2 ;
.
:dataset_tdb2 rdf:type tdb2:DatasetTDB2 ;
tdb2:location "database area" ;
.
{noformat}
> Persisting constituent named graphs config for default graph of custom
> dataset view.
> ------------------------------------------------------------------------------------
>
> Key: JENA-2152
> URL: https://issues.apache.org/jira/browse/JENA-2152
> Project: Apache Jena
> Issue Type: New Feature
> Components: Fuseki
> Reporter: damodara
> Priority: Major
> Labels: SPARQL, dataset, defaultGraph, fuseki
> Attachments: tdb2-union.ttl
>
>
> Namaste. Thanks for work on jena.
> Presently we can specify custom dataset for a sparql query with {{FROM}} and
> {{FROM NAMED}} declarations, whose default-graph is merge of graphs declared
> with {{FROM}}, and whose named graphs are individual named graphs declared
> with {{FROM NAMED}}.
> This pattern works fine until we have to search among merge of small number
> of named graphs, by enumerating all of them with {{FROM}}. But if we have to
> search across merge of thousands of small named graphs (like those,
> trusted-by-an-authority, extracted-from-specific-resources,
> have-certain-provanence), then it won’t scale to mention all of those
> constituent graphs of custom default graph in every sparql query.
>
> One obvious solution is giving this custom default graph an `IRI`, and
> describe it's component named graphs with minimal vocabulary. BlazeGraph
> follows this pattern, which they call as [Virtual
> Graphs|https://github.com/blazegraph/database/wiki/VirtualGraphs].
>
> And Virtuoso has [Graph
> Groups|http://docs.openlinksw.com/virtuoso/rdfgraphsecuritygroups/] feature
> to address this.
>
> It would be very useful if jena support such virtual default graphs easily
> Thanks again for great work.
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)