Virtuoso DET Mesh-up

Dynamic SPARQL Documents & Cloud Storage Access Control — by Ted Thibodeau Jr

Two-article collection from the OpenLink Virtuoso Weblog · 2018

433
RDF Triples
2
Articles
10
FAQs
10
How-To Steps
About

About This Knowledge Graph

At its core, Virtuoso offers a universal filesystem interface as one of its various options for open standards based I/O operations. A SPARQL query result saved to a DET folder becomes a file you can create, share via WebDAV, open in Excel or Tableau, and delete — while the underlying RDF data stays live and in sync. A Google Drive folder mounted through ODS-Briefcase becomes the same: a file hierarchy you share, protect with WebID ACLs, and access from any WebDAV client — without the underlying storage service knowing or caring that it's part of a knowledge graph pipeline. This mesh-up of two articles by Ted Thibodeau Jr, building on the Virtuoso platform and linked data deployment patterns pioneered by Kingsley Uyi Idehen, demonstrates that pattern: the filesystem is the interface, and knowledge graphs — whether generated from SPARQL queries or layered over cloud storage — inherit the create-share-delete model that every user and every tool already understands. 433 triples, 5 storage services, 10 FAQs, 12 glossary terms, 10 HowTo steps.

Collection

The Two Articles

Dynamic SPARQL Document Generation

How Virtuoso's DET folders generate change-sensitive documents from SPARQL queries — outputting CSV, HTML, JSON, Turtle — accessible via HTTP/WebDAV and consumable by Excel, Tableau, and Qlik Sense. May 2018.

Storage Access Control via WebID ACLs

How ODS-Briefcase mounts Google Drive, Dropbox, OneDrive, Box, and S3 as DET folders with WebID-based RBAC/ABAC — transforming proprietary SaaS storage into a decentralized, standards-based personal data space. Jan 2018.

Ecosystem

Storage Services & Virtuoso Components

Google Drive

Mounted via ODS-Briefcase. Does not properly handle MIME types. Normalized through the Virtuoso abstraction layer.

Dropbox

Partial MIME type support. Folder sharing restricted by social network requirements. Normalized by ODS-Briefcase.

Microsoft OneDrive

Requires macOS Yosemite (10.10+) or later. Mounted with read-write WebDAV access through ODS-Briefcase.

Box

Cloud storage mounted via ODS-Briefcase with WebDAV and WebID ACLs for decentralized access control.

Amazon S3

The only service among the five that properly handles Document Content Types (MIME types). Mountable with WebID ACLs.

Virtuoso

Multi-model hybrid RDBMS. DET folders, SPARQL endpoint, WebDAV server, ODS-Briefcase storage virtualization.

FAQ

Frequently Asked Questions (10)

Dynamic Extended Type folders transform content at request time — SQL-to-XML, SQL-to-RDF, SPARQL-results-to-CSV. DET applies HTTP content negotiation to serve the right format to each consumer.

Save SPARQL results to a DET folder via the endpoint. With 'Refresh periodically' enabled, documents auto-update. Output formats: CSV, HTML, JSON, Turtle, N-Triples, RDF/XML. Accessible via HTTP/WebDAV for desktop tools.

ODS-Briefcase mounts Google Drive, Dropbox, Microsoft OneDrive, Box, and Amazon S3. Each appears as a WebDAV mount point in the user's personal data space. ODS-Briefcase uses proprietary APIs but presents a uniform WebDAV interface.

WebID is a W3C standard for decentralized identity verification using TLS client certificates. ACLs on ODS-Briefcase folders can grant READ access based on WebID verification. Supports RBAC (Users/Roles) and ABAC (attribute-based on-the-fly evaluation).

CSV, HTML, JSON, Turtle (RDF), N-Triples, RDF/XML. Format is selected at save time; the file auto-refreshes when underlying data changes.

Modern macOS, Windows, and Linux can mount WebDAV directories. Dynamic documents appear as local files — Excel, Tableau, and Qlik Sense can open and refresh them without understanding SPARQL or RDF.

Google Drive does not handle MIME types properly. Dropbox handles them slightly better. OneDrive requires specific OS versions. Only Amazon S3 properly handles Content Types. ODS-Briefcase normalizes all services for full MIME support.

ODS-Briefcase provides an open-standards virtualization layer: HTTP with Content Negotiation, WebDAV for read-write, LDP for Linked Data, WebID+TLS for identity, and 5-Star Linked Data deployment via relative URIs over any mounted storage.

Virtuoso (open-source or Enterprise) with Conductor v1.00.8774+. Create a DAV folder with type Dynamic Resources. The SPARQL endpoint's 'Save resultset to WebDAV folder' option handles the rest.

Use OpenLink's WebID Generator at id.myopenlink.net/certgen or any compliant service. The WebID includes a TLS client certificate for identity verification against ODS-Briefcase ACLs.

Glossary

Key Terms (12)

DET (Dynamic Extended Type)

Virtuoso folder type that transforms content dynamically — SQL to RDF, SPARQL to CSV.

WebDAV

HTTP extension for filesystem operations — mountable by macOS, Windows, and Linux.

WebID

W3C standard for decentralized identity verification using TLS client certificates.

ODS-Briefcase

Virtuoso component mounting cloud storage as DET folders with WebID ACLs.

SPARQL

W3C RDF query language. Virtuoso can save results as dynamic, auto-refreshing documents.

ACL

Access Control List — permissions applied to folders/documents for read, write, execute.

Conductor

Browser-based Virtuoso admin UI — manages DAV folders, DET configs, and packages.

Content Negotiation

HTTP mechanism serving different representations based on client Accept headers.

RBAC

Role-Based Access Control — permissions via users and roles/groups.

ABAC

Attribute-Based Access Control — on-the-fly permission evaluation via visitor attributes.

LDP

Linked Data Protocol — W3C protocol for read-write Linked Data over HTTP.

Personal Data Pod

User-controlled data space with mounted storage services and WebID ACLs.

Step-by-Step

Using Virtuoso DET & ODS-Briefcase (10 Steps)

1

Install/Update Virtuoso

Deploy latest Virtuoso binary. Ensure Conductor v1.00.8774+ via System Admin → Packages.

2

Create a DET Folder

In Conductor → Web Application Server → Content Management → DAV location. Folder Type: Dynamic Resources. Assign ownership, grant +Read to Public.

3

Generate Dynamic SPARQL Document

SPARQL endpoint → Save resultset to WebDAV folder → enter filename, refresh interval, format → Run Query.

4

Access via WebDAV

Mount the DAV folder via WebDAV from your OS. Dynamic documents appear as local files for Excel, Tableau, Qlik Sense.

5

Install ODS-Briefcase

ODS-Briefcase (formerly ODrive) is a Virtuoso component. Install and configure via the Virtuoso Conductor.

6

Mount Cloud Storage

Use ODS-Briefcase to mount Google Drive, Dropbox, OneDrive, Box, S3. Each appears as a DET folder in your personal data space.

7

Set Up WebID ACLs

Apply ACLs to each mounted folder. Simplest: grant READ to visitors who verify their WebID. RBAC and ABAC supported.

8

Obtain a WebID

Generate at id.myopenlink.net/certgen or any WebID-compliant service. Provides TLS client certificate for identity verification.

9

Test Access

Visit mounted DET folders via WebDAV URLs. With valid WebID, ACLs permit READ. Accessible via HTTP, WebDAV, and LDP.

10

Deploy 5-Star Linked Data

Use relative URIs + content negotiation to deploy Linked Data over any mounted storage. Dokieli can use services for annotation storage.

Query

SPARQL Query Examples

Ready-to-run queries against the companion RDF graph via URIBurner SPARQL endpoint. SELECT uses text/x-html+tr; DESCRIBE/CONSTRUCT use text/x-html-nice-turtle.

1Entity Type Summary
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
SELECT ?type (COUNT(?s) AS ?count)
WHERE { GRAPH <VIRTUOSO_DET_GRAPH> { ?s rdf:type ?type } }
GROUP BY ?type ORDER BY DESC(?count)
▶ Open at linkeddata.uriburner.com/sparql
2Storage Services & Components
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX schema: <http://schema.org/>
SELECT ?service ?name ?type
WHERE { GRAPH <VIRTUOSO_DET_GRAPH> {
  { ?service rdf:type schema:Service ; schema:name ?name }
  UNION { ?service rdf:type schema:SoftwareApplication ; schema:name ?name }
} } ORDER BY ?name
▶ Open at linkeddata.uriburner.com/sparql
3DESCRIBE the Collection
DESCRIBE <https://medium.com/virtuoso-blog/dynamically-generating-documents-from-sparql-queries-7d6589505100#collection>
FROM <VIRTUOSO_DET_GRAPH>

DESCRIBE uses text/x-html-nice-turtle result format.

▶ Open at linkeddata.uriburner.com/sparql

Knowledge Graph Explorer