@Override
public Dataset open(final Assembler assembler, final Resource root, final Mode mode) {
if ( ! root.hasProperty( RDF.type, DatasetAssemblerVocab.tDatasetTxnMem ) )
checkType(root, DatasetAssemblerVocab.tMemoryDataset);
final Dataset dataset = createTxnMem();
setContext(root, dataset.getContext());
Txn.executeWrite(dataset, ()->{
multiValueAsString(root, data)
.forEach(dataURI -> read(dataset, dataURI));
multiValueResource(root, pNamedGraph).forEach(namedGraphResource -> {
final String graphName = getAsStringValue(namedGraphResource, pGraphName);
if (namedGraphResource.hasProperty(data)) {
multiValueAsString(namedGraphResource, data)
.forEach(namedGraphData -> read(dataset.getNamedModel(graphName), namedGraphData));
}
});
});
return dataset;
}
}