Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Describing configurations
of software experiments
as Linked Data
Joachim Van Herwegen, Ruben Taelman, Sarven Capadisli, Ru...
Why write research articles?
We want other researchers…
2
Why write research articles?
We want other researchers…
…to re-use our data.
…to re-use our software.
…to build upon our r...
Why write research articles?
We want other researchers…
…to re-use our data.
…to re-use our software.
…to build upon our r...
Paper evaluation (2014)
“We provide all source code of the implementations, as
well as the full benchmark configuration, a...
Paper evaluation (2014)
“We provide all source code of the implementations, as
well as the full benchmark configuration, a...
Paper evaluation (2014)
“We provide all source code of the implementations, as
well as the full benchmark configuration, a...
Paper evaluation (2014)
“We provide all source code of the implementations, as
well as the full benchmark configuration, a...
Paper evaluation (2014)
“We provide all source code of the implementations, as
well as the full benchmark configuration, a...
Improved evaluation description
Exact and complete description of the setup
10
Improved evaluation description
Exact and complete description of the setup
… using Linked Data
11
Improved evaluation description
Exact and complete description of the setup
… using Linked Data
… for automatic instantiat...
Describing configurations as Linked Data
Interlinking software modules
Instantiating software components
Updated evaluatio...
Describing configurations as Linked Data
Interlinking software modules
Instantiating software components
Updated evaluatio...
Interlinking software modules
Which software modules were used?
Which evaluations made use of this module?
Which other mod...
Node Package Manager (npm)
Package manager for JavaScript
16
Node Package Manager (npm)
Package manager for JavaScript
17
http://www.modulecounts.com
Node Package Manager (npm)
Package manager for JavaScript
Convert to
Linked Data
18
http://www.modulecounts.com
Package.json
{
"name": "ldf-server",
"version": "2.2.2",
"license": "MIT",
"repository": {
"type": "git",
"url": "git@gith...
Package.json
{
"name": "ldf-server",
"version": "2.2.2",
"license": "MIT",
"repository": {
"type": "git",
"url": "git@gith...
Package.jsonld
Convert JSON to JSON-LD to generate Linked Data
21
Package.jsonld
Convert JSON to JSON-LD to generate Linked Data
ldf-server:2.2.2 a doap:Version ;
doap:name "ldf-server" ;
...
Describing configurations as Linked Data
Interlinking software modules
Instantiating software components
Updated evaluatio...
LDF Server
"datasources": {
"dbpedia": {
"title": "DBpedia 2014",
"type": "HdtDatasource"
"settings": { "file": "data/dbpe...
LDF Server
"datasources": {
"dbpedia": {
"title": "DBpedia 2014",
"type": "HdtDatasource"
"settings": { "file": "data/dbpe...
Components.js
Instantiation framework that interprets this config
ex:myServer ldfs:datasource ex:MyHdtDataSource
ex:MyHdtD...
Components.js
Instantiation framework that interprets this config
ex:myServer ldfs:datasource ex:MyHdtDataSource
ex:MyHdtD...
Object Oriented Ontology
28
Object Oriented Ontology
29
Component description
ldfs:DatasourceHdt a oo:Class ;
rdfs:subClassOf ldfs:Datasource ;
oo:componentPath "datasources.HdtD...
Component description
ldfs:DatasourceHdt a oo:Class ;
rdfs:subClassOf ldfs:Datasource ;
oo:componentPath "datasources.HdtD...
Component description
ldfs:DatasourceHdt a oo:Class ;
rdfs:subClassOf ldfs:Datasource ;
oo:componentPath "datasources.HdtD...
Components.js
ex:myServer ldfs:datasource ex:MyHdtDataSource
ex:MyHdtDataSource a ldfs:DatasourceHdt;
rdfs:label "DBpedia ...
Describing configurations as Linked Data
Interlinking software modules
Instantiating software components
Updated evaluatio...
Updated evaluation
Describe steps using RDFa in HTML paper.
Link to exact versions of all modules used.
Link to RDF config...
Updated evaluation
“5. Install the server software configuration,
implementing the TPF specification, with its
dependencie...
Updated evaluation
“5. Install the server software configuration,
implementing the TPF specification, with its
dependencie...
Updated evaluation
“5. Install the server software configuration,
implementing the TPF specification, with its
dependencie...
Updated evaluation
“5. Install the server software configuration,
implementing the TPF specification, with its
dependencie...
Conclusion
Interlinking research allows for…
40
Conclusion
Interlinking research allows for…
… better reproducability.
… better re-use.
… better research.
41
Upcoming SlideShare
Loading in …5
×

Describing configurations of software experiments as Linked Data

306 views

Published on

https://linkedsoftwaredependencies.org/articles/describing-experiments/

Presentation for SemSci workshop at ISWC 2017

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

Describing configurations of software experiments as Linked Data

  1. 1. Describing configurations of software experiments as Linked Data Joachim Van Herwegen, Ruben Taelman, Sarven Capadisli, Ruben Verborgh https://linkedsoftwaredependencies.org/articles/describing-experiments/
  2. 2. Why write research articles? We want other researchers… 2
  3. 3. Why write research articles? We want other researchers… …to re-use our data. …to re-use our software. …to build upon our results. 3
  4. 4. Why write research articles? We want other researchers… …to re-use our data. …to re-use our software. …to build upon our results. 4
  5. 5. Paper evaluation (2014) “We provide all source code of the implementations, as well as the full benchmark configuration, at http://example.com.” 5
  6. 6. Paper evaluation (2014) “We provide all source code of the implementations, as well as the full benchmark configuration, at http://example.com.” 6
  7. 7. Paper evaluation (2014) “We provide all source code of the implementations, as well as the full benchmark configuration, at http://example.com.” “… is compared to Virtuoso (6.1.8 and 7.1.1) and Jena Fuseki (TDB 1.0.1 and HDT 1.1.1).” 7
  8. 8. Paper evaluation (2014) “We provide all source code of the implementations, as well as the full benchmark configuration, at http://example.com.” “… is compared to Virtuoso (6.1.8 and 7.1.1) and Jena Fuseki (TDB 1.0.1 and HDT 1.1.1).” 8
  9. 9. Paper evaluation (2014) “We provide all source code of the implementations, as well as the full benchmark configuration, at https://github.com/LinkedDataFragments/.” “… is compared to Virtuoso (6.1.8 and 7.1.1) and Jena Fuseki (TDB 1.0.1 and HDT 1.1.1).” 9
  10. 10. Improved evaluation description Exact and complete description of the setup 10
  11. 11. Improved evaluation description Exact and complete description of the setup … using Linked Data 11
  12. 12. Improved evaluation description Exact and complete description of the setup … using Linked Data … for automatic instantiation. 12
  13. 13. Describing configurations as Linked Data Interlinking software modules Instantiating software components Updated evaluation 13
  14. 14. Describing configurations as Linked Data Interlinking software modules Instantiating software components Updated evaluation 14
  15. 15. Interlinking software modules Which software modules were used? Which evaluations made use of this module? Which other modules depend on this module? 15
  16. 16. Node Package Manager (npm) Package manager for JavaScript 16
  17. 17. Node Package Manager (npm) Package manager for JavaScript 17 http://www.modulecounts.com
  18. 18. Node Package Manager (npm) Package manager for JavaScript Convert to Linked Data 18 http://www.modulecounts.com
  19. 19. Package.json { "name": "ldf-server", "version": "2.2.2", "license": "MIT", "repository": { "type": "git", "url": "git@github.com:LinkedDataFragments/Server.js.git" }, "bugs": { "url": "https://github.com/LinkedDataFragments/Server.js/issues" }, "dependencies": { "asynciterator": "^1.1.0", "jsonld": "^0.4.11", "lodash": "^2.4.2" } } 19
  20. 20. Package.json { "name": "ldf-server", "version": "2.2.2", "license": "MIT", "repository": { "type": "git", "url": "git@github.com:LinkedDataFragments/Server.js.git" }, "bugs": { "url": "https://github.com/LinkedDataFragments/Server.js/issues" }, "dependencies": { "asynciterator": "^1.1.0", "jsonld": "^0.4.11", "lodash": "^2.4.2" } } 20
  21. 21. Package.jsonld Convert JSON to JSON-LD to generate Linked Data 21
  22. 22. Package.jsonld Convert JSON to JSON-LD to generate Linked Data ldf-server:2.2.2 a doap:Version ; doap:name "ldf-server" ; doap:revision "2.2.2" ; spdx:licenseDeclared spdx:MIT ; doap:repository <git+ssh://git@github.com/…/Server.js.git> ; npm:dependency asynciterator:^1.1.0 ; npm:dependency jsonld:^0.4.11 ; npm:dependency lodash:^2.4.2 . <git+ssh://git@github.com/…/Server.js.git> a doap:GitRepository . 22
  23. 23. Describing configurations as Linked Data Interlinking software modules Instantiating software components Updated evaluation 23
  24. 24. LDF Server "datasources": { "dbpedia": { "title": "DBpedia 2014", "type": "HdtDatasource" "settings": { "file": "data/dbpedia2014.hdt" } } } 24
  25. 25. LDF Server "datasources": { "dbpedia": { "title": "DBpedia 2014", "type": "HdtDatasource" "settings": { "file": "data/dbpedia2014.hdt" } } } JSON  JSON-LD ex:myServer ldfs:datasource ex:MyHdtDataSource ex:MyHdtDataSource a ldfs:DatasourceHdt; rdfs:label "DBpedia 2014"; ldfs:hdtFile "data/dbpedia2014.hdt". 25
  26. 26. Components.js Instantiation framework that interprets this config ex:myServer ldfs:datasource ex:MyHdtDataSource ex:MyHdtDataSource a ldfs:DatasourceHdt; rdfs:label "DBpedia 2014"; ldfs:hdtFile "data/dbpedia2014.hdt". 26
  27. 27. Components.js Instantiation framework that interprets this config ex:myServer ldfs:datasource ex:MyHdtDataSource ex:MyHdtDataSource a ldfs:DatasourceHdt; rdfs:label "DBpedia 2014"; ldfs:hdtFile "data/dbpedia2014.hdt". How? 27
  28. 28. Object Oriented Ontology 28
  29. 29. Object Oriented Ontology 29
  30. 30. Component description ldfs:DatasourceHdt a oo:Class ; rdfs:subClassOf ldfs:Datasource ; oo:componentPath "datasources.HdtDatasource" ; oo:parameter ldfs:hdtFile ; oo:constructorArguments ([ rdfs:subclassOf ldfs:DatasourceConstructor ; om:field [ om:fieldName "file" ; om:fieldValue ldfs:hdtFile ] ]) . ldfs:hdtFile rdfs:range xsd:string . 30
  31. 31. Component description ldfs:DatasourceHdt a oo:Class ; rdfs:subClassOf ldfs:Datasource ; oo:componentPath "datasources.HdtDatasource" ; oo:parameter ldfs:hdtFile ; oo:constructorArguments ([ rdfs:subclassOf ldfs:DatasourceConstructor ; om:field [ om:fieldName "file" ; om:fieldValue ldfs:hdtFile ] ]) . ldfs:hdtFile rdfs:range xsd:string . 31 class DatasourceHdt extends Datasource { file: string; constructor (input) { super(input); this.file = file; } }
  32. 32. Component description ldfs:DatasourceHdt a oo:Class ; rdfs:subClassOf ldfs:Datasource ; oo:componentPath "datasources.HdtDatasource" ; oo:parameter ldfs:hdtFile ; oo:constructorArguments ([ rdfs:subclassOf ldfs:DatasourceConstructor ; om:field [ om:fieldName "file" ; om:fieldValue ldfs:hdtFile ] ]) . ldfs:hdtFile rdfs:range xsd:string . External file  can be written for existing code 32 class DatasourceHdt extends Datasource { file: string; constructor (input) { super(input); this.file = file; } }
  33. 33. Components.js ex:myServer ldfs:datasource ex:MyHdtDataSource ex:MyHdtDataSource a ldfs:DatasourceHdt; rdfs:label "DBpedia 2014"; ldfs:hdtFile "data/dbpedia2014.hdt". Allows users to fully set up the same system by providing a URI to a config 33
  34. 34. Describing configurations as Linked Data Interlinking software modules Instantiating software components Updated evaluation 34
  35. 35. Updated evaluation Describe steps using RDFa in HTML paper. Link to exact versions of all modules used. Link to RDF config file. Link to exact evaluation results. 35
  36. 36. Updated evaluation “5. Install the server software configuration, implementing the TPF specification, with its dependencies on the server.” 36
  37. 37. Updated evaluation “5. Install the server software configuration, implementing the TPF specification, with its dependencies on the server.” ldf:experiment npm:engine node:v6.8.1, npmv:4.2.0; doap:name "ldf-server"; doap:revision "2.2.1"; doc:dependsOn strftime:0.6.2; doc:dependsOn asynciterator:1.1.0. strftime:0.6.2 doap:revision "0.6.2"; doap:name "strftime". asynciterator:1.1.0 doap:revision "1.1.0"; doap:name "asynciterator". … 37
  38. 38. Updated evaluation “5. Install the server software configuration, implementing the TPF specification, with its dependencies on the server.” ex:myServer ldfs:datasource ex:MyHdtDataSource ex:MyHdtDataSource a ldfs:DatasourceHdt; rdfs:label "DBpedia 2014"; ldfs:hdtFile "data/dbpedia2014.hdt". 38
  39. 39. Updated evaluation “5. Install the server software configuration, implementing the TPF specification, with its dependencies on the server.” ex:myServer ldfs:datasource ex:MyCustomDataSource ex:MyCustomDataSource a ex:CustomDatasource; rdfs:label "DBpedia 2014"; ex:Uri "http://example.com/custom"; ex:samples 5. 39
  40. 40. Conclusion Interlinking research allows for… 40
  41. 41. Conclusion Interlinking research allows for… … better reproducability. … better re-use. … better research. 41

×