From Data to Decisions: The Virtuoso Knowledge Graph

For government clients managing vast data lakes, the challenge is clear: transform massive volumes of structured and unstructured data into an actionable semantic layer. This demonstration showcases how Virtuoso Universal Server provides a high-performance, on-premises solution to build comprehensive knowledge graphs without compromising on scale or security.

We will explore how to instantly generate knowledge graphs from diverse sources like webpages, emails, legal documents, and call transcripts, primarily by leveraging the powerful combination of the OpenLink Structured Data Sniffer (OSDS) and the OpenLink Personal Assistant (OPAL).

Unstructured Data Transformation

1. From a Web Page

Using OSDS and OPAL, a knowledge graph can be generated from a webpage's unstructured and structured content instantly, without writing any code.

Knowledge Graph from Booz Allen Hamilton website

2. From Email Files

Demonstration of adding email content and extracted entities into the knowledge graph.

Conversation Link

3. From a Legal Document

This example shows an NDA being added to the knowledge graph.

Conversation Link

4. From Call Transcripts

Converting call transcripts to RDF and performing entity extraction.

Conversation Link

5. From a DoD Report

Converting a DoD report to RDF and adding it to the knowledge graph.

Conversation Link

LLM Integration & AI Layer

The OpenLink Personal Assistant (OPAL)

OPAL is an LLM-powered Smart Agent for invoking actions on data accessible via HTTP, ODBC, or JDBC. It's compatible with OpenAI, Anthropic, Gemini, Mistral, Grok, and any other service using the OpenAI API pattern (like Ollama or LM Studio). This enables natural language interaction with your data.

Generic LLM App Architecture

Evaluation License Generation

OPAL Evaluation License Generation Demo

Support Agent

OPAL Support Agent Demo

Virtual & Physical Knowledge Graphs from CSVs

This example demonstrates creating a comprehensive knowledge graph from a synthetic financial dataset comprising 80 CSV documents. We'll convert customer and transaction data into both virtual and physical RDF triples using R2RML.

1. Load Data into SQL Tables

First, we install a custom stored procedure to map multiple CSVs to a virtual SQL table, then create both virtual and physical tables.

Adding tables from CSVs

2. Generate Linked Data Views

Virtuoso provides multiple ways to generate the RDF views from the SQL data, including a user-friendly wizard or automated generation for users who want a ready-made mapping and ontology.

Linked Data View Generator

3. Chat with the Knowledge Graph

Using OPAL, we can immediately confirm the creation of the knowledge graph by asking questions in natural language.

Chatting with the Knowledge Graph

4. Querying with Third-Party Tools

Any ODBC, JDBC, or HTTP-compliant application can connect to Virtuoso, enabling analysis and visualization in tools you already use.

Tableau

Tableau Integration

Excel

Excel Integration

Neo4j (via JDBC)

Neo4j Integration

Federated Queries

Virtuoso excels at creating a unified data fabric by federating queries across disparate data sources, whether they are different SQL databases or remote SPARQL endpoints.

Federated SQL (SQL-FED)

Here, we execute a single query that joins tables across three different RDBMS instances: a local Virtuoso instance, a remote SQL Server, and a remote MySQL server.

Federated SQL Query Example

This federated view can then be exposed as a virtual knowledge graph, making it queryable via SPARQL.

Federated SPARQL (SPARQL-FED)

This powerful feature allows a single SPARQL query to retrieve and integrate data from multiple, independent SPARQL endpoints on the web. This example joins data about Robert Downey Jr. from DBpedia and Wikidata to list his awards, spouses, and partners.