System meta data file

Michael Röder edited this page Apr 5, 2017 · 13 revisions

The system meta data file comprises meta data about the uploaded system that is needed by the Hobbit platform. The file contains the meta data as RDF triples in the Turtle format and needs to be uploaded to the git instance of the platform, e.g., into the root directory of the project which hosts the system Docker image. This article gives guidance how this meta data file can be created for a system called "MyOwnSystem".

Simple file

The simplest file defines only those information that are necessary to get the system running. First, we have to collect the necessary data:

  • The system needs a unique identifier, i.e., a URI. In our example, we choose http://www.example.org/exampleSystem/MyOwnSystem.
  • The system needs a name ("MyOwnSystem") and a short description ("This is my own example system...").
  • The name of the uploaded docker image is needed ("git.project-hobbit.eu:4567/maxpower/mysystem").
  • The URI of the benchmark API, the system implements (http://benchmark.org/MyNewBenchmark/BenchmarkApi, should be provided by the benchmark description page).

Our example file has the following content

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

<http://www.example.org/exampleSystem/MyOwnSystem> a  hobbit:SystemInstance; 
	rdfs:label	"MyOwnSystem"@en;
	rdfs:comment	"This is my own system defined in a simple way"@en;
	hobbit:imageName "git.project-hobbit.eu:4567/maxpower/mysystem";
	hobbit:implementsAPI <http://benchmark.org/MyNewBenchmark/BenchmarkApi> .

Using parameters for a system

Some systems offer one or more parameters which can be used to adapt the system for certain scenarios. The HOBBIT platform can analyse the influence of a parameter on the systems performance using its analysis component. To enable this analysis, it is necessary to define the parameters as well as the single parameterizations of a system in the meta data file. To this end, a hobbit:System has to be defined that is connected to hobbit:FeatureParameter instances. The single parameterised versions of the system are defined as hobbit:SystemInstance objects with a single value for each parameter.

@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/exampleSystem/System> a hobbit:System ;
    rdfs:label "MySystem"@en;
    rdfs:comment "This is my own system defined in a simple way"@en;
    hobbit:hasParameter <http://www.example.org/exampleSystem/System#threshold> .

<http://www.example.org/exampleSystem/System#threshold> a hobbit:FeatureParameter ;
    rdfs:label "Threshold"@en ;
    rdfs:comment "A threshold parameter for our System."@en ;
    rdfs:range  xsd:float .

<http://www.example.org/exampleSystem/MyOwnSystem> a  hobbit:SystemInstance; 
    rdfs:label  "MySystem (0.7)"@en;
    rdfs:comment    "This is my own system with a threshould of 0.7"@en;
    hobbit:imageName "git.project-hobbit.eu:4567/maxpower/mysystem";
    hobbit:implementsAPI <http://benchmark.org/MyNewBenchmark/BenchmarkApi> ;
    hobbit:instanceOf <http://www.example.org/exampleSystem/System> ;
    <http://www.example.org/exampleSystem/System#threshold> "0.7"^^xsd:float .

<http://www.example.org/exampleSystem/MyOwnSystem2> a  hobbit:SystemInstance; 
    rdfs:label  "MySystem (0.6)"@en;
    rdfs:comment    "This is my own system with a threshould of 0.6"@en;
    hobbit:imageName "git.project-hobbit.eu:4567/maxpower/mysystem";
    hobbit:implementsAPI <http://benchmark.org/MyNewBenchmark/BenchmarkApi> ;
    hobbit:instanceOf <http://www.example.org/exampleSystem/System> ;
    <http://www.example.org/exampleSystem/System#threshold> "0.6"^^xsd:float .

In the example, "MySystem" is defined as a hobbit:System with a threshold parameter attached to it using the hobbit:hasParameter property. The threshould parameter is an instance of hobbit:FeatureParameter, has a label as well as a description and defines the range of its values as floating point number. The two instances "MySystem (0.6)" and "MySystem (0.7)" are connected to the system definition using the hobbit:instanceOf property and define a certain value for the threshold parameter. This example results in two system instances listed as systems for benchmarking in the platforms front end and the knowledge about the threshold as a feature that can be used in the analysis component.

To ease the usage of parameters, the meta data of a system instance is given to its Docker container when it is started, i.e., the user does not have to define a single Docker image for every parameterization but can read the parameters from an environmental variable at runtime.

Note that a single system.ttl file can contain multiple systems and system instances.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.