Doc SparqlVisualization
Back to current version Restore this version

Introduction#

On this page the SparqlVisualization markup is demonstrated via examples based on the Simpsons ontology from the Simpsons Demo

For using the SparqlVisualization markup a sparql query with exactly three variables has to be defined. Each triple variable binding of the result set of the query defines one edge of the drawn visualization graph. The first variable value will create the source node, while the third variable value creates the target node. The source and target node will be connected by an edge having the value of variable two. This can be represented by the following pattern:

%%SparqlVisualization
SELECT ?source ?edge ?target WHERE { <selection-pattern>}
%

Display the Class Hierarchy as a Tree#

No ontology found! The package '' is not used to compile an ontology.

%%SparqlVisualization
     SELECT ?x ?y ?z WHERE {
	    ?x ?y ?z . 
	    ?x rdfs:subClassOf si:SimpsonsConcept. 
	    ?z rdfs:subClassOf si:SimpsonsConcept. 
	    ?x rdfs:subClassOf ?z.
	    FILTER NOT EXISTS { 
	    	?middleObject rdfs:subClassOf si:SimpsonsConcept. 
	    	?x rdfs:subClassOf ?middleObject. 
	    	?middleObject rdfs:subClassOf ?z.
	    	FILTER (?middleObject != ?x ).
	    	FILTER (?middleObject != ?z ).
 	    }
 	    FILTER (?x != owl:Nothing).
 	     FILTER (?x != ?z).
	    BIND (" " AS ?edge).

}
@rankDir: BT
@linkMode: browse
@size: 700
%

Display the family relations as a graph using labels#

One can use the available features of SPARQL to create customized labels for the nodes and edges to generate a more nicely readable visualization.

No ontology found! The package '' is not used to compile an ontology.

   SELECT ?xLabel ?yLabel ?zLabel WHERE {
	    ?x ?y ?z . 
	    ?x rdf:type si:Human. 
	    ?z rdf:type si:Human.
	    ?x rdfs:label ?xLabel.
	    ?z rdfs:label ?zLabel.
	    FILTER (?y != si:relatedWith).
	    FILTER (?y != si:parent).
	    FILTER (?y != si:child).
	    FILTER (?y != si:grandparent).
	    FILTER (?z != ?x).
	    BIND (SUBSTR(STR(?y), 33) AS ?yLabel)  
}
@rankDir: BT
@size: 600

Visualize lost of stuff (be careful for large ontologies!)#

Note: You can use the option "display svg" from the tool menu on the top right of the visualization to open the diagram in a distinct window. Then you can use browser functions to zoom an navigate the graph.

Colors: The annotation @colors allows to specify a color schema by defining a property. With this property colors can be assigned to Classes and Properties. The color schema for this example can be found on Visualization Util.

No ontology found! The package '' is not used to compile an ontology.

%%SparqlVisualization

    SELECT ?x ?y ?z WHERE {
	    ?x ?y ?z . 
	    FILTER (STRSTARTS(STR(?x), "http://www.example.org/ontology#")).
	    FILTER (STRSTARTS(STR(?z), "http://www.example.org/ontology#")).
	    FILTER NOT EXISTS {?x rdf:type rdfs:Class}.
	    FILTER NOT EXISTS {?z rdf:type rdfs:Class}.
	    FILTER NOT EXISTS {?x rdf:type rdf:Property}.
	    FILTER NOT EXISTS {?z rdf:type rdf:Property}.
	    FILTER (?y != si:relatedWith).
	    FILTER (?y != si:parent).
	    FILTER (?y != si:child).
	    FILTER (?y != si:grandparent).
	    FILTER (?z != ?x).

}
@rankDir: BT
@size: 1200
%

Show all Properties of the Simpsons Ontology #

No ontology found! The package '' is not used to compile an ontology.

%%SparqlVisualization

    SELECT ?x ?y ?z WHERE {
	    ?x ?y ?z . 
	    ?x rdf:type rdf:Property.
	    FILTER (?z != <http://www.w3.org/2000/01/rdf-schema#Resource>). 
	    FILTER (STRSTARTS(STR(?x), "http://www.example.org/ontology#")).
	    FILTER (STRSTARTS(STR(?z), "http://www.example.org/ontology#")).
	    FILTER (?z != ?x).

}
@rankDir: BT
@size: 1200
%

simpsons