# Virtuoso DET Mesh-up — Dynamic Documents & Storage Access Control

**Author:** [Ted Thibodeau Jr](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fwww.linkedin.com%2Fin%2Fmacted%2F%23this) — Senior Support & Evangelism, OpenLink Software
**Sources:** [Article 1](https://medium.com/virtuoso-blog/dynamically-generating-documents-from-sparql-queries-7d6589505100) (May 2018) · [Article 2](https://medium.com/virtuoso-blog/taking-control-of-access-to-resources-stored-in-google-drive-dropbox-microsoft-onedrive-box-and-d25ab3dd27d9) (Jan 2018)
**RDF:** [Turtle](../rdf/virtuoso-det-meshup-deepseek_v4pro-1.ttl) | [JSON-LD](../rdf/virtuoso-det-meshup-deepseek_v4pro-1.jsonld)

---

## Overview

This knowledge graph meshes up two technical articles from the OpenLink Virtuoso Weblog. [Article 1](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fmedium.com%2Fvirtuoso-blog%2Fdynamically-generating-documents-from-sparql-queries-7d6589505100%23article1) demonstrates generating [dynamic documents](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fmedium.com%2Fvirtuoso-blog%2Fdynamically-generating-documents-from-sparql-queries-7d6589505100%23dynamicDocuments) from SPARQL queries via Virtuoso's [DET folders](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fmedium.com%2Fvirtuoso-blog%2Fdynamically-generating-documents-from-sparql-queries-7d6589505100%23detFolders). [Article 2](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fmedium.com%2Fvirtuoso-blog%2Fdynamically-generating-documents-from-sparql-queries-7d6589505100%23article2) shows how [ODS-Briefcase](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fmedium.com%2Fvirtuoso-blog%2Fdynamically-generating-documents-from-sparql-queries-7d6589505100%23odsBriefcase) mounts Google Drive, Dropbox, OneDrive, Box, and Amazon S3 as DET folders protected by [WebID](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fmedium.com%2Fvirtuoso-blog%2Fdynamically-generating-documents-from-sparql-queries-7d6589505100%23webID)-based ACLs. 433 triples, 10 FAQs, 12 glossary terms, 10 HowTo steps.

---

## The Two Articles

- **[Dynamic SPARQL Document Generation](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fmedium.com%2Fvirtuoso-blog%2Fdynamically-generating-documents-from-sparql-queries-7d6589505100%23article1)** — DET folders generate change-sensitive documents from SPARQL queries. Formats: CSV, HTML, JSON, Turtle. Accessible via HTTP/WebDAV for Excel, Tableau, Qlik Sense. (May 2018)
- **[Storage Access Control via WebID ACLs](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fmedium.com%2Fvirtuoso-blog%2Fdynamically-generating-documents-from-sparql-queries-7d6589505100%23article2)** — ODS-Briefcase mounts cloud storage as DET folders with RBAC/ABAC. WebID-based identity verification for decentralized access. (Jan 2018)

---

## Storage Services & Components

| Service | Notes |
|---------|-------|
| [Google Drive](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fmedium.com%2Fvirtuoso-blog%2Fdynamically-generating-documents-from-sparql-queries-7d6589505100%23googleDrive) | MIME types not properly handled; normalized by ODS-Briefcase |
| [Dropbox](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fmedium.com%2Fvirtuoso-blog%2Fdynamically-generating-documents-from-sparql-queries-7d6589505100%23dropbox) | Partial MIME support; social network folder sharing |
| [OneDrive](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fmedium.com%2Fvirtuoso-blog%2Fdynamically-generating-documents-from-sparql-queries-7d6589505100%23oneDrive) | Requires macOS 10.10+ |
| [Box](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fmedium.com%2Fvirtuoso-blog%2Fdynamically-generating-documents-from-sparql-queries-7d6589505100%23box) | WebDAV + WebID ACLs |
| [Amazon S3](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fmedium.com%2Fvirtuoso-blog%2Fdynamically-generating-documents-from-sparql-queries-7d6589505100%23amazonS3) | Only service properly handling MIME types |
| [Virtuoso](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fvirtuoso.openlinksw.com%2F%23this) | Multi-model hybrid RDBMS with DET, SPARQL, WebDAV, ODS-Briefcase |

---

## FAQ

### [1. What are DET folders?](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fmedium.com%2Fvirtuoso-blog%2Fdynamically-generating-documents-from-sparql-queries-7d6589505100%23q1)
Dynamic Extended Type folders transform content at request time — SQL-to-XML, SQL-to-RDF, SPARQL-to-CSV. DET applies HTTP content negotiation.

### [2. How does dynamic SPARQL doc generation work?](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fmedium.com%2Fvirtuoso-blog%2Fdynamically-generating-documents-from-sparql-queries-7d6589505100%23q2)
Save SPARQL results to a DET folder. With auto-refresh, documents update when data changes. Formats: CSV, HTML, JSON, Turtle.

### [3. What storage services can Virtuoso mount?](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fmedium.com%2Fvirtuoso-blog%2Fdynamically-generating-documents-from-sparql-queries-7d6589505100%23q3)
Google Drive, Dropbox, OneDrive, Box, Amazon S3 via ODS-Briefcase. Each appears as a WebDAV mount point.

### [4. What is WebID?](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fmedium.com%2Fvirtuoso-blog%2Fdynamically-generating-documents-from-sparql-queries-7d6589505100%23q4)
W3C standard for decentralized identity using TLS certificates. ACLs grant access based on WebID verification.

### [5. What output formats are supported?](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fmedium.com%2Fvirtuoso-blog%2Fdynamically-generating-documents-from-sparql-queries-7d6589505100%23q5) · [6. How do desktop tools access?](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fmedium.com%2Fvirtuoso-blog%2Fdynamically-generating-documents-from-sparql-queries-7d6589505100%23q6) · [7. MIME type issues?](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fmedium.com%2Fvirtuoso-blog%2Fdynamically-generating-documents-from-sparql-queries-7d6589505100%23q7) · [8. Decentralized ecosystem?](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fmedium.com%2Fvirtuoso-blog%2Fdynamically-generating-documents-from-sparql-queries-7d6589505100%23q8) · [9. Prerequisites?](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fmedium.com%2Fvirtuoso-blog%2Fdynamically-generating-documents-from-sparql-queries-7d6589505100%23q9) · [10. Get a WebID?](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fmedium.com%2Fvirtuoso-blog%2Fdynamically-generating-documents-from-sparql-queries-7d6589505100%23q10)

---

## HowTo: Using Virtuoso DET & ODS-Briefcase (10 Steps)

1. **[Install/Update Virtuoso](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fmedium.com%2Fvirtuoso-blog%2Fdynamically-generating-documents-from-sparql-queries-7d6589505100%23step1)** — Conductor v1.00.8774+
2. **[Create a DET Folder](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fmedium.com%2Fvirtuoso-blog%2Fdynamically-generating-documents-from-sparql-queries-7d6589505100%23step2)** — Folder Type: Dynamic Resources
3. **[Generate Dynamic SPARQL Document](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fmedium.com%2Fvirtuoso-blog%2Fdynamically-generating-documents-from-sparql-queries-7d6589505100%23step3)** — Save resultset to WebDAV folder
4. **[Access via WebDAV](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fmedium.com%2Fvirtuoso-blog%2Fdynamically-generating-documents-from-sparql-queries-7d6589505100%23step4)** — Mount as local drive from any OS
5. **[Install ODS-Briefcase](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fmedium.com%2Fvirtuoso-blog%2Fdynamically-generating-documents-from-sparql-queries-7d6589505100%23step5)** — Virtuoso component for cloud storage
6. **[Mount Cloud Storage](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fmedium.com%2Fvirtuoso-blog%2Fdynamically-generating-documents-from-sparql-queries-7d6589505100%23step6)** — Google Drive, Dropbox, OneDrive, Box, S3
7. **[Set Up WebID ACLs](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fmedium.com%2Fvirtuoso-blog%2Fdynamically-generating-documents-from-sparql-queries-7d6589505100%23step7)** — READ access for WebID-verified visitors
8. **[Obtain a WebID](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fmedium.com%2Fvirtuoso-blog%2Fdynamically-generating-documents-from-sparql-queries-7d6589505100%23step8)** — id.myopenlink.net/certgen
9. **[Test Access](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fmedium.com%2Fvirtuoso-blog%2Fdynamically-generating-documents-from-sparql-queries-7d6589505100%23step9)** — Via HTTP, WebDAV, LDP
10. **[Deploy 5-Star Linked Data](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fmedium.com%2Fvirtuoso-blog%2Fdynamically-generating-documents-from-sparql-queries-7d6589505100%23step10)** — Relative URIs over any mounted storage

---

## Glossary

- **[DET](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fmedium.com%2Fvirtuoso-blog%2Fdynamically-generating-documents-from-sparql-queries-7d6589505100%23termDET)** — Dynamic Extended Type: transforms content at request time
- **[WebDAV](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fmedium.com%2Fvirtuoso-blog%2Fdynamically-generating-documents-from-sparql-queries-7d6589505100%23termWebDAV)** — HTTP filesystem extension mountable by all major OSes
- **[WebID](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fmedium.com%2Fvirtuoso-blog%2Fdynamically-generating-documents-from-sparql-queries-7d6589505100%23termWebID)** — W3C decentralized identity via TLS certificates
- **[ODS-Briefcase](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fmedium.com%2Fvirtuoso-blog%2Fdynamically-generating-documents-from-sparql-queries-7d6589505100%23termODSBriefcase)** — Virtuoso cloud storage virtualization
- **[SPARQL](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fmedium.com%2Fvirtuoso-blog%2Fdynamically-generating-documents-from-sparql-queries-7d6589505100%23termSPARQL)** — W3C RDF query language
- **[ACL](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fmedium.com%2Fvirtuoso-blog%2Fdynamically-generating-documents-from-sparql-queries-7d6589505100%23termACL)** — Access Control List for folder/document permissions
- **[Conductor](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fmedium.com%2Fvirtuoso-blog%2Fdynamically-generating-documents-from-sparql-queries-7d6589505100%23termConductor)** — Browser-based Virtuoso admin UI
- **[Content Negotiation](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fmedium.com%2Fvirtuoso-blog%2Fdynamically-generating-documents-from-sparql-queries-7d6589505100%23termContentNegotiation)** — HTTP Accept header-based format serving
- **[RBAC](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fmedium.com%2Fvirtuoso-blog%2Fdynamically-generating-documents-from-sparql-queries-7d6589505100%23termRBAC)** — Role-Based Access Control
- **[ABAC](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fmedium.com%2Fvirtuoso-blog%2Fdynamically-generating-documents-from-sparql-queries-7d6589505100%23termABAC)** — Attribute-Based Access Control
- **[LDP](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fmedium.com%2Fvirtuoso-blog%2Fdynamically-generating-documents-from-sparql-queries-7d6589505100%23termLDP)** — Linked Data Protocol for read-write over HTTP
- **[Personal Data Pod](https://linkeddata.uriburner.com/describe/?url=https%3A%2F%2Fmedium.com%2Fvirtuoso-blog%2Fdynamically-generating-documents-from-sparql-queries-7d6589505100%23termPersonalDataPod)** — User-controlled data space with WebID ACLs

---

*Generated 2026-05-25 using kg-generator and rdf-infographic-skill via Claude Opus 4.7 on Claude Code. Entity links via URIBurner. 433 triples.*
