This is a diff between 1.3 and 1.4 revisions:

and <nowiki>CXML_redir_for_hrefs</nowiki> query string parameters.variables <nowiki>redir_for_subjs</nowiki> and <nowiki>redir_for_hrefs</nowiki> take the same values as the <nowiki>CXML_redir_for_subjs</nowiki> . . .
>/verbatim>
exec (qry, sqls, msg, vector(), 1, meta, result); sqls := '00000'; qry := 'sparql define output:format "CXML;QRCODE" define sql:describe-mode "SPO" describe ?s1 where { . . . } '; connection_set ('SPARQL_CXML_redir_for_hrefs', redir_for_hrefs); connection_set ('SPARQL_CXML_redir_for_subjs', redir_for_subjs);and <nowiki>SPARQL_CXML_redir_for_hrefs</nowiki>. In the code extract below:
>verbatim>
available. To specify the required CXML link typing in Virtuoso/PL, set the connection variables <nowiki>SPARQL_CXML_redir_for_subjs</nowiki> When executing a SPARQL query directly from Virtuoso/PL, the controls used by the /sparql and /fct UIs for CXML link styling are not ---++++Controlling Link Typing through Virtuoso/PL#AncLinkTypeVirtuosoPL * '<nowiki>LOCAL_RDFXML</nowiki>' : Sets the "External Description Resource (RDFXML)" option * '<nowiki>LOCAL_JSON</nowiki>' : Sets the "External Description Resource (JSON)" option * '<nowiki>LOCAL_NTRIPLES</nowiki>' : Sets the "External Description Resource (NTRIPLES)" option * '<nowiki>LOCAL_TTL</nowiki>' : Sets the "External Description Resource (Turtle)" option * '121' : Sets the "External resource link" option * null : Sets the "No link out" optionone of the following values:Parameter <nowiki>CXML_redir_for_subjs</nowiki> corresponds to the 'External resource link' or 'Entity Link Style' dropdown. It can take * '<nowiki>LOCAL_RDFXML</nowiki>' : Sets the "External Description Resource (RDFXML)" option * '<nowiki>LOCAL_JSON</nowiki>' : Sets the "External Description Resource (JSON)" option * '<nowiki>LOCAL_NTRIPLES</nowiki>' : Sets the "External Description Resource (NTRIPLES)" option * '<nowiki>LOCAL_CXML</nowiki>' : Sets the "External Description Resource (CXML)" option * '<nowiki>LOCAL_TTL</nowiki>' : Sets the "External Description Resource (Turtle)" option * '<nowiki>LOCAL_PIVOT</nowiki>' : Sets the "External Faceted Navigation Links" option * '121' : Sets the "External Resource Links" option * null : Sets the "Local Faceted Navigation Links" optiondropdown. It can take one of the following values:Query string parameter <nowiki>CXML_redir_for_hrefs</nowiki> corresponds to the 'Facet link behaviour' or 'Attribute and Value Link Style' The link styling options provided by the /sparql UI ultimately reduce to two query string parameters in the SPARQL query URI it builds. ---++++Controlling Link Typing through /sparql Query String Parameters#AncLinkTypeQryStringParam * The wrapper URI forms the href of the data item name link, with the anchor text provided by the data item name.text/plain, application/rdf+json or application/rdf+xml</em>&gt;' (the full URL encoding is not shown) * The wrapper URI takes the form 'http://&lt;localhost&gt;/sparql?query=describe+&lt;URI&gt;&format=&lt;<em>one of: text/rdf+n3, N-Triples, JSON or RDF/XML. * Replaces the data item URI by a wrapper URI to perform a SPARQL DESCRIBE of the date item, returning the result as TTL, * How?description resource (document) in the chosen format.views to find data items of specific interest. Once the data item of interest is located, you can use this link to access a data item * Allows a <nowiki>HtmlPivotViewer</nowiki> user to search, sort and filter across image tile, bar graph, data grid and map * Why? * Generates links that provide access to data item description resources in the chosen format, Turtle, N-Triples, JSON or RDF/XML. * What? * External Description Resource (TTL/NTRIPLES/JSON/RDFXML) * The wrapper URI forms the href of the data item name link, with the anchor text provided by the data item name.full URL encoding is not shown) * The wrapper URI takes the form 'http://&lt;localhost&gt;/about/'&lt;<em>one of:RDF or HTML</em>&gt;'/?url=&lt;URI&gt;' (the Microdata or using the description.vsp Virtuoso Server Page. * Replaces the data item URI by a wrapper URI to invoke the Virtuoso Sponger service, then renders the result as either HTML * How?about the data item extracted from other sources.views to find data items of specific interest. Once the data item of interest is located, you can use these links to browse information * Allows a <nowiki>HtmlPivotViewer</nowiki> user to search, sort and filter across image tile, bar graph, data grid and map * Why?as either an HTML rendition of the the RDF data using description.vsp or HTML Microdata format. * Generates links to information about the data item extracted from a variety of sources using the Virtuoso Sponger service * What? * External Sponged Data Links(RDF/HTML) * The wrapper URI forms the href of the data item name link, with the anchor text provided by the data item name. * The wrapper URI takes the form 'http://&lt;localhost&gt;/describe/?url=&lt;URI&gt;' (the full URL encoding is not shown)using the description.vsp Virtuoso Server Page. * Replaces the data item URI by a wrapper URI to perform a SPARQL DESCRIBE of the data item, then renders the result in HTML * How?description of the data item in a human readable form.views to find data items of specific interest. Once the data item of interest is located, you can use these links to browse the RDF * Allows a <nowiki>HtmlPivotViewer</nowiki> user to search, sort and filter across image tile, bar graph, data grid and map * Why? * Generates links to a default HTML rendering of the RDF description of the selected data item. * What? * External Description Links * The URI forms the href with the anchor text provided by the item name. * Uses the unadorned URI as the data item href. * How?views to find data items of specific interest, and then exit to an external resource via the data item name link. * Allows a <nowiki>HtmlPivotViewer</nowiki> user to search, sort and filter across image tile, bar graph, data grid and map * Why?description page for the selected data item reference (URI). * Generates links that enable a <nowiki>HtmlPivotViewer</nowiki> user to exit the local CXML data island to an external * What? * External Resource Link * The href value from the original query is ignored. * How?views to find data items of specific interest. * Allows a <nowiki>HtmlPivotViewer</nowiki> user to search, sort and filter across image tile, bar graph, data grid and map * Why?of the <nowiki>HtmlPivotViewer</nowiki> display. The title is not a link. * There is no value set for each Item's href. The Item names are used as the title at the top of the info panel on the right * What? * No link out * Permitted Values: * Sets the CXML type of the item URIs to String or Link, optionally performing a DESCRIBE on the subject'External resource link' or 'Entity Link Style' Dropdown:executing SPARQL from any of these services.Pivot Bridge and <nowiki>HtmlPivotViewer</nowiki> (via the 'Edit' feature) also expose the same options. Pick one of these options when The full set of link-typing options for the link behind the entity titles that are available in the /sparql UI are detailed below. The Facet ---+++++Entities * The wrapper URI forms the href of the CXML Link, with the anchor text provided by the entity's label.the full URL encoding is not shown) * The wrapper URI takes the form 'http://&lt;localhost&gt;/sparql?query=describe+&lt;URI&gt;&format=text/cxml+qrcode' (again * Replaces the entity URI by a wrapper URI to perform a SPARQL DESCRIBE of the entity, returning the result as CXML. * How?resource for use elsewhere.views to find data items of specific interest. Once the data item of interest is located, you can use this link type to access a CXML * Allows a <nowiki>HtmlPivotViewer</nowiki> user to search, sort and filter across image tile, bar graph, data grid and map * Why?non-Virtuoso hosted. * Provides links to access CXML-based resources usable by other <nowiki>HtmlPivotViewer</nowiki> instances i.e, Virtuoso or * What? * External Description Resource (CXML) * The wrapper URI forms the href of the CXML Link, with the anchor text provided by the entity's label.text/plain, application/rdf+json or application/rdf+xml</em>&gt;' (the full URL encoding is not shown) * The wrapper URI takes the form 'http://&lt;localhost&gt;/sparql?query=describe+&lt;URI&gt;&format=&lt;<em>one of: text/rdf+n3, JSON, or RDF/XML. * Replaces the entity URI by a wrapper URI to perform a SPARQL DESCRIBE of the entity, returning the result as TTL, N-Triples, * How?description resource (document) in the chosen format.views to find data items of specific interest. Once the data item of interest is located, you can use this link to access a data item * Allows a <nowiki>HtmlPivotViewer</nowiki> user to search, sort and filter across image tile, bar graph, data grid and map * Why? * Generates links that provide access to data item description resources in the chosen format, Turtle, N-Triples, JSON or RDF/XML. * What? * External Description Resource (TTL/NTRIPLES/JSON/RDFXML) * The wrapper URI forms the href of the CXML Link, with the anchor text provided by the entity's label.(the full URL encoding is not shown) * The wrapper URI takes the form 'http://&lt;localhost&gt;/about/'&lt;<em>one of:RDF or HTML</em>&gt;'/?url=&lt;URI&gt;' Microdata or using the description.vsp Virtuoso Server Page. * Replaces the entity URI by a wrapper URI to invoke the Virtuoso Sponger service, then renders the result as either HTML * How?about the entities extracted from other sources.views to find data items of specific interest. Once the data item of interest is located, you can use these links to browse information * Allows a <nowiki>HtmlPivotViewer</nowiki> user to search, sort and filter across image tile, bar graph, data grid and map * Why?the Virtuoso Sponger service as either an HTML rendition of the the RDF data using description.vsp or HTML Microdata format. * Generates links to information about the data item attribute values or entities extracted from a variety of sources using * What? * External Sponged Data Links(RDF/HTML) * The wrapper URI forms the href of the CXML Link, with the anchor text provided by the entity's label. * The wrapper URI takes the form 'http://&lt;localhost&gt;/describe/?url=&lt;URI&gt;' (the full URL encoding is not shown)using the description.vsp Virtuoso Server Page. * Replaces the entity URI by a wrapper URI to perform a SPARQL DESCRIBE of the entity, then renders the result in HTML * How?RDF description of the entities in a human readable form.map views to find data items of specific interest. Once the data item of interest is located, you can use these links to browse the * Allows a <nowiki>HtmlPivotViewer</nowiki> user to search, sort and filter across image tile, bar graph, data grid and * Why? * Generates links to a default HTML rendering of the RDF description of the attribute values or entities. * What? * External Description Links * The wrapper URI forms the href of the CXML Link, with the anchor text provided by the entity's label.(the full URL encoding is not shown)'http://&lt;localhost&gt;/<nowiki>HtmlPivotViewer</nowiki>?url=http://&lt;localhost&gt;//sparql?query=describe+&lt;URI&gt;&format=text/cxml+qrcode' * The wrapper URI takes the form launching <nowiki>HtmlPivotViewer</nowiki> to display it. * Replaces the entity URI by a wrapper URI to perform a SPARQL DESCRIBE of the entity, returning the result as CXML and * How?new <nowiki>HtmlPivotViewer</nowiki> pages via properties of your current data item of interest.map views to find data items of specific interest. Once the data item of interest is located, you also have the option to open up * Allows a <nowiki>HtmlPivotViewer</nowiki> user to search, sort and filter across image tile, bar graph, data grid and * Why?values). * Generates links that enable faceted navigation/browsing via object property values (those that have URI/IRI reference * What? * External Faceted Navigation Links * The URI forms the href of the CXML Link, with the anchor text provided by the entity's label. * Uses the unadorned URI directly as the link href, keeping the facet type as CXML Link. * How?an additional exit to the data item name link.map views to find data items of specific interest, and then exit to an external resource via property values. This feature provides * Allows a <nowiki>HtmlPivotViewer</nowiki> user to search, sort and filter across image tile, bar graph, data grid and * Why?description page for the selected data item reference (URI). * Generates links that enable a <nowiki>HtmlPivotViewer</nowiki> user to exit the local CXML data island to an external * What? * External Resource Linksentity property which is a virtrdf:label, as defined by graph (inference context) virtrdf-label.String and replaces the facet value with any label associated with the entity identified by the URI. In this context a label is any * Instead of using the URI as the facet value with a facet type of CXML Link, this option changes the facet type to CXML * How?map views to find data items of specific interest. * Allows a <nowiki>HtmlPivotViewer</nowiki> user to search, sort and filter across image tile, bar graph, data grid and * Why?of the <nowiki>HtmlPivotViewer</nowiki> display.to exit the CXML data island they can only do so via the link behind the data item's name at the top of the info panel on the right * Generates links that enable faceted navigation/browsing within the local CXML data island hosted by page. If users need * What? * Local Faceted Navigation Links * Permitted Values: * Sets the CXML type of URIs to String or Link, optionally performing a DESCRIBE on the subject'Facet link behaviour' or 'Attribute and Value Link Style' Dropdown:(via the 'Edit' feature) also expose the same options. Pick one of these options when executing SPARQL from any of these services.The full set of link-typing options available in the /sparql UI are detailed below. The Facet Pivot Bridge and <nowiki>HtmlPivotViewer</nowiki> ---+++++Facet Values---++++Link Typing Options#AncLinkTypeUIOptsallow you to, for example, do a SPARQL DESCRIBE on the the item.not used for filtering so there is no benefit to defaulting to a CXML String. The default value is 'External Resource Link'. Other options the /sparql UI the option is labelled 'External resource link' and in the Pivot Edit UI it is labelled 'Entity Link Style'. The value is The href associated with each entity that becomes the link behind the title in the Info Panel can also be controlled in a similar way. In where auto-labels can be found, these provide the anchor text.A property with <nowiki>virtcxml:FacetType</nowiki> "Link" will be typed as Link only if all its values are URIs and none are literals. Again, virtcxml:FacetDescription "Related item" .
>/verbatim>
virtcxml:FacetType "Link" ; a virtcxml:FacetCategoryPattern ;rdfs:seeAlso
>verbatim>
does this for rdfs:seeAlso,by adding an entry for the property in graph virtcxml:, assigning it a <nowiki>virtcxml:FacetType</nowiki> of "Link". The installed virtcxml: Should you want to override the 'Facet link behaviour' dropdown settings and force the type of a suitable property to Link, you can do so </Facet>
>/verbatim>
. . . Name="almonds"/> <Link Href="http://kingsley.idehen.net/about/id/entity/http/www.bbc.co.uk/food/recipes/almondymincepies_14566#hrecipe55g%2F2oz%20ground%20almonds%20" . . . Name="cream"/> <Link Href="http://kingsley.idehen.net/about/id/entity/http/www.bbc.co.uk/food/recipes/almondymincepies_14566#hrecipecream%2C%20custard%2C%20or%20brandy%20butter%2C%20to%20serve" <Facet Name="dv:ingredient"> . . . </FacetCategories> . . . <FacetCategory Name="dv:ingredient" Type="Link" d1p1:IsFilterVisible="false"/> . . . <FacetCategories>
>verbatim>
>Collection SchemaVersion="1.0" Name="SPARQL Query Results">
If 'Facet link behaviour' or 'Attribute and Value Link Style' is set to 'External Resource Links', the output for dv:ingredient becomes </Facet>
>/verbatim>
. . . <String Value="almonds"/> . . . <String Value="cream"/> <Facet Name="dv:ingredient"> </Facet> <String Value="10 to 30 mins"/> <Facet Name="dv:cookTime"> </Facet> <String Value="Silvana Franco"/> <Facet Name="dv:author"> <Facets> <Item Id="0" Img="#0" Href="http://kingsley.idehen.net/about/id/entity/http/www.bbc.co.uk/food/recipes/almondymincepies_14566#hrecipe" Name="Almondy mince pies"> <Items ImgBase="http://kingsley.idehen.net/DeepZoomCache/cxml35073.dzc"> </FacetCategories>1d0 <FacetCategory Name="dv:yield" Type="String"/> <FacetCategory Name="dv:name" Type="String"/> <FacetCategory Name="dv:instructions" Type="LongString" d1p1:IsFilterVisible="false"/> <FacetCategory Name="dv:ingredient" Type="String"/> <FacetCategory Name="dv:cookTime" Type="String"/> <FacetCategory Name="dv:author" Type="String"/> <FacetCategories>
>verbatim>
>Collection SchemaVersion="1.0" Name="SPARQL Query Results">
the raw CXML for the dv:ingredient facetOur recipe example used the default 'Local Faceted Navigation Link' option, so the properties are CXML Strings. This can be seen in http://dbpedia.org/resource/Semantic+Web, via the filter panel.foaf:topicOfInterest as Link would prevent a user from selecting a group of people with the same interest, e.g. on properties typed as CXML Link; HtmlPivotViewer does not display Link properties in the filter panel. Typing a facet like drop down is labelled 'Attribute and Value Link Style'. The choice of CXML String as the default is because it isn't possible to filter /sparql UI the dropdown 'Facet link behaviour' controls the target CXML type used by auto-labelling. In the Pivot Edit interface, the can also be typed as CXML Link, if required, with the auto-label acting as the anchor text and the property URI as the href. In the The default setting for the auto-label feature is to set the type of the replacement labels to CXML String. However, the property URIs ---+++Link Typing#AncLinkTypewill in future perform this kind of filtering automatically through detection of the locale being used by the user agent.At present the onus is on the query writer to use language tags in the base query, but it is anticipated that <nowiki>SparqlCxml</nowiki> SELECT * WHERE { ?s dc:subject ?subject ; ... FILTER ( lang(?subject) = "EN" ) }
>/verbatim>
DESCRIBE ?s WHERE { ?s a bibo:Document ; dc:subject "computer science"@en }CXML generation can then restrict results, and hence labels, to a particular language by specifying the appropriate language tag. e.g.
>verbatim>
Graph virtrdf-label declares dc:title rdfs:subPropertyOf virtrdf:label; so that dc:title serves as a potential label. Queries used for dc:title "The Cruelty of Really Teaching Computer Science"@en .
>/verbatim>
dc:subject "informatique"@fr ; dc:subject "computer science"@en ; dc:creator "E. W. Dijkstra"@en ;:EWD1036 a bibo:Document ;multi-lingual scenarios to localize property values, as illustrated by this made-up extract
>verbatim>
In order to exploit URI to label conversion to maximum effect, it is important that ontologies and instance data use language tags in ---++++Label Localization#AncLabelLocalizationlabel for the anchor text. Auto-label extraction is only done when [[#AncFacetTypeAutoDetection][auto-type detection]] takes place.for facet "Ingredient" will result in the facet values using a URI for both the Link's anchor text and href, instead of an inferred virtcxml:FacetType "Link" .
>/verbatim>
virtcxml:FacetName "Ingredient" ; a virtcxml:FacetCategoryPattern ;dv:ingredient. . .prefix dv: <http://rdf.data-vocabulary.org/>Auto-label extraction for URIs will *not* be performed if a facet is explicitly typed as CXML Link in graph virtcxml. An entry such as
>verbatim>
*Note*:<br/>}
>/verbatim>
virtcxml:FacetDescription "A facet for use as an item image" . virtcxml:FacetType "Item/@virt:Image" ; a virtcxml:FacetCategoryPattern ; dv:photo{insert data into virtcxml:prefix dv: <http://rdf.data-vocabulary.org/>sparql
>verbatim>
[[http://www.w3.org/Submission/SPARQL-Update/][SPARUL]] statement:the DZC are provided by dv:photo, an appropriate entry was added to graph virtcxml using a simple a SELECT. It is used to ensure each returned recipe has an accompanying image. For this DESCRIBE, in order to specify that the images for Also note that in the above DESCRIBE query, ?image functions as an ordinary variable, not a reserved query variable, as is the case with | <nowiki>http://rdf.data-vocabulary.org/name</nowiki> | <nowiki>http://www.w3.org/2000/01/rdf-schema#subPropertyOf</nowiki> | <nowiki>http://www.openlinksw.com/schemas/virtrdf#label</nowiki> || *s* | *p* | *o* |includes in its outputSELECT * from <virtrdf-label> WHERE {?s ?p ?o}
>/verbatim>
>verbatim>
ingredient URI. In order for this to happen, the virtrdf-label inference context declares dv:name as an rdfs:subPropertyOf virtrdf:label.and which reveals that the auto-labelling has used property &lt;<nowiki>http://rdf.data-vocabulary.org/name</nowiki>&gt; in place of the | <nowiki>http://rdf.data-vocabulary.org/amount</nowiki> | 55g/2oz ground almonds || <nowiki>http://rdf.data-vocabulary.org/name</nowiki> | almonds || <nowiki>http://www.w3.org/1999/02/22-rdf-syntax-ns#type</nowiki> |<nowiki>http://rdf.data-vocabulary.org/Ingredient</nowiki> || *p* | *o* |which returns SELECT * WHERE { <http://kingsley.idehen.net/about/id/entity/http/www.bbc.co.uk/food/recipes/almondymincepies_14566#hrecipe55g%2F2oz%20ground%20almonds%20> ?p ?o}
>/verbatim>
>verbatim>
description of the ingredient 'almonds' is given by:Notice that the values for facet dv:ingredient are labels, not URIs. The ingredient URIs have been hidden by the auto-labelling. The full RDF
>img src="%ATTACHURLPATH%/recipe_pvt_string_facets.png" style="wikiautogen"/>
generates a query result URI which when passed to <nowiki>HtmlPivotViewer</nowiki> results in
>img src="%ATTACHURLPATH%/recipe_qry_string_facets.jpg" style="wikiautogen"/>
and executing the illustrated queryThe next example shows how the aesthetics of a recipe description can be improved using auto-labels. Starting from the Conductor's /sparql UI the virtrdf-label inference context.for facet names set using the <nowiki>virtcxml:FacetName</nowiki> property, before querying the local quad store for labels revealed through is used as a property name is place of "dc:creator". When searching for auto-labels, <nowiki>SparqlCxml</nowiki> looks first in graph virtcxml: property (i.e. facet) name rather than use the [[http://en.wikipedia.org/wiki/CURIE][CURIE]] format of the property URI. For example, "Creator" attempt to infer such labels automatically. Similarly for property URIs, Virtuoso will attempt to find the property's label and use this for the rdfs:label (or virtrdf:label) patterns, such as "?kingdom rdfs:label ?kname . ?habitat rdfs:label ?hname ." as illustrated above, Virtuoso will When handling property values which are URIs, rather than require the query to convert these URIs to labels through the inclusion of additional ---++++Automatic Labels#AncAutoLabelsto rdfs:label could be replaced by virtrdf:label.By including the pragma 'define input:inference "virtrdf-label" before the last query above, label inferencing is enabled and any reference ...
>/verbatim>
dcterms:title rdfs:subPropertyOf <http://www.openlinksw.com/schemas/virtrdf#label>rdfs:label rdfs:subPropertyOf <http://www.openlinksw.com/schemas/virtrdf#label>used for labels as being a subproperty of virtrdf:label. e.g.
>verbatim>
virtrdf-label, specifically for inferring property labels. The context, defined in graph virtrdf-label, declares many properties routinely approach to the problem, particularly where a collection may consist of more than one entity type. Virtuoso defines an inference context, The last example showed rdfs:label being used to supply human-friendly labels for some properties. Inferencing provides a more generic ---++++Exploiting Inferencing#AncExploitingInferencing
>img src="%ATTACHURLPATH%/item_name2.jpg" style="wikiautogen"/>
>br/>
>br/>
>img src="%ATTACHURLPATH%/item_name1.jpg" style="wikiautogen"/>
replacing the aardvark URI by the much more readable 'Aardvark'.is different because <nowiki>HtmlPivotViewer</nowiki> orders on <nowiki>virtcxml:FacetHabitat</nowiki> in the first case and
>nowiki>virtcxml:FacetHname</nowiki> in the second.) Those below show the impact of ?name on the item name in the Info panel,
The screenshot above right shows the effect of ?hname in the <nowiki>HtmlPivotViewer</nowiki> Filter panel. (The order of the images [[http://uriburner.com/HtmlPivotViewer/?url=http%3A%2F%2Furiburner.com%2Fc%2FBGT7Z4F%23%24view%24%3D1][View Pivot collection]]limit 2500
>/verbatim>
?habitat rdfs:label ?hname} ?kingdom rdfs:label ?kname. OPTIONAL {?s foaf:depiction ?image.} rdfs:label ?name;
>http://purl.org/ontology/wo/livesIn> ?habitat.
WHERE {?s <http://purl.org/ontology/wo/kingdom> ?kingdom; SELECT DISTINCT ?s as ?href ?name ?kname ?image ?hname
>verbatim>
be recast to retrieve labels attached to properties through the rdfs:label predicate:exposed in the Filter panel for filtering, whereas facets of type CXML String are. In order to achieve the desired effect, the query could using CXML String makes for a better user experience and more searchable collections. The reason being that facets of type CXML Link are not such as rdfs:seeAlso, it may be desirable to type the property as CXML Link, and use the property label for the anchor text, in most cases One option would be to display a property's label in place of its URI and keep the property type as CXML String. While for some properties, URIs should be hidden as far as possible.which while great for machine-readable data does little for end-user readability. From a user's perspective, it's clearly preferable that are individuals identified by URIs, e.g. <nowiki>http://www.bbc.co.uk/nature/habitats/Tropical_and_subtropical_grasslands,_savannas,_and_shrublands#habitat</nowiki>, The values for property <nowiki>http://purl.org/ontology/wo/livesIn</nowiki> (corresponding to facet <nowiki>virtcxml:FacetHabitat</nowiki>)
>br/>
>img src="%ATTACHURLPATH%/property_labels1.jpg" style="wikiautogen"/>
>img src="%ATTACHURLPATH%/property_labels2.jpg" style="wikiautogen"/>
>br/>
limit 2500
>/verbatim>
OPTIONAL {?s foaf:depiction ?image . } } WHERE {?s <http://purl.org/ontology/wo/kingdom> ?kingdom;
>http://purl.org/ontology/wo/livesIn> ?habitat.
SELECT DISTINCT ?s as ?href ?kingdom ?image ?habitat
>verbatim>
following example to illustrate its effect). The values for facet <nowiki>virtcxml:FacetHabitat</nowiki> were returned by the query:HtmlPivotViewer's auto-label feature (see below) is disabled. (This feature cannot be disabled by end-users, but has been in the The screenshot on the left below shows the visual impact of property values which are resource URIs rather than literals, if In the world of RDF, a URI is the primary currency for naming and identifying classes, properties and individuals. In contrast, in
>nowiki>HtmlPivotViewer</nowiki> items and properties are identified by name, and property values are in the main character strings.
---+++Using Labels in Place of URIs#AncUsingLabels virtcxml:PivotIsFilterVisible "false" .
>/verbatim>
virtcxml:FacetType "String" ; virtcxml:FacetName "SHA1 of a Personal Mailbox" ; a virtcxml:FacetCategoryPattern ;foaf:mbox_sha1sumset its <nowiki>virtcxml:PivotIsFilterVisible</nowiki> property to "false" in virtcxml: e.g.
>verbatim>
if the facet value is unique for each item and you are unlikely to want to filter on this facet. To exclude a facet from the filter panel, There may be occasion where there is little reason to include a facet in the <nowiki>HtmlPivotViewer</nowiki> filter panel, for instance ---++++Excluding a Facet from the Filter Panel#AncExcludingFacetFilterPanelIn most circumstances it will probably be preferable to QR-encode the item (subject) URI, in which case an entry in virtcxml: is not needed. virtcxml:FacetDescription "Use a product's GoodRelations EAN-UCC-13 code (Universal Product Code) for it's QRcode" .
>/verbatim>
virtcxml:FacetType "Item/@virt:QRcode" ; a virtcxml:FacetCategoryPattern ;gr:hasEAN_UCC-13To specify a QR code source-property in virtcxml:, assign the property a <nowiki>virtcxml:FacetType</nowiki> property of "Item/@virt:QRcode". e.g.
>verbatim>
[[#AncSparqlEndpointCxmlExtensions][SPARQL Endpoint CXML Extensions]]."format=text/cxml+qrcode", or through the SPASQL pragma 'define output:format "CXML;QRCODE"' as described above in used as the basis for the QR code, assuming QR code generation has been enabled through the /sparql query string setting entry in graph virtcxml: or, in the absence of such an entry, use the default behaviour whereby the subject URI is automatically unavailable for DESCRIBEs and CONSTRUCTs. For the latter, two options exist. Either designate the property to use through an For SELECTs, reserved query variable ?qrcode identifies the property to use for generating QR codes. However this variable is ---++++Setting the Facet Used to Generate a QR code#AncVirtcxmlSetQrcodeFacet virtcxml:FacetDescription "Related item" .
>/verbatim>
virtcxml:FacetType "Link" ; a virtcxml:FacetCategoryPattern ;rdfs:seeAlso ... virtcxml:FacetDescription "Resort altitude (m)" . virtcxml:FacetType "Number" ; a virtcxml:FacetCategoryPattern ;ski:altitude_mnot be necessary for numeric and datetime values. If the values are RDF typed literals, the facet datatype is set automatically.
>verbatim>
The following examples show how to set the facet type using the <nowiki>virtcxml:FacetType</nowiki> property. However this should Overriding the default CXML String datatype for item properties:---++++Setting a Facet's Datatype#AncVirtcxmlSetFacetDatatype virtcxml:FacetDescription "..." .
>/verbatim>
virtcxml:FacetName "Location" ; a virtcxml:FacetCategoryPattern ;virtcxml:FacetLocselect ?s ?p ?o as ?loc ...
>/verbatim>
>verbatim>
Likewise for
>verbatim>
virtcxml:FacetDescription "Renaming of facet associated with ?o" .
>/verbatim>
virtcxml:FacetName "Object" ; a virtcxml:FacetCategoryPattern ;virtcxml:FacetOcan be changed to 'Object' with an entry in virtcxml of the form:
>verbatim>
select ?s ?p ?o where ...
>/verbatim>
in a SELECT starting:
>verbatim>
be overridden in the same way. For instance, the facet name <nowiki>'virtcxml:FacetO'</nowiki> created for query variable ?o The ability to override a facet's name is not limited to DESCRIBEs. The default facet names generated by a SELECT can also virtcxml:FacetDescription "Type of resort" .
>/verbatim>
virtcxml:FacetName "Type of Resort" ; a virtcxml:FacetCategoryPattern ;camp:resort_typeUse 'Type of Resort' in place of 'camp:resort_type' as the name of the facet:
>verbatim>
---++++Setting a Facet's Name#AncVirtcxmlSetFacetName virtcxml:FacetDescription "Facet to use for ski resort description" .
>/verbatim>
virtcxml:FacetType "Item/Description" ; a virtcxml:FacetCategoryPattern ;ski:description ... virtcxml:FacetDescription "Facet to use for campsite description" . virtcxml:FacetType "Item/Description" ; a virtcxml:FacetCategoryPattern ;camp:description ... virtcxml:FacetDescription "Facet to use for item description" . virtcxml:FacetType "Item/Description" ; a virtcxml:FacetCategoryPattern ;dcterms:description virtcxml:FacetDescription "Facet to use for item description" . virtcxml:FacetType "Item/Description" ; a virtcxml:FacetCategoryPattern ;dc:descriptionNote that the property to use can have any name, it need not be named <i>prefix:</i>description.
>verbatim>
the camp:description property, and for ski resorts use the ski:description property.For any item with a Dublin Core description property, use this for the CXML Item/Description element. For campsite items, use ---++++Setting an Item's Description#AncVirtcxmlSetItemDescription virtcxml:FacetDescription "Facet to use for name of item" .
>/verbatim>
virtcxml:FacetType "Item/@Name" ; a virtcxml:FacetCategoryPattern ;dcterms:title virtcxml:FacetDescription "Facet to use for name of item" . virtcxml:FacetType "Item/@Name" ; a virtcxml:FacetCategoryPattern ;dc:title ... virtcxml:FacetDescription "Facet to use for name of item" . virtcxml:FacetType "Item/@Name" ; a virtcxml:FacetCategoryPattern ;rdfs:label ... virtcxml:FacetDescription "A facet for full name of a person" . virtcxml:FacetType "Item/@Name" ; a virtcxml:FacetCategoryPattern ;foaf:nameIf an item has any of the properties foaf:name, rdfs:label, dc:title or dcterms:title, use it as the item's name:
>verbatim>
---++++Setting an Item's Name#AncVirtcxmlSetItemName?img ensures that each artist has a custom image. It should not be confused with the reserved query variable ?image, used only by SELECTs.Note:<br/>WHERE { ?s a mo:SoloMusicArtist ; mo:image ?img .} LIMIT 100
>/verbatim>
DESCRIBE ?s FROM <http://www.bbc.co.uk/music/> by <nowiki>HtmlPivotViewer</nowiki>.
>verbatim>
Without this declaration (which is included in the graph virtcxml by default), only icons (aka TBox images) would be displayed };
>/verbatim>
mo:image virtcxml:aliasOf foaf:depiction .{insert data into virtcxml:prefix foaf: <http://xmlns.com/foaf/0.1/>prefix mo: <http://purl.org/ontology/mo/>prefix virtcxml: <http://www.openlinksw.com/schemas/virtcxml#> sparqlhttp://lod.openlinksw.com/sparql.
>verbatim>
property as custom images (aka ABox images) in the DESCRIBE query which follows. The query itself can be executed against endpoint SPARUL insert statement below declares mo:image as an alias of foaf:depiction to enable the use of images available through the mo:image as having <nowiki>FacetType</nowiki> "Item/@virt:Image". As an illustration of how the graph can be customized by a developer, the Building on the above definition, graph virtcxml supports a virtcxml:aliasOf property as a shorthand notation for declaring properties property, an icon is displayed as a fallback image.declaration for each included type, except where they share the same image property. For any entity type without a "Item/@virt:Image" be the case where the collections to be generated include more than one entity type. In which case, there would be one "Item/@virt:Image" As with the other pseudo datatypes, more than one property can be declared as being of type "Item/@virt:Image". This would typically virtcxml:FacetDescription "A facet for absolute URI of depiction of a collection item" .
>/verbatim>
virtcxml:FacetType "Item/@virt:Image" ; a virtcxml:FacetCategoryPattern ;foaf:depictionAn item's foaf:depiction property supplies the item's image:
>verbatim>
---++++Setting an Item's Image#AncVirtcxmlSetItemImageExamples of their use follow.1d0| Item/@virt:QRcode | ?qrcode | A facet for QRcode data that should be placed in the image || Item/@Name | ?name | A facet for a name of the item which will appear at the top of the info panel || Item/@virt:Itemtype | ?itemtype | A facet for an item type that is used, for example, to choose the fallback icon for the item || Item/@Img | ?img | A facet for an relative URI of the image in the collection || Item/@virt:Image | ?image | A facet for an absolute URI of the image that will be added to an automatically created single-use collection || Item/@Id | ?id | A facet for an unique id of an item in the item list. If not specified the decimal representation of serial is used || Item/@Href | ?href | A facet for an URL associated with an item. Double-clicking the item in the Pivot client will navigate the user to this URL || Item/Description| ?description | A facet for a text description of an item to be displayed in the info panel |1d0| Datatype | Equivalent Reserved SELECT Variable | CXML Element/Attribute |[[#AncReservedQueryVariables][reserved query variables]] presented earlier. They are:setting certain item attributes from RDF property values. These special datatypes correspond to the String, <nowiki>LongString</nowiki>, Number, <nowiki>DateTime</nowiki> and Link; but also some pseudo datatypes for type to the <nowiki>virtcxml:FacetType</nowiki> property. The supported types include the standard CXML datatypes, entity property. The entity property to be modified is declared as being an instance of the class
>nowiki>virtcxml:FacetCategoryPattern</nowiki>. The property's datatype can then be set by assigning the desired CXML
Customization of the DESCRIBE output is done primarily by associating a <nowiki>virtcxml:FacetType</nowiki> with an ---++++<nowiki>virtcxml:FacetType</nowiki>#AncVirtcxmlFacetTypeAdd entries to this graph as needed for your own collections.the sparql_cxml VAD and populated with some default settings for popular ontologies such as the Dublin Core and FOAF. for DESCRIBEs and CONSTRUCTs. The graph can also be referred to by its short name virtcxml: which is declared in table
>nowiki>DB.DBA.SYS_XML_PERSISTENT_NS_DECL</nowiki> (e.g. select * from virtcxml: where { .... ) The graph is created by
Graph <nowiki>&lt;http://www.openlinksw.com/schemas/virtcxml#&gt;</nowiki> can be used to customize the CXML generation ---+++Graph virtcxml#AncGraphVirtCxml---for CXML generation.Thus ?latitude, ?longitude, ?location, ?geometry and ?area can be viewed as special variables specifically for
>nowiki>PivotViewer</nowiki>. Conversely, the previously mentioned special variables ?image, ?qrcode etc are only
is selected then the associated area will be highlighted on the map. This facet has to be used in conjuction with an exact point from either the "latitude", "longitude" or "location" facet. An item with just an area is not plotted.values should be a string in [[http://en.wikipedia.org/wiki/Well-known_text][WKT]] format. Once an item in the collection Alternatively, a separate area can be associated with each item in a collection using a facet called "area". Again, the value found will be plotted.the "geometry" facet should be a string in [[http://en.wikipedia.org/wiki/Well-known_text][WKT]] format. Only the first highlight where a dataset has been filtered to only include values that lie in a particular defined geometry. The value of called "geometry" and attempts to use the value of the facet to plot a geometric area. This can be useful, for example, to In addition to plotting a map marker for each item in a collection, <nowiki>HtmlPivotViewer</nowiki> also looks for a facet uses an internal cache to minimize the number of lookups.The searches for "latitude", "longitude" or "location" in a facet name are case-insensitive. <nowiki>HtmlPivotViewer</nowiki> * Generic co-ordinates: format - &lt;double&gt;, &lt;double&gt; * Generic co-ordinates: format - POINT(&lt;double&gt;, &lt;double&gt;);to retrieve a co-ordinate pair.some special handing for facet values in the formats below. Any other format is passed to a geocoding service to try 2 Any facet named "location" (or which contains the substring "location") is used to do geo-location lookups, with The facet values are combined to form a geo-marker. 1 A pair of numeric facets named "latitude" and "longitude" (or which have these substrings in the facet name). Currently <nowiki>HtmlPivotViewer</nowiki> looks for two kinds of facet to find geo-location points:
>nowiki>HtmlPivotViewer's</nowiki> "Map" view displays any geo-data contained in the collection as map markers.
---++++Reserved Query Variables for Geodata#AncReservedGeoQueryVariables---A re-ordered select list of 'SELECT DISTINCT ?name ?href ...' would be rejected by the SPARQL compiler.limit 500
>/verbatim>
OPTIONAL {?page foaf:primaryTopic ?href} } OPTIONAL {?href foaf:depiction ?image.} OPTIONAL {?prog po:subject ?href.} rdfs:label ?name. wo:livesIn ?habitat; wo:adaptation ?adaptation; WHERE {?href wo:kingdom ?kingdom; SELECT DISTINCT ?href ?name ?kingdom ?image ?habitat ?page ?adaptation ?progPREFIX wo: <http://purl.org/ontology/wo/>
>verbatim>
subject URI (in place of the more usual ?s).In the next example, ?href is, as well as setting each Item's Href attribute, also acting as a placeholder for the The variable corresponding to the subject URI must also be <b>first</b> in the select list.If a wildcard SELECT list isn't used, the query variables in the SELECT list must include one representing the subject URI. ---++++Query Variable Order#AncQueryVariableOrder---limit 1000
>/verbatim>
where {?s ?p ?o} from <http://spending.lichfielddc.gov.uk/data> ?o ?p(<http://www.railaroundbirmingham.co.uk/graphics/crests.jpg>) as ?image select ?s as ?href
>verbatim>
or}
>/verbatim>
}} limit 100 } filter (?date >= "2010-10-15"^^xsd:date) optional {?work foaf:depiction ?image} . ?work rdfs:label ?name . ?work dct:valid ?valid . ?work dct:subject ?subject . ?work dct:created ?date . ?work dct:title ?description . ?work a frbr:Work . { where select * {{{ service <http://gov.tso.co.uk/legislation/sparql> ( define lang:dialect 65535 )where (<http://i.telegraph.co.uk/telegraph/multimedia/archive/01590/backbenchers-pa_1590370c.jpg>) as ?imageselect ?work as ?href ?date ?description ?valid ?subject as ?qrcode ?image ?nameprefix dct: <http://purl.org/dc/terms/>prefix frbr: <http://purl.org/vocab/frbr/core#>prefix xsd: <http://www.w3.org/2001/XMLSchema#>prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>Using a fixed image as the item depiction, with the item's URI forming the QRcode
>verbatim>
---
>b>Example 9:</b>
>img src="%ATTACHURLPATH%/select_with_itemtype.jpg" style="wikiautogen"/>
} limit 100
>/verbatim>
} optional { ?s foaf:depiction ?image } ?s ?p ?o; foaf:name ?id ; a ?itemtype . service <http://uriburner.com/sparql> {from <http://www.meetup.com/linkeddata/members/> where { select distinct ?s ?image ?id ?itemtype to include ?itemtype, the default icon is replaced by a 'silhouette' which depicts items of type foaf:Person.
>verbatim>
For a SELECT, it's necessary to indicate an item's type through the ?itemtype reserved query variable. When the above query is modified When generating CXML from a DESCRIBE or CONSTRUCT, an item's rdfs:type is readily available and the choice of icon is made automatically. in section 'Default Images for Pivot Collections'.)based on the item's rdfs:type. (More details of how this is done can be found in [[VirtSparqlCxmlDzcs][SparqlCxmlDeep Zoom Collections]] of the item's type. The icon to be displayed is selected from a small extensible set provided by the <nowiki>SparqlCxml</nowiki> VAD, Rather than use the same icon for all items without an image, it's possible to display a class-specific icon to give an indication } limit 100
>/verbatim>
>img src="%ATTACHURLPATH%/select_no_itemtype.jpg" style="wikiautogen"/>
} optional { ?s foaf:depiction ?image } ?s ?p ?o; foaf:name ?id . service <http://uriburner.com/sparql> {from <http://www.meetup.com/linkeddata/members/> where { select distinct ?s ?image ?id
>verbatim>
items are depicted by the default icon, the 'RDF molecule', as shown below.property which is included in an optional triple pattern so as to include in the collection items without a foaf:depiction. These If no custom image can be found for an item, an icon is used instead. Here we see the image being provided by the foaf:depiction ---
>b>Example 8:</b>
>img src="%ATTACHURLPATH%/camcorder_qrcode.png" style="wikiautogen"/>
generated QRcodes.The following image slice taken from the resulting <nowiki>HtmlPivotViewer</nowiki> display shows product images with their }}
>/verbatim>
?o bif:contains '(SONY AND CAMCORDER)' . ?href foaf:depiction ?image . ?href ?p ?o . ?href gr:hasManufacturer ?manufacturer . ?href icecat:hasLongSummaryDescription ?description . ?href icecat:hasModelName ?name . ?href a gr:ProductOrServiceModel . select distinct ?href ?href as ?qrcode ?name ?description ?manufacturer ?image where { service <http://linkeddata.uriburner.com/sparql> {prefix icecat: <http://linkedopencommerce.com/schemas/icecat/v1/>prefix gr: <http://purl.org/goodrelations/v1#>
>verbatim>
use of Virtuoso's federated SPARQL capability (SPARQL-FED) via the service keyword.the property (in this case the item URI) to be encoded in the QRcode adjacent to the main image. It also illustrates the The next example shows the use of ?image to identify the custom image to be displayed for an item, and ?qrcode to identify ---
>b>Example 7:</b>
}
>/verbatim>
geo:lat ?latitude; geo:long ?longitude. vcard:Country ?country; vcard:Pcode ?postcode; vcard:Region ?region; vcard:Locality ?locality; dc:description ?description; dcterms:created ?created; dcterms:modified ?modified; foaf:depiction ?image; foaf:name ?name; foaf:homepage ?page; ?href a foaf:Person;WHERE { ?country ?postcode ?region ?locality ?latitude ?longitude ?description ?created ?modified ?name ?page ?href as ?qrcode ?image SELECT DISTINCT ?href # Use foaf:depiction image for Tiles (DZI) for DZC# Use foaf:name as anchor text and subject URI as href of main item link in PivotViewer properties panel# Capture subject URI in QR code---
>b>Example 6:</b>
>verbatim>
[[http://uriburner.com/HtmlPivotViewer/?url=http%3A%2F%2Furiburner.com%2Fc%2FBG5CTZF%23%24view%24%3D1][View Pivot collection]]} limit 2500
>/verbatim>
OPTIONAL {?s foaf:depiction ?image.} ?habitat rdfs:label ?hname ?kingdom rdfs:label ?kname. wo:livesIn ?habitat. rdfs:label ?name; dcterms:description ?description; WHERE {?s wo:kingdom ?kingdom; SELECT DISTINCT ?s as ?href ?name ?kname ?image ?hname ?description PREFIX wo: <http://purl.org/ontology/wo/>---
>b>Example 5:</b>
>verbatim>
>img src="%ATTACHURLPATH%/qry_var_eg4.png" style="wikiautogen"/>
[[http://kingsley.idehen.net/HtmlPivotViewer/?url=http%3A%2F%2Fkingsley.idehen.net%2Fc%2FC7NTTV%23%24view%24%3D1][View Pivot collection]]} limit 200
>/verbatim>
?href ?p ?o ; foaf:depiction ?image; foaf:name ?name; mtp:id ?id; dc:description ?description .filter (!isBlank(?description)) select * from <http://www.meetup.com/semweb-25/members/> where {prefix dc: <http://purl.org/dc/elements/1.1/>prefix mtp: <http://www.openlinksw.com/schemas/meetup/>---
>b>Example 4:</b>
>verbatim>
>img src="%ATTACHURLPATH%/qry_var_eg3.png" style="wikiautogen"/>
[[http://uriburner.com/HtmlPivotViewer/?url=http%3A%2F%2Furiburner.com%2Fc%2FBG63JVE%23%24view%24%3D1][View Pivot collection]]limit 3000
>/verbatim>
geosp:hasClassName ?className . } geosp:hasCommonName "Tiger" ; rdfs:seeAlso ?related ; foaf:isPrimaryTopicOf ?href ; virtrdf:label ?name ; foaf:depiction ?image ; { ?s a <http://lod.taxonconcept.org/ontology/txn.owl#GeoSpeciesTaxon> ; where select distinct * prefix geosp: <http://rdf.geospecies.org/ont/geospecies#>define input:inference "virtrdf-label"---
>b>Example 3:</b>
>verbatim>
>img src="%ATTACHURLPATH%/qry_var_eg2.png" style="wikiautogen"/>
[[http://uriburner.com/HtmlPivotViewer/?url=http%3A%2F%2Furiburner.com%2Fc%2FBGDW42E%23%24view%24%3D1][View Pivot collection]]} limit 2000
>/verbatim>
foaf:depiction ?image; virtrdf:label ?name; dcterms:description ?description. ?href foaf:primaryTopic ?s .select * where { ?s a <http://purl.org/ontology/wo/Species> ;
>http://purl.org/ontology/wo/order> <http://www.bbc.co.uk/nature/order/Primate#order> ;
>http://purl.org/ontology/wo/family> ?family ;
>http://purl.org/ontology/wo/livesIn> ?lives_in ;
define input:inference "virtrdf-label"---
>b>Example 2:</b>
>verbatim>
>img src="%ATTACHURLPATH%/HTML_qry_var_eg1.png" style="wikiautogen"/>
[[http://uriburner.com/HtmlPivotViewer/?url=http%3A%2F%2Furiburner.com%2Fc%2FBEUGHH6%23%24view%24%3D1][View Pivot collection]]} limit 2000
>/verbatim>
geosp:hasClassName "Insecta" .geosp:hasCommonName ?cn ; virtrdf:label ?name ; foaf:depiction ?image ; where { ?s a <http://lod.taxonconcept.org/ontology/txn.owl#GeoSpeciesTaxon> ; select distinct * prefix geosp: <http://rdf.geospecies.org/ont/geospecies#>define input:inference "virtrdf-label"---
>b>Example 1:</b>
>verbatim>
[[#AncCxmlSurfacing][graphic]] presented earlier for details of how different CXML elements are surfaced in <nowiki>HtmlPivotViewer</nowiki>. A snippet of the generated CXML is shown to highlight how an element or attribute is influenced by the variable(s). Refer to the The queries below further illustrate the use of the reserved query variables. All can be executed against http://uriburner.com/sparql. ---++++Examples#AncReservedQueryVariablesExamplesis not needed because this is a well-known namespace predefined in Virtuoso in table <nowiki>DB.DBA.SYS_XML_PERSISTENT_NS_DECL</nowiki>.) The prefix gr: identifies the <nowiki>GoodRelations</nowiki> namespace, http://purl.org/goodrelations/v1#. (An explicit prefix declaration select distinct * where { ?s a gr:ProductOrServiceModel; foaf:depiction ?image; rdfs:label ?name } limit 500
>/verbatim>
>verbatim>
respectively.to identify which predicates, i.e. product attributes, will act as a product's name and image - in this case rdfs:label and foaf:depiction The following example, which selects a number of products (or services), illustrates the use of the reserved ?name and ?image variables to control the CXML mapping. For the moment, we'll confine our attention to SELECTs.The reserved variables are only used for a SELECT, not a DESCRIBE or CONSTRUCT. The last two query forms instead use graph virtcxml: | virtcxml:<nowiki>FacetRelated</nowiki> | ?related | Item/d1p1:Related | A facet for links to web-pages or collections related to the item || virtcxml:<nowiki>FacetQrcode</nowiki> | ?qrcode | Item/@Img | A facet for QRcode data that should be placed in the image || virtcxml:<nowiki>FacetName</nowiki> | ?name | Item/@Name | A facet for a name of the item which will appear at the top of the info panel || virtcxml:<nowiki>FacetItemtype</nowiki> | ?itemtype | - | A facet for an item type that is used, for example, to choose the fallback icon for the item || virtcxml:<nowiki>FacetImg</nowiki> | ?img | Item/@Img | A facet for a relative image URI (for use with a third party Deep Zoom Collection) || virtcxml:<nowiki>FacetImage</nowiki> | ?image | Item/@Img | A facet for an absolute URI of the image that will be added to an automatically created single-use collection || virtcxml:<nowiki>FacetId</nowiki> | ?id | Item/@Id | A facet for an unique id of an item in the item list. If not specified the decimal representation of serial is used || virtcxml:<nowiki>FacetHref</nowiki> | ?href | Item/@Href | A facet for an URL associated with an item. Double-clicking the item in the Pivot client will navigate the user to this URL || virtcxml:<nowiki>FacetDescription</nowiki> | ?description | Item/Description | A facet for a text description of an item to be displayed in the info panel |1d0| virtcxml Entity | Reserved SELECT variable | CXML Element/Attribute | Description |and the corresponding CXML element or attribute whose value is set by the reserved variable.virtcxml:Facetxxx Facet descriptors defined in virtcxml:, the reserved variable used to denote each Facet descriptor in a SELECT which is created when the sparql_cxml VAD is installed. Each identifier is prefixed by virtcxml:Facet. The table below lists the used to set particular CXML element and attribute values. These reserved variables, or identifiers, are defined in graph virtcxml:
>nowiki>SparqlCxml</nowiki> defines a list of reserved variables for use in SPARQL SELECTs to identify which predicates are to be
---+++<nowiki>SparqlCxml</nowiki> Reserved Query Variables#AncReservedQueryVariablesdepending on the <nowiki>SparqlCxml</nowiki> link typing options in force. These are described in section [[#AncLinkType][Link Typing]] RDF values which are URIs are handled as a special case. They may be mapped to a CXML Link, String or <nowiki>LongString</nowiki>
>img src="%ATTACHURLPATH%/HTML_slider_filter.png" style="wikiautogen"/>
of the property.with the <nowiki>ski_resort:expert_slopes</nowiki> property/facet) to restrict the displayed items to those within a certain range Properties of type CXML Number can be filtered using the <nowiki>HtmlPivotViewer</nowiki> "slider filter" (shown below associated :La_Plagne oplski:expert_slopes "18"^^xsd:integer .
>/verbatim>
:Le_Jard oplcamp:last_updated "2010-12-01T00:00:00Z"^^xsd:dateTime .
>verbatim>
are mapped to CXML <nowiki>LongString</nowiki>. e.g.types are mapped to CXML Number, xsd:datetime is mapped to CXML <nowiki>DateTime</nowiki> and strings longer than 100 characters RDF typed literals are automatically mapped to the appropriate CXML type. The xsd:integer, xsd:float, xsd:double, and xsd:decimal ---+++Auto-Detection of Facet Type#AncFacetTypeAutoDetection * Defaults to the URI of the entity described by the Item element * Href * Defaults to the URI of the entity described by the Item element * Name * Item attributes * As with the <nowiki>FacetCategory</nowiki> Type attribute, defaults to "String". * Type * As with the <nowiki>FacetCategory</nowiki> Name attribute, defaults to a short property name. * Name * Facet attributes * All default to "true" * <nowiki>IsFilterVisible</nowiki>, <nowiki>IsMetaDataVisible</nowiki>, <nowiki>IsWordWheelVisible</nowiki>literal, <nowiki>SparqlCxml</nowiki> sets the appropriate CXML facet type automatically. * Defaults to CXML type "String" if the RDF data is not typed. If the data is typed, for example through an RDF typed * Typea <nowiki>FacetCategory</nowiki> with Name=<nowiki>"distance_from_calais_km"</nowiki> * Defaults to a short property name, without a prefix. e.g. Predicate
>nowiki>http://www.openlinksw.com/campsites/schema#distance_from_calais_km</nowiki> becomes
* Name * <nowiki>FacetCategory</nowiki> attributesThe default settings for the CXML generation include the following defaults:---+++Default Settings#AncDefaultSettings
>img src="%ATTACHURLPATH%/describe_cxml_doc_tree.jpg" style="wikiautogen"/>
facet type detection isn't possible, to override the default facet type of CXML String. use entries in graph virtcxml: to both identify which entity properties supply particular CXML names and attributes and, if automatic will provide the Deep Zoom images. Only SELECTs use reserved variables to tailor the CXML mapping. DESCRIBE and CONSTRUCT instead creates the facet categories shown below. Notice that the reserved variable ?image is not used to identify which entity property describe ?s where {{ ?s a ski:SkiResort } union { ?s a camp:Campsite . }}
>/verbatim>
>verbatim>
facet is CXML String. The query:full set of facet categories is a union of the properties of each entity type in the result set. Again, the default type of each output, whereby each distinct predicate, i.e. property, becomes a facet category. Each predicate value becomes a facet value. The query variables play a part in determining the facet categories. Instead they are derived directly from the DESCRIBE or CONSTRUCT Like SELECT, each distinct subject URI again forms a CXML Item whose Name and Href are the subject URI. Unlike SELECT, no other ---++++DESCRIBE and CONSTRUCT#AncRdfToCxmlMappingDescribecan be changed through graph virtcxml: as described below. The default facet names generated by a SELECT, in this example <nowiki>virtcxml:FacetP</nowiki> and <nowiki>virtcxml:FacetO</nowiki>,
>img src="%ATTACHURLPATH%/select_cxml_doc_tree.jpg" style="wikiautogen"/>
mapping. These reserved variables are not used as facets.the CXML document tree fragment below. ?image is one of several special variables reserved for controlling the RDF to CXML creates a collection with facet categories <nowiki>virtcxml:FacetP</nowiki> and <nowiki>virtcxml:FacetO</nowiki>, as shown in }
>/verbatim>
{ ?s a camp:Campsite . ?s ?p ?o . optional { ?s foaf:depiction ?image } } union { ?s a ski:SkiResort . ?s ?p ?o . optional { ?s foaf:depiction ?image } }{select * where prefix camp: <http://www.openlinksw.com/campsites/schema#>prefix ski: <http://www.openlinksw.com/ski_resorts/schema#>variable values become the values of the corresponding facet. The default type of each facet is CXML String. A query such as:
>verbatim>
a subject URI becomes a facet named virtcxml:Facet<i>variable</i>; where the variable name is converted to title case. The Each distinct subject URI forms a CXML Item whose Name and Href are the subject URI. Each variable in the query which is not ---++++SELECT#AncRdfToCxmlMappingSelectis outlined below to explain the default mapping. Options for tailoring the default mapping are described in subsequent sections.The way in which SPARQL result sets are converted to CXML differs for SELECTs and DESCRIBEs or CONSTRUCTs. The broad approach ---+++RDF to CXML Mapping - The Basic Approach#AncRdfToCxmlMappingBasicApproachLIMIT 20
>/verbatim>
} foaf:depiction ?image foaf:name ?name; { ?href a foaf:Person; WHERESELECT * sparql define output:format "CXML"executing SPARQL queries directly from Virtuoso PL or from a Virtuoso client, e.g. --
>verbatim>
Corresponding pragmas <code>define output:format "CXML"</code> and <code>define output:format "CXML;QRCODE"</code> are available when the ?qrcode reserved query variable.to the custom or default image for each item. For SELECT, the addition or omission of a QRcode alongside the item image is controlled through with QRcodes)</b> from the "Format Results As" dropdown. For DESCRIBE and CONSTRUCT, the "text/cxml+qrcode" output option adds a QRcode adjacent When using the /sparql UI, these format options are activated by selecting either <b>CXML (Pivot Collection)</b> or <b>CXML (Pivot Collection http://uriburner.com/sparql?default-graph-uri=&should-sponge=&query=select+*+WHERE+{%3Fhref+a+foaf%3APerson%3B+foaf%3Aname+%3Fname%3B+foaf%3Adepiction+%3Fimage}+limit+20&format=text%2Fcxml
>/verbatim>
output format is available for SELECT, DESCRIBE, and CONSTRUCT. "text/cxml+qrcode" is available only for DESCRIBE and CONSTRUCT. e.g.
>verbatim>
"text/cxml" and "text/cxml+qrcode" have been added to the list of formats recognized by the query string 'format' parameter. The "text/cxml" The Virtuoso SPARQL protocol endpoint <code>/sparql</code> supports a number of extensions to the SPARQL standard specifically for CXML.---+++SPARQL Endpoint CXML Extensions#AncSparqlEndpointCxmlExtensions
>img src="%ATTACHURLPATH%/hello_world_surfacing.png" style="wikiautogen"/>
#AncCxmlSurfacingEach part of the XML is surfaced in the <nowiki>HtmlPivotViewer</nowiki> as depicted below: </Collection>
>/verbatim>
</Items> </Item> </Facets> </Facet> <String Value="Hello World Facet Value"/> <Facet Name="Hello World Facet Category One"> <Facets> <Description>This is the only item in the collection.</Description> <Item Img="#0" Id="0" Href="http://www.getpivot.com"Name="Hello World!"> <Items ImgBase="helloworld.dzc"> </FacetCategories> <FacetCategory Name="Hello World Facet Category One" Type="String"/> <FacetCategories> xmlns:xsd="http://www.w3.org/2001/XMLSchema"> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://schemas.microsoft.com/livelabs/pivot/collection/2009" xmlns="http://schemas.microsoft.com/collection/metadata/2009" <CollectionName="Hello World Collection"SchemaVersion="1.0" <?xmlversion="1.0"?>
>verbatim>
The following sample XML specifies a simple collection with only one item.---++++Collection XML#AncCollectionXml
>img src="%ATTACHURLPATH%/HtmlPivotViewerComponents.png" style="wikiautogen"/>
The main parts of the <nowiki>HtmlPivotViewer UI</nowiki> are identified below:<br/>---++++<nowiki>HtmlPivotViewer</nowiki> UI#AncPivotViewerUIBefore describing the Virtuoso RDF to Pivot interface, it's worthwhile to identify the main components of the
>nowiki>HtmlPivotViewer</nowiki> UI and Collection XML to establish the terminology for the remainder of the text.
---+++<nowiki>HtmlPivotViewer & Collection XML</nowiki> - Key Parts#AncKeyPartsCXML mapping through the use of reserved query variables and a configuration graph, <code>virtcxml</code>. set to CXML Items, Facets, and Facet values. <nowiki>SparqlCxml</nowiki> allows a high degree of control over the SPARQL to The CXML generation process essentially consists of mapping the entities, attributes, and values contained in the SPARQL result CXML. The query driving the CXML generation may be a <code>SELECT</code>, <code>DESCRIBE</code>, or <code>CONSTRUCT</code>. A Virtuoso <code>/sparql</code> endpoint can render a SPARQL query result in numerous serialization formats, one of which is ---++<nowiki>SparqlCxml</nowiki>#AncSparqlCxml
>img src="%ATTACHURLPATH%/HTML_pivot_viewer_tourism.png" style="wikiautogen" width="800"/>
>a href="%ATTACHURLPATH%/HTML_pivot_viewer_tourism.png" target="_blank">Click to enlarge</a>
collection URL</b> textbox. After clicking <b>Submit</b>, you should see a collection view similar to that below:Your browser should display the generated CXML file. Copy the URL from your browser's address bar, open a browser window to
>code>/HtmlPivotViewer</code> (e.g., http://localhost:8890/HtmlPivotViewer/), and paste the SPARQL query URL into the <b>Pivot
describe ?s where {{ ?s a ski:SkiResort . } union { ?s a camp:Campsite . }}
>/verbatim>
prefix camp: <http://www.openlinksw.com/campsites/schema#>prefix ski: <http://www.openlinksw.com/ski_resorts/schema#>#AncExampleTourismCollection
>verbatim>
before running it.The sparql_cxml VAD creates a small amount of test data for verifying the installation. In Conductor's /sparql interface (e.g.,
>nowiki>http://localhost:8890/sparql</nowiki>), enter the query below and select 'CXML' from the 'Format Results As' dropdown
---++++CXML Generation from /sparql#AncCxmlGenerationFromSparqlselect "IM XYtoMorton"(1,1)
>/verbatim>
and check that the return value is 3.
>verbatim>
To confirm that the <nowiki>ImageMagick</nowiki> plugin is working, execute the following query through Conductor's ISQL interface, ---++++<nowiki>ImageMagick</nowiki>#AncImageMagick---+++Verifying your installation#AncVerifyingYourInstallation"Cross-Origin Collection Browsing".cross-origin resource sharing must be enabled as detailed in [[VirtSparqlCxmlHtmlPivotViewer][Part 4: HtmlPivotViewer]], section for the host. If you anticipate viewing collections served by a host other than the one hosting <nowiki>HtmlPivotViewer</nowiki>, Finally, ensure that the <nowiki>DefaultHost</nowiki> parameter under the URIQA section of your virtuoso.ini file is set appropriately to install them separately.The supporting <nowiki>ImageMagick</nowiki> or QRcode libraries used by these plugins are statically linked, so there is no need 7d0
>/verbatim>
6d0...1d0LoadPath=../hosting[Plugins]be enabled in the Plugins section of your virtuoso.ini file, e.g.:
>verbatim>
[[http://en.wikipedia.org/wiki/QR_Code][QRcode]] plugins must be installed. A Virtuoso distribution includes both the
>nowiki>ImageMagick</nowiki> plugin (im.so or im.dll) and QRcode plugin (qrcode.so or qrcode.dll) as standard. The plugins should
In addition, to support Deep Zoom image and QRcode generation, the Virtuoso [[http://www.imagemagick.org/][ImageMagick]] and Any VAD listed under 'Requires' must be installed before the VAD under which it appears. * sparql_cxml, <nowiki>HtmlPivotViewer</nowiki> * fct - Virtuoso Facets web service. A general purpose RDF query facility for facet based browsing * cartridges - Provides base RDF functionality and the Sponger framework for converting non-RDF data to RDF * Requires:query result sets * <nowiki>fct_pivot_bridge</nowiki> - An extension to the Facets web service for generating collections from snapshots of faceted and optionally: * c_uri - A URI shortener for creating compressed URIs * Requires: * <nowiki>HtmlPivotViewer</nowiki> - A VSP-based collection viewer for viewing Virtuoso generated and 3rd party collections * sparql_cxml - Supports CXML and Deep Zoom Collection (DZC) generation from a /sparql endpointEdition. To enable the CXML functionality, the necessary VADs (Virtuoso Application Distribution) must be installed. These are:Support for CXML is available in the Virtuoso Commercial Edition Release 6.02.3129 or above. It is not included in Virtuoso Open-Source ---++Configuring Virtuoso's CXML Support#AncConfiguringVirtuosoare no longer fragmented. The concepts remain the focal point of a user's interaction with the data.artifact of normalization, the conceptual level provides a 'whole data' view in which the entities and the concepts they represent logical level as typified by most database exploration tools. Whereas at the logical level, data is often split across tables as an * a Linked Data viewer with the focus on 'whole data' representation. Data is displayed at the conceptual level, rather than the * a front-end to utilize Virtuoso's free text search and, through the Pivot Facet Bridge, faceted query capabilitiesdynamic collections through query URLs * a powerful tool for drilling down into collections, whether static or dynamically generated from SPARQL queries, and for sharing a link) the label of the entity they identify * the ability to interact with Linked Data without the distraction of raw URIs. URIs are normally replaced by or hidden behind (via
>nowiki>HtmlPivotviewer</nowiki>, together with <nowiki>SparqlCxml</nowiki>, provides:
associated with a wide variety of formats that includes RDF, XML (including Web Services), SQL, various binary formats (iCalendar, vCard, etc.).collection being generated. The Linked Data itself can comes from many sources. Virtuoso can ingest data from a plethora of data sources Linked Data/EAV data for display, while SPARQL provides a query language for specifying the Linked Data to be contained in the dynamic In the context of <nowiki>HtmlPivotViewer</nowiki> as a Linked Data explorer, the CXML data format provides a generalized means of describing Predicate, and Object (optionally) slots. At the data expression level SPO or EAV triples are indistinguishable bar RDF's emphasis on URI/IRI style identifiers in the Subject, HTML+RDFa etc. At the model level its only tangible distinction from EAV is its overtness with regards to first-order logic foundation. statements (proposition oriented records) that can be expressed in a wide variety of syntaxes that includes: RDF/XML, Turtle, N3, N-Triples, It is important to recognize that RDF defines a data model *and* Subject-Predicate-Object (or Entity-Attribute-Value) 3-tuples (triples) ID, a hypermedia link, that resolves to the address of its representation. This representation is negotiable, courtesy of HTTP content-negotiation.Each tuple is a proposition (due to its first-order logic grounding) as well as a database record. Each entity (object) has a dereferenceable * attribute values (aka subject attribute values) * entity attributes (aka subject attributes) and * entities (aka subjects)the following are uniquely discernible:In this broader (format agnostic) definition of Linked Data, data definition and description is expressed using EAV tuples where each of extremely important to note that Linked Data is not (in any way) inextricably bound to RDF.enables the use of hypermedia resources for structured data representation and interchange, more commonly known as Linked Data. It's intranet or interweb scales. The EAV model coupled with the use of dereferenceable identifiers in the entity, attribute or value slots based on first-order logic. Thus, <nowiki>HtmlPivotViewer</nowiki> should be seen in the broader context as a viewer for EAV model data at RDF is nonetheless a form of EAV (Entity-Attribute-Value) model where data is overtly defined and constrained by a conceptual schema that's and Virtuoso's <nowiki>SparqlCxml</nowiki> subsystem extends beyond RDF. While intended to be a general method of representing information, While at first glance <nowiki>HtmlPivotViewer</nowiki> might be seen as a viewer for RDF data, the utility of <nowiki>HtmlPivotViewer</nowiki> ---++++A Viewer for Hypermedia-based Structured Data#AncPivotViewerHypermediahttp://linkeddata.uriburner.com/HtmlPivotViewer/?url=http%3A%2F%2Flinkeddata.uriburner.com%2Fsparql%3Fdefault-graph-uri%3D%26query%3Ddescribe%2520%253Fs%2520from%2520%253Chttp%253A%252F%252Fwww.meetup.com%252FFrankfurt-Semantic-Web-Meetup%252Fmembers%252
>/verbatim>
The full request URI being:
>verbatim>
submitted to the SPARQL endpoint at [[http://linkeddata.uriburner.com/sparql][http://linkeddata.uriburner.com/sparql]] via the
>nowiki>HtmlPivotViewer</nowiki> at [[http://linkeddata.uriburner.com/HtmlPivotViewer/][http://linkeddata.uriburner.com/HtmlPivotViewer/]].
describe ?s from <http://www.meetup.com/Frankfurt-Semantic-Web-Meetup/members/> where {?s a foaf:Person} limit 2000
>/verbatim>
The source data for the above collection was supplied by a SPARQL DESCRIBE query:
>verbatim>
>img src="%ATTACHURLPATH%/HTML_frankfurt_semweb_meetup.png" style="wikiautogen"/>
illustrates the use of a silhouette icon for members of the Frankfurt Semantic Web Meetup group who do not have a <code>foaf:image</code>.a small VSP-based (Virtuoso Server Pages) application hosting the <nowiki>HtmlPivotViewer</nowiki> control. The screenshot The screenshot below shows a Virtuoso generated collection displayed by the Virtuoso <nowiki>HtmlPivotViewer</nowiki>, * an extensible icon ontology to associate different icons with different entity classes * the use of icons to supply default images for entities which do not have their own (custom) imageother sources which support only one entity type * the ability to generate collections comprising a mix of several entity types, in contrast to Pivot collections from Pivot collections. These include:To further support this interaction paradigm, Virtuoso's CXML support includes other refinements not evident in typical underlying machine readable RDF data remains accessible via hyperlinks. making for a much more intuitive user experience. While the image tiles provide visual cues for human interaction, the of raw URIs. The RDF browsers available to date typically present little more than lists of entity URIs. In contrast,
>nowiki>HtmlPivotViewer</nowiki> uses an image, rather than an entity URI, as the primary UI representation of the entity,
Part of what makes <nowiki>HtmlPivotViewer</nowiki> compelling as a viewer for the Data Web is its use of images in place ---++++Combining A Human UI with Machine Readable Data#AncPivotViewerCombo---+++<nowiki>HtmlPivotViewer</nowiki>#AncPivotViewerFaceted query service for RDF, offering the facility to save Faceted search result sets as Pivot collections. * [[VirtSparqlCxmlFacetPivotBridge][Facet Pivot Bridge]] - A bridge to <nowiki>HtmlPivotViewer</nowiki> from Virtuoso's * <nowiki>HtmlPivotViewer</nowiki> - A cross-platform, cross-browser Pivot collection viewer, hosting the
>nowiki>HtmlPivotViewer</nowiki> control, for viewing Virtuoso-hosted or external 3rd party Pivot collections.
of SPARQL query result sets as CXML * <nowiki>SparqlCxml</nowiki> - An extension of Virtuoso's standard /sparql endpoint functionality to allow serialization To provide this RDF underpinning, the main components of Virtuoso's CXML offering comprise:Web and the basis of numerous massive open datasets hosted in the Linked Open Data cloud. enhanced greatly by driving it using RDF as the "data substrate", the same standards-based data format used by the Data Though designed from the outset as a viewer for web data, the reach and utility of <nowiki>HtmlPivotViewer</nowiki> are Linked Data Views or SPASQL.Virtuoso, or extracted from external RDF and non-RDF data sources using the Virtuoso Sponger, or from SQL data using [[http://en.wikipedia.org/wiki/QR_Code][QR codes]] (matrix bar codes). The source RDF data may be hosted directly in from RDF data, with automatic Deep Zoom image generation, using custom or default images, and the option of including creation steps outlined above. Virtuoso provides the ability to generate and view dynamic collections created directly other things a powerful hybrid RDF/SQL/XML data store and HTTP server, which together support each of the collection Virtuoso Universal Application Server is an ideal platform for creating and hosting Pivot collections, combining amongst ---+++Virtuoso Support for Pivot Collections#AncVirtuosoSupport 4. View it - View the collection in a browser by downloading a web page which hosts the <nowiki>HtmlPivotViewer</nowiki> control. 3. Host the collection - To share your collection with others, host it on a web server. 2. Create XML and images - Describe the data in Collection XML (CXML) and transform the images to the Deep Zoom format. 1. Pick your data - First, pick a set of data to turn into a collection.Creating a collection has four distinct steps:---+++Creating Collections#AncCreatingCollections
>img src="%ATTACHURLPATH%/HtmlPivotViewerBlock.png" style="wikiautogen"/>
hosting the <nowiki>HtmlPivotViewer</nowiki> Control is used to display the files.the files are CXML and Deep Zoom-formatted (DZC) images. When the user views the collection from a web browser, a web page that knows how to display them. In the current web, the files are traditionally HTML and images. In the collection case, Conceptually, a collection is just like any other web content. There?s a set of files on a server, and a local client * Images - The images in the collection are described in Deep Zoom format. * XML - The items in the collection are described in XML, in a ".cxml" file.are composed of two parts:items on the internet, allowing the web to be viewed as a web of data rather than a series of isolated pages. Collections Central to <nowiki>HtmlPivotViewer</nowiki> is the notion of a Collection. Collections combine large groups of similar a [[http://download3.openlinksw.com/HTML5/PivotViewer/html5pivotviewer-1.0.tar.gz][compressed tar archive]].a [[http://download3.openlinksw.com/HTML5/PivotViewer/html5pivotviewer-1.0.zip][zip]] or or a built version, including a VAD package that can be installed in Virtuoso, is available for download as either shopping. The <nowiki>HtmlPivotViewer</nowiki> sources can be downloaded from [[https://github.com/openlink/html5pivotviewer][github]] This functionality makes it a powerful tool in application domains such as business intelligence or deep comparison and filtering make it simple to drill down into a large dataset to an item of interest with specific features. that expose relationships, groupings or trends in the data. <nowiki>HtmlPivotViewer's</nowiki> powerful sorting on the web. <nowiki>HtmlPivotViewer</nowiki> lets you view thousands of items at once and visualize them in ways control. The control provides an intuitive interface that makes it easy to view, sort and filter huge datasets cross-platform version of Microsoft's Silverlight [[http://www.silverlight.net/learn/pivotviewer/][PivotViewer]] The [[https://github.com/openlink/html5pivotviewer][HtmlPivotViewer]] is a jQuery plugin that is a cross-browser, ---++Introduction#AncIntroduction---Part 9: [[VirtSparqlCxmlGlossaryHtml][Glossary]]Part 8: [[VirtSparqlCxmlFAQsHtml][Frequently Asked Questions (FAQs)]]Part 7: [[VirtSparqlCxmlDETsHtml][DETs : Persisting SPARQL Query Results to DAV]]Part 6: [[VirtSparqlCxmlFacetPivotBridgeHtml][Facet Pivot Bridge]]Part 5: [[VirtSparqlCxmlImportHtml][Importing CXML]]Part 4: [[VirtSparqlCxmlHtmlPivotViewer][HtmlPivotViewer]]Part 3: [[VirtSparqlCxmlDzcsHtml][SparqlCxml Deep Zoom Collections]] * [[#AncLinkTypeVirtuosoPL][Controlling Link Typing through Virtuoso/PL]] * [[#AncLinkTypeQryStringParam][Controlling Link Typing through /sparql Query String Parameters]] * [[#AncLinkTypeUIOpts][Link Typing Options]] * [[#AncLinkType][Link Typing]] * [[#AncLabelLocalization][Label Localization]] * [[#AncAutoLabels][Automatic Labels]] * [[#AncExploitingInferencing][Exploiting Inferencing]] * [[#AncUsingLabels][Using Labels in Place of URIs]] * [[#AncExcludingFacetFilterPanel][Excluding a Facet from the Filter Panel]] * [[#AncVirtcxmlSetQrcodeFacet][Setting the Facet Used to Generate a QR code]] * [[#AncVirtcxmlSetFacetDatatype][Setting a Facet's Datatype]] * [[#AncVirtcxmlSetFacetName][Setting a Facet's Name]] * [[#AncVirtcxmlSetItemDescription][Setting an Item's Description]] * [[#AncVirtcxmlSetItemName][Setting an Item's Name]] * [[#AncVirtcxmlSetItemImage][Setting an Item's Image]] * [[#AncVirtcxmlFacetType][<nowiki>virtcxml:FacetType</nowiki>]] * [[#AncGraphVirtCxml][Graph virtcxml]] * [[#AncQueryVariableOrder][Query Variable Order]] * [[#AncReservedQueryVariablesExamples][Examples]] * [[#AncReservedQueryVariables][<nowiki>SparqlCxml</nowiki> Reserved Query Variables]] * [[#AncFacetTypeAutoDetection][Auto-Detection of Facet Type]] * [[#AncDefaultSettings][Default Settings]] * [[#AncRdfToCxmlMappingDescribe][DESCRIBE and CONSTRUCT]] * [[#AncRdfToCxmlMappingSelect][SELECT]] * [[#AncRdfToCxmlMappingBasicApproach][RDF to CXML Mapping - The Basic Approach]] * [[#AncSparqlEndpointCxmlExtensions][SPARQL Endpoint CXML Extensions]] * [[#AncCollectionXml][Collection XML]] * [[#AncPivotViewerUI][<nowiki>HtmlPivotViewer</nowiki> UI]] * [[#AncKeyParts][<nowiki>HtmlPivotViewer & Collection XML</nowiki> - Key Parts]] * [[#AncSparqlCxml][<nowiki>SparqlCxml</nowiki>]]Part 2: <nowiki>SparqlCxml</nowiki> * [[#AncCxmlGenerationFromSparql][CXML Generation from /sparql]] * [[#AncImageMagick][<nowiki>ImageMagick</nowiki>]] * [[#AncVerifyingYourInstallation][Verifying your installation]] * [[#AncConfiguringVirtuoso][Configuring Virtuoso's CXML Support]] * [[#AncPivotViewerHypermedia][A Viewer for Hypermedia-based Structured Data]] * [[#AncPivotViewerCombo][Combining A Human UI with Machine Readable Data]] * [[#AncPivotViewer][<nowiki>HtmlPivotViewer</nowiki>]] * [[#AncVirtuosoSupport][Virtuoso Support for Pivot Collections]] * [[#AncCreatingCollections][Creating Collections]] * [[#AncIntroduction][Introduction]]Part 1: Introduction---++ Contents---+ Pivot Collections%META:TOPICPARENT{name="VOSIndex"}%