Virtuoso has two proprietary web page scripting formats. VSP consists of static HTML or XML with interspersed SQL procedure statements and expressions. It is fairly similar to PHP but has the added convenience of having all SQL inline, so as not to require use of any data access API for database driven web sites. VSPX is an XML-based, object-oriented dynamic web page language similar to Microsoft's ASP .Net.
Examples and tutorials on both formats come with the Virtuoso source distribution.
Each VSP page becomes a SQL stored procedure that outputs its static content to the user agent and executes the statements delimited with the
((The macro extension "vsp" is not available on this server))processing instruction. SQL functions are provided for printing output to the user agent with varying form of escaping etc. Request headers and URL and POST parameters are passed as SQL arrays to the page and can be accessed with special accessor functions. VSP is simple and efficient.
VSPX is a more complex object-oriented web-scripting language. It offers much more automation than VSP but has a steeper learning curve. The key features are:
- Object-oriented controls for forms, fields, validation, optional and repeating groups etc.
- Scrollable and updatable data grid controls
- Session management and login controls
- Possibility for XSLT macroexpansion at page compile time, providing for automatic code generation.
- Support for reusable custom controls.
A VSPX page is an XML file with XML elements marking the control hierarchy. The controls are scriptable, with SQL code to be run at initialization, data bind, processing POST data, before rendering and finally when rendering, i.e. sending the page's output to the user agent.
To start developing a Virtuoso-driven web application, one simply designates a virtual directory as executable and specifies a SQL account on behalf of which dynamic content hosted in it will run. After this, one simply writes the pages into the file system or WebDAV, depending on whether the virtual drectory is designated as file system- or WebDAV-based. The pages can be tested with a web browser as soon as written.
Applications can be deployed using the Virtuoso VAD application package format or simply as zip or tar-balls of files.