Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Creating

...

and Adding

...

a New Tool

  1. Developer downloads BrownDog development environment in docker container (in dockerhub, link on BD webpage)
    • Contains running Clowder instance, Polyglot instance, basic development tools, mabye even an IDE configured and ready to go
    • Contains a bare-bones extractor ready to be modified for a new tool (with comments suggesting where to edit)
    • Contains a bare-bones converter ready to be modified for a new tool (with comments suggesting where to edit)
  2. Developer installs tool, creates interface script(s)
    • Adds sample input file(s)
    • Example extractor: imagemagick edge detector
    • Example converter: imagemagick jpg to ico converter
  3. Developer creates dockerfile
    • For extractors this should contain only the tool, its dependencies, and the extractor
    • For converters this should contain the basic Polyglot setup, ideally only the Software Server, the tool, its dependencies, and the converter interface script
  4. Developer submits tool to Tools Catalog
    • Interface script(s), dockerfile, sample input, sample output
    • Through web interface
    • Through script in development environment (probably the ideal way)
  5. Admin presses button which deploys tool in a seperate Clowder/Polyglot sandbox, passes in the given input file, and checks the obtained output file against what is provided
    • Returns pass/fail
  6. Admin selects instances to deploy interface on
    • e.g. dts-dev or dts
    • selects minimum number of instances to provision (e.g. 5 instances)
    • presses button to deploy
  7. Admin receives status page showing number of tools deployed and where, load on each tool, etc...

Using a Tool

  • Simple web interface
    • Web form with field box for file URL or upload
    • Tool selection dropdown box (means of selecting a specific tool)
    • Output select dropdown box (means of allowing system to select tool)
      • Clowder will run all relevant extractors (obtained by selecting "json" as the output)
      • Polyglot will use I/O-graph
    • Suggetions pane will update below
      • REST API performing this same operation
      • Python code in Jupyter lab notebook
      • R code
      • Matlab code