https://github.com/smartdataanalytics/embeddable-bsbm
Fork of the BSBM source code intended for closer integration in software projects
https://github.com/smartdataanalytics/embeddable-bsbm
Last synced: 5 months ago
JSON representation
Fork of the BSBM source code intended for closer integration in software projects
- Host: GitHub
- URL: https://github.com/smartdataanalytics/embeddable-bsbm
- Owner: SmartDataAnalytics
- License: apache-2.0
- Created: 2017-06-09T11:18:29.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2024-04-18T09:37:43.000Z (about 1 year ago)
- Last Synced: 2024-04-18T10:46:04.897Z (about 1 year ago)
- Language: Java
- Homepage:
- Size: 2.22 MB
- Stars: 3
- Watchers: 26
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# BSBM-Fork
This project is a fork of the [BSBM Source code (revision 81)](https://sourceforge.net/p/bsbmtools/code/81) intended for closer integration in projects.## Changes over the original code base
* Converted to a maven project together with deployment/release of artifacts
* Logging:
* Replaced the original logger with slf4j
* Split the original BSBM code into [bsbm-core](bsbm-core) and [bsbm-cli](bsbm-cli) modules, where the main difference is, that the latter depends on a concrete logger implementation.
* Enhanced code base to not require files for communication between components - this means:
* Moved static resources to (bsbm-core/src/main/resources)[bsbm-core/src/main/resources]
* Added a TestDriverParams class. The Generator yields objects of this class, and the TestDriver can be configured with such an instance.
* Added a SerializerModel class which writes the generated dataset to a Jena model (instead of a file)## Maven artifacts
```xml
org.aksw.bsbm
bsbm-jsa
3.1```
For snapshot version, add our archiva:
```xml
maven.aksw.snapshots
AKSW Snapshot Repository
http://maven.aksw.org/archiva/repository/snapshots
false
true
```For the original bsbm without the jena-sparql-api (jsa) integration, use `bsbm-core` instead.
## Usage
```java
// The BSBM Generator is a static class
Serializer serializer = new SerializerModel();
Generator.init(Arrays.asList());
Generator.setSerializer(serializer);
Generator.run();
// Obtain the result artifacts
TestDriverParams testDriverParams = Generator.getTestDriverParams();
Model model = serializer.getModel();// Create the jena-sparql-api query abstraction
QueryExecutionFactory qef = FluentQueryExecutionFactory.http("http://your.endpoint/sparql", "http://your-bsbm-dataset-graph.org").create();// Configure and run the test driver
TestDriver testDriver = new TestDriver(Arrays.asList());
testDriver.setParameterPool(new LocalSPARQLParameterPool(testDriverParams, testDriver.getSeed()));
testDriver.setServer(new SPARQLConnection2(qef));testDriver.run();
```## TODOs
* Extend the APIs to make benchmark results programmatically accessible
* Compare benchmark runs of the forked code base to those of original one to ensure we did not introduce any mistakes that influence the benchmark results