VizKG, a visualization library for SPARQL query results over KGs. VizKG links SPARQL query results and external visualization libraries by mapping query variables to the visualization components needed, currently allowing for 24 types of visualizations. Not only that, VizKG also provides visualization recommendations for arbitrary SPARQL query result.
VizKG now features SPARQL endpoint access with basic authentication where users can use the feature at their own risk. The purpose of VizKG is for educational only.
Use the package manager pip to install VizKG.
pip install VizKG
# Import the library
import VizKG.visualize as vkg
VizKG returns the automated visualization when there is no chart type preference given.
#Wikidata: Covid-19 Recoveries, Cases, and Death Growth
sparql_query = """
SELECT ?time ?Recoveries ?Cases ?Deaths WHERE {
{
SELECT ?time ?Recoveries WHERE {
wd:Q84263196 p:P8010 ?countRes .
FILTER NOT EXISTS { ?countRes pq:P276 ?loc }
?countRes ps:P8010 ?Recoveries ;
pq:P585 ?time .
}
}
{
SELECT ?time ?Cases WHERE {
wd:Q84263196 p:P1603 ?countRes .
FILTER NOT EXISTS { ?countRes pq:P276 ?loc }
?countRes ps:P1603 ?Cases ;
pq:P585 ?time .
}
}
{
SELECT ?time ?Deaths WHERE {
wd:Q84263196 p:P1120 ?countRes .
FILTER NOT EXISTS { ?countRes pq:P276 ?loc }
?countRes ps:P1120 ?Deaths ;
pq:P585 ?time .
}
}
}
"""
sparql_service_url = "https://query.wikidata.org/sparql"
chart = vkg(sparql_query=sparql_query, sparql_service_url=sparql_service_url)
chart.plot()
sparql_query = """
SELECT DISTINCT ?vaccineLabel ?originCountry {
?vaccine wdt:P1924 wd:Q84263196 .
?vaccine wdt:P178 ?developer.
?vaccine rdfs:label ?vaccineLabel .
?developer wdt:P17 ?origin .
?origin rdfs:label ?originCountry .
FILTER (LANG(?vaccineLabel) = 'en').
FILTER (LANG(?originCountry) = 'en').
}LIMIT 25
"""
#to query another endpoint, change the URL for the service and the query
sparql_service_url = "https://query.wikidata.org/sparql"
chart = vkg(sparql_query=sparql_query, sparql_service_url=sparql_service_url, chart='sunburst')
chart.plot()
sparql_query = """
SELECT * WHERE {
?item dbo:wikiPageWikiLink dbr:Candi_of_Indonesia;
geo:geometry ?geo .
?item rdfs:label ?itemLabel.
FILTER((LANG(?itemLabel)) = "en")
}
"""
#to query another endpoint, change the URL for the service and the query
sparql_service_url = "https://dbpedia.org/sparql/"
chart = vkg(sparql_query=sparql_query, sparql_service_url=sparql_service_url, chart='map')
chart.plot()
sparql_query = """
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX schema: <http://schema.org/jobTitle>
SELECT DISTINCT ?jobTitle (COUNT(?jobTitle) as ?count) WHERE {?s a foaf:Person .
?s <http://schema.org/jobTitle> ?jobTitle .
FILTER (lang(?jobTitle) != 'en')
}
GROUP BY ?jobTitle
HAVING (?count > 10)
"""
#to query another endpoint, change the URL for the service and the query
sparql_service_url = "https://data.open.ac.uk/sparql"
chart = vkg(sparql_query=sparql_query, sparql_service_url=sparql_service_url, chart='TreeMap')
chart.plot()
sparql_query = """
prefix bkb: <https://budayakb.cs.ui.ac.id/ns#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?provLabel (COUNT(?temple) AS ?numTemple) WHERE {
?temple a bkb:Candi .
?temple bkb:locationInProvince ?prov .
?prov rdfs:label ?provLabel.
FILTER (lang(?provLabel) = 'id')
} GROUP BY ?provLabel
ORDER BY DESC(?numTemple)
"""
#to query another endpoint, change the URL for the service and the query
sparql_service_url = "https://budayakb.cs.ui.ac.id/budaya/sparql"
chart = vkg(sparql_query=sparql_query, sparql_service_url=sparql_service_url, chart='bubble')
chart.plot()
- Table
- ImageGrid
- Map
- Graph
- Tree
- Dimensions
- Timeline
- WordCloud
- Histogram
- Density Plot
- Box Plot
- Violin Plot
- Line Chart
- Bar Chart
- Area Chart
- Stacked Area Chart
- Bubble Chart
- Scatter Chart
- HeatMap
- Radar Chart
- Tree Map
- SunBurst Chart
- Pie Chart
- Donut Chart
Tool | Framework | Data Source | Input Type | Number of Chart Types |
---|---|---|---|---|
Wikidata Query Service | Web-based | Wikidata only | SPARQL SELECT | 14 |
Dataviz | Web-based | Wikidata only | SPARQL SELECT | 23 |
YASGUI | Web-based | Generic | SPARQL SELECT and SPARQL CONSTRUCT | 11 |
LDVizWiz | Web-based | Generic | SPARQL SELECT/ASK and RDF Data | 27 |
Sparklis | Web-based | Generic | Text | 4 |
Quedi | Web-based | Generic | Text | 16 |
Voyager | Web-based | Generic | Tabular Data | 5 |
S-Paths | Web-based | Generic | RDF Data | 10 |
Gastrodon | Python Library | Generic | RDF Data | - |
kglab | Python Library | Generic | RDF Data | 1 |
Autoviz | Python Library | Generic | Tabular Data | 5 |
Visualizer | Python Library | Generic | Tabular Data | 20 |
This project exists thanks to all the people who contribute.