Hi
I am evaluating Virtuoso as part of data fabric project in my organization. I found out in the documentation 16.14.1. Introduction (openlinksw.com) that reasoning will work only for materialized graphs. But reading thought an article Harmonizing Disparate RDBMS Data using Virtuoso’s built-in Reasoning and Inference functionality - Virtuoso Universal Server / Tips, Tricks, and HowTos - OpenLink Software Community (openlinksw.com) it seems that reasoning can be done for VDB as well. I tried a reasoning over VDB as per the documentation, but with no luck. Can you please provide some details about how reasoning can be done for VDB if possible.
Please find the snippets of my test.
Created virtual graph using Virtuoso.
Basic SPARQL query to retrieve movies works.
SPARQL
PREFIX : http://localhost:8890/schemas/movies_mysql/
SELECT * FROM http://localhost:8890/movies_mysql#
WHERE {
?s a :movies;
:title ?title .
}
LIMIT 10
What I wanted to test is create an RDFS class called “Films” which is equivalent as :movies using owl:equivalentClass.
For that I tried to add “Films” class in to the graph and used owl:equivalentClass
SPARQL
INSERT
{
GRAPH http://localhost:8890/schemas/movies_mysql#
{
http://localhost:8890/schemas/movies_mysql/Films a rdfs:Class .
http://localhost:8890/schemas/movies_mysql/Films owl:equivalentClass http://localhost:8890/schemas/movies_mysql/movies .
}
};
SPARQL
ADD http://www.w3.org/2000/01/rdf-schema#
TO http://localhost:8890/schemas/movies_mysql# ;
Then created RDFS rule
RDFS_RULE_SET(‘mysql-vdb-test’,‘http://localhost:8890/schemas/movies_mysql#’);
I was expecting below query would return all “movies”
SPARQL
DEFINE input:inference ‘mysql-vdb-test’
PREFIX : http://localhost:8890/schemas/movies_mysql/
SELECT *
FROM http://localhost:8890/movies_mysql#
{
?s a :Films;
:title ?title.
}
But I get empty result.