Build powerful, secure, and scalable Knowledge Graphs with the Virtuoso Data Spaces platform.
This page comprises embedded demonstrations of how the Virtuoso Data Spaces platform empowers your organization through its ability to create semantically rich Knowledge Graphs that breakdown data silos -- without compromising performance, scalability, or security.
Instantly generate a knowledge graph from any webpage. Our tools extract structured data and entities automatically, no manual coding required.
Extract key information from email content and attachments, seamlessly adding it to your knowledge graph to uncover hidden connections.
Analyze complex legal documents by converting them into a structured knowledge graph, making contracts and filings easily searchable.
Turn call transcripts into actionable intelligence by extracting entities and relationships, and adding them to your graph.
Convert dense government and defense reports into structured RDF, making them queryable and interoperable with other data.
The OpenLink AI Layer (OPAL) is a powerful middleware add-on for Virtuoso. It enables you to create and deploy AI Agents and Assistants that use natural language to interact with your data. These agents connect seamlessly with various LLMs, web services, and your data sources—whether they are databases, existing knowledge graphs, or documents on a file system.
Don't move your data. Virtualize it. Virtuoso can create a knowledge graph directly from your CSV files, allowing you to query them in place using SQL or SPARQL without a complex ETL process.
Use this custom procedure to quickly map an entire directory of CSV files to a single virtual SQL table.
-- Install Custom Stored Procedure
-- for quickly mapping multiple
-- CSV documents to a virtual SQL Table.
CREATE PROCEDURE file_dirlist_full (IN a ANY) {
DECLARE _inx integer;
DECLARE F VARCHAR;
DECLARE L INT;
F := file_dirlist(a,1);
L := length(F);
_inx := 0;
While(_inx < L) {
DECLARE v any;
F[_inx] := concat(a,'/',F[_inx]);
_inx := _inx + 1;
}
return F;
};
CREATE PROCEDURE attach_from_csv_dir (
IN tb VARCHAR, IN dir ANY, in delimiter VARCHAR,
in newline VARCHAR, in esc VARCHAR,
in skip_rows int, in pkey_columns any := null
) {
declare f VARCHAR;
f:= attach_from_csv(tb,file_dirlist_full(dir),
delimiter,newline,esc,skip_rows,pkey_columns);
return F;
};
Execute this script to attach your CSVs as virtual tables, and then optionally materialize them for high-performance queries.
-- Attach CSVs as Virtual Tables
ATTACH_FROM_CSV_DIR('demo.fint.account', 'fint/synthetic_data/accounts', ',', '\n', null, 1, VECTOR(1));
ATTACH_FROM_CSV_DIR('demo.fint.customer', 'fint/synthetic_data/customers', ',', '\n', null, 1, VECTOR(1));
ATTACH_FROM_CSV_DIR('demo.fint.transaction', 'fint/synthetic_data/transactions', ',', '\n', null, 1, VECTOR(1));
ATTACH_FROM_CSV_DIR('demo.fint.fraud_label', 'fint/synthetic_data/fraud_labels', ',', '\n', null, 1, VECTOR(1));
GRANT SELECT ON demo.fint.account to SPARQL_SELECT;
GRANT SELECT ON demo.fint.customer to SPARQL_SELECT;
GRANT SELECT ON demo.fint.transaction to SPARQL_SELECT;
GRANT SELECT ON demo.fint.fraud_label to SPARQL_SELECT;
-- Optionally, create physical tables for speed
CREATE TABLE demo.fint.account_physical
AS SELECT * FROM demo.fint.account WITH DATA;
CREATE TABLE demo.fint.customer_physical
AS SELECT * FROM demo.fint.customer WITH DATA;
...
Virtuoso's data federation capabilities let you run a single query across multiple, disparate data sources—whether they're other SQL databases or remote SPARQL endpoints. Unite your data silos without migrating anything.
Here, we attach tables from SQL Server and MySQL, then query them as if they were a single, local database.
This SPARQL-FED query seamlessly pulls data about Robert Downey Jr. from both DBpedia and Wikidata in real-time.
View Live QueryVirtuoso supports Attribute-Based Access Control (ABAC) to enforce sophisticated, policy-based security. In this example, access to a specific graph is restricted. Unauthenticated users receive no results, ensuring sensitive data remains private.
-- Make Named Graph Private
DB.DBA.RDF_GRAPH_GROUP_INS (
'http://www.openlinksw.com/schemas/virtrdf#PrivateGraphs',
'urn:fint:private'
);
-- Add an ACL Rule to Grant Access
SPARQL
PREFIX oplacl: <http://www.openlinksw.com/ontology/acl#>
PREFIX acl: <http://www.w3.org/ns/auth/acl#>
INSERT INTO GRAPH <http://demo.openlinksw.com/acl/graph/rules/...> {
<urn:fint:private:rule> a acl:Authorization ;
oplacl:hasAccessMode oplacl:Read ;
acl:accessTo <urn:fint:private> ;
acl:agent <.../person/demo#this> ;
oplacl:hasScope oplacl:PrivateGraphs .
};
Virtuoso's reasoning and inference engine discovers new relationships in your data, enabling smarter queries and deeper insights. It can infer facts that aren't explicitly stated, turning your knowledge graph into a true reasoning system.
Leverage predefined reasoning and inference rules pegged to specific relationship types (e.g., subsumption, transitivity, symmetry, inversion, inverse-functionality, and equivalence). This allows Virtuoso to automatically understand hierarchical and logical relationships in your data.
Define powerful, custom relationships that are derived dynamically using SPARQL CONSTRUCT as the rule language. This gives you the flexibility to implement complex business logic and domain-specific inference directly within the database.