Configuration file generation
java -Xmx16G -agentlib:native-image-agent=config-output-dir=src\main\resources\META-INF\native-image -jar target\BeakGraph-0.10.0.jar
Native Command-line
mvn -Pcmdlinenative clean package
Jar Command-line
mvn -Pcmdlinejar clean package
Core Library Jar Library
mvn -Plib clean package
HDF5Writer.Builder()
.setSource(file)
.setSpatial(true) # only needed if GeoSPARQL spatial data is present
.setDestination(dest)
.build()
.write();
try (HDF5Reader reader = new HDF5Reader(dest)) {
BeakGraph bg = new BeakGraph( reader );
Dataset ds = bg.getDataset();
ds.getDefaultModel().write(System.out, "NTRIPLE");
}
BeakGraph is a Apache Jena Graph implementation backed by HDF5. Beakgraph's HDF5 design is heavily inspired by HDT.
The first iteration of BeakGraph was backed by Apache Arrow instead of HDF5. An Apache Arrow version will return. Reasons for this are varied with some of these reasons being just experimentation. The general idea of BeakGraph is a read-only, searchable, indexed set of binary sussinct data structures to represent an RDF Dataset. What these sussinct data structures are stored in, is somewhat immaterial, but the choice of container has it's pro and cons. HDF5 treats multi-dimensional arrays as first class citizens, and has a free viewer for HDF5 files called HDFView. HDFView providing a nice way to debug the sussinct data structures during development. There are other perks to HDF5 which will become apparent in time.
Support for spatial indexing based on GeoSPARQL is being worked on.
The full list of containers under consideration are:
The original BeakGraph was an Apache Jena Graph implementation backed by Apache Arrow wrapped in a Research Object Crate (RO-Crate) inspired by HDT.
Developed to power Halcyon. See Arxiv paper at http://arxiv.org/abs/2304.10612
