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

164 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

×