How to change default describe mode in faceted browser?

Hi all,

I’m experiencing troubles with the describe service of the faceted browser: I have a URI (denoting a dataset) for which it takes forever to the get result of the describe.

The problem, I guess, is that 54 million resources have an rdfs:isDefinedBy property to that URI, and the default describe mode probably tries to fetch them all as described here.

So here is my question: how can I configure the describe service to use mode SPO (retrive only triples where the URI is a subject) as a default?

Thx in advance for any help. Regards,

Version used: Virtuoso OS version 07.20.3229 as of Mar 24 2020, on Linux (x86_64-unknown-linux-gnu), Single-Server Edition (62 GB total memory)


Virtuoso implements a sql:describe-mode “SPO” mode for describe queries as detailed in the documentation link.

Also, please ensure your Virtuoso instance has been suitably performance tuned for RDF usage as detailed in the documentation link.

Dear Williams, thx for your quick reply.

My point is that "sql:describe-mode “SPO” is not the default describe mode.
Where I submit this query on my endpoint:
select * where { <> ?p ?o }
I get the response instantly.

When I submit a describe query on the same URI, it takes forever, if it completes at all.

Hence my assumption that the URI is not only looked for as a subject (SPO) but also as an object. How can I change this default behaviour?


An entry can be added to the DB.DBA.SYS_SPARQL_HOST table specifying a Virtuoso pragma define that is to be added to all queries executed via the SPARQL endpoint as detailed in the Default and Named Graphs documentation.

We have found that the CBD (Concise Bound Description) rather than SPO describe mode is required for describe query to returns results against your Virtuoso instance ie"CBD" describe+<> &should-sponge=&format=text%2Fhtml&timeout=0&debug=on&run=+Run+Query+

You can thus change the default behaviour of the SPARQL endpoint to automatically use the define sql:describe-mode "CBD" define pragma or any other by adding it to the SH_DEFINES column of the DB.DBA.SYS_SPARQL_HOST table as a SQL insert query:

VALUES ('*',null,null,null,'DEFINE sql:describe-mode "CBD"')

Thanks a lot for the tip on SYS_SPARQL_HOST. That indeed works when I submit a describe query directly to the endpoint.

Still, when I use the faceted browser and associated HTML-based describe service, it still tries to get all other triples (those where the URI is the object). See this one:

Any ideas?


Please also look at setting the timeout used by the Faceted Browsing Engine.