Именованные графы v Поведение графов по умолчанию в Apache Jena Fuseki
У нас работает Apache Jena Fuseki.
Если мы загружаем graphA и graphB
SELECT (COUNT(*) as ?count)
FROM <graphA>
FROM <graphB>
WHERE { ?s ?p ?o . }
дает 100
Если мы загружаем тройки в A и B в Default
SELECT (COUNT(*) as ?count)
WHERE { ?s ?p ?o . }
дает 200
Кажется, в графе FROM нет никакого вывода между graphA и graphB?
Как мы это исправим?
Нашли рассуждения с Fuseki, TDB и именованными графами? но не понимаю, если это та же проблема.
Пример данных: График A:
Mdworking:Measure
a owl:Class ;
mdmm:elementName "Measure" .
График Б:
Mddemobank:Account_Balance
a owl:Class ;
rdfs:subClassOf Mdworking:Measure ;
mdmm:elementName "Account_Balance" .
Mddemobank:Sub_Account_Balance
a owl:Class ;
rdfs:subClassOf Mddemobank:Account_Balance ;
mdmm:elementName "Sub_Account_Balance" .
Запрос:
SELECT ?subject ?predicate ?object
FROM <A>
FROM <B>
WHERE {
?subject ?predicate ?object
}
не дает предполагаемый Mddemobank:Sub_Account_Balance subClassOf Mdworking:Measure
Пробовал запрос
SELECT *
{
{ ?s ?p ?o } UNION { GRAPH ?g { ?s ?p ?o } }
}
который возвращает тройки из A, B и значения по умолчанию, но не показывает выведенные тройки.
Среда:
* Tested version 2.6.0 on Ubuntu
* Tested version 3.4.0. on Windows 10
* Loaded the test files using the browser
Вот файл ассемблера
@prefix : <http://base/#> .
@prefix tdb: <http://jena.hpl.hp.com/2008/tdb#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix ja: <http://jena.hpl.hp.com/2005/11/Assembler#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix fuseki: <http://jena.apache.org/fuseki#> .
@prefix : <http://base/#> .
@prefix tdb: <http://jena.hpl.hp.com/2008/tdb#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix ja: <http://jena.hpl.hp.com/2005/11/Assembler#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix fuseki: <http://jena.apache.org/fuseki#> .
# THE SERVICE
<service1> a fuseki:Service ;
fuseki:dataset <#dataset> ;
fuseki:name "xxx" ;
fuseki:serviceQuery "query" , "sparql" ;
fuseki:serviceReadGraphStore "get" ;
fuseki:serviceReadWriteGraphStore "data" ;
fuseki:serviceUpdate "update" ;
fuseki:serviceUpload "upload" .
# DATASET for the service
<#dataset> rdf:type ja:RDFDataset ;
rdfs:label "xxx" ;
ja:defaultGraph <#model_inf>
.
# MODEL for dataset
<#model_inf> a ja:InfModel ;
ja:baseModel <#tdbGraph> ;
ja:reasoner [
ja:reasonerURL <http://jena.hpl.hp.com/2003/RDFSExptRuleReasoner>
] .
# Graph for the default Model
<#tdbGraph> rdf:type tdb:GraphTDB;
tdb:dataset <#tdb_dataset_readwrite> .
# Dataset for the Graph
<#tdb_dataset_readwrite>
a tdb:DatasetTDB ;
tdb:unionDefaultGraph true ;
#if you want all data to available in the default graph
#without 'FROM-NAMing them' in the SPARQL query
tdb:location "C:\\Programs_other\\apache-jena-fuseki-3.4.0\\apache-jena-fuseki-3.4.0\\run/databases/xxx" .