# 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.*