! Introduction On this page the ''SparqlVisualization'' markup is demonstrated via examples based on the Simpsons ontology from the [Simpsons Demo | Demo - Simpsons] 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 %%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 % {{{ %%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. %%SparqlVisualization 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:child). FILTER (?y != si:parent). FILTER (?y != si:grandparent). FILTER (?z != ?x). BIND (SUBSTR(STR(?y), 33) AS ?yLabel) } @rankDir: BT @size: 600 % {{{ 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]. %%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 @colors: si:color % {{{ %%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 %%SparqlVisualization SELECT ?x ?y ?z WHERE { ?x ?y ?z . ?x rdf:type rdf:Property. FILTER (?x != <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 % {{{ %%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 % }}} %%package simpsons