hobbit-project / platform

HOBBIT benchmarking platform
GNU General Public License v2.0
23 stars 9 forks source link

Offer parameter forwarding from benchmark to system #152

Closed MichaelRoeder closed 6 years ago

MichaelRoeder commented 6 years ago

User story

As a benchmark creator, I want to be able to give a parameter to the system that is crucial for my benchmark. Instead of implementing an additional configuration phase as part of my benchmark API, the platform should support the forwarding of certain parameters that can be processed by the system.

Solution

A benchmark could define parameters of a certain type that are copied from their RDF model to the RDF model of the system. Lets assume we have a type hobbit:ForwardedParameter that is a sub class of hobbit:Parameter, a benchmark b could have the following definition in its benchmark.ttl

@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix hobbit: <http://w3id.org/hobbit/vocab#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<http://www.example.org/exampleBenchmark/MyOwnBenchmark> a hobbit:Benchmark;
    rdfs:label "MyBenchmark"@en;
    rdfs:comment    "This is my own example benchmark..."@en;
    hobbit:imageName    "git.project-hobbit.eu:4567/maxpower/mybenchmarkcontroller";
    hobbit:version "v1.1"@en;
    hobbit:hasAPI   <http://www.example.org/exampleBenchmark/API>;
    hobbit:hasParameter <http://www.example.org/exampleBenchmark/exampleParameter> .

<http://www.example.org/exampleBenchmark/exampleParameter> a hobbit:ConfigurableParameter, hobbit:ForwardedParameter;
    rdfs:range xsd:unsignedInt;
        hobbit:defaultValue "10000"^^xsd:unsignedInt .

During the configuration of an experiment, the user sets the value of the parameter. During the creation of the experiment, the platform checks the benchmarks model for parameters like that and copies the triple defining its value into the systems RDF model.

Tasks for implementation

smirnp commented 6 years ago

It works fine, thanks! How fast this feature will occur in the online platform?

MichaelRoeder commented 6 years ago

We still need to update the ontology and the core library (we have to add the new property class to both). After that, we can have a release and deploy it on the platform.