Open Bases¶
An open base template is a combination of components, including experiment templates, testing tools, and deployment options to produce a partial or full reproducible workflow. A high level might look like this:
develop --> version control --> build --> test --> deploy --> submission
Given that you have a contribution, meaning something you are developing like an experiment, and your goal is submission, coinciding with a set of steps that get you from the start of your work to a tested, version controlled, reproducible submission, that's the job of the open bases. An open base can also be as simple as sharing a rendered paper pdf in a Github repository programmatically, to creating an API for a set of images. It's just a Github repository template that you can fork and customize for your need.
How do I know what base to use?
The easiest thing to do is read the description of the base type, and then follow the Github Link and look at the content in the repository and Github Pages. If you think "That's what I'd like to have for my repository!" then you've found a match, and can proceed following the instructions in the README.md provided by the repository.
Base Types¶
These base types can coincide with either a full template to achieve some goal, or a
component that is a step within. The groupings below are tags to describe what the base is or does,
and you might see them as the prefix for Github repository names (e.g. experiment-stroop
)
or as badges in a template repository to describe the content.
Specification¶
"Specification" refers to a language, ontology, or some other definition that might be used in open science. A good example is a tool to work with, generate, or otherwise interact with schema.org.
Name | Badge | Repository | Description | Preview |
---|---|---|---|---|
spec-template | openschemas/spec-template | easily generate schema.org specification | spec-container |
Extractor¶
An "extractor" refers to a template that can be used (possibly in combination with a specification) to extract and represent some set of metadata from an object. For example, the openbases/extract-dockerfile has an example CircleCI setup to build and extract metadata from a Dockerfile (container recipe).
Name | Badge | Repository | Description |
---|---|---|---|
extract-dockerfile | openbases/extract-dockerfile | schema.org extractor for Dockerfile |
Paper¶
"Paper" refers to something like a PDF or other rendered content that might be used in a submission. Examples are PDFs, markdown content, or articles. Each of the following is a paper builder template, typically including steps to generate and serve a manuscript or similar. These bases might assist with generating a submission, but may not be intended for it. You will want to use one of these bases if you want a PDF to build from a Github repository, and then render beautifully on Github Pages.
Name | Badge | Repository | Description | Preview |
---|---|---|---|---|
Paper Builder | openbases/builder-pdf | Generate PDF from markdown | gh-pages |
Submission¶
Submission open bases typically consist of a set of steps (components) that get you from something you are developing to a programmatic paper submission. This might mean generating a container for your content, running an analysis, and then testing and submitting data and/or a manuscript.
Name | Badge | Description |
---|---|---|
Journal Open Source Software | validate and preview your paper |
Library¶
refers to software used within a base, such as LabJS or JSPsych for an experiment. These categories are shown here and used as tags, but aren't common to be found as openbases repositories. They are commonly other open source software.
Name | Badge | Repository | Description |
---|---|---|---|
LabJS | FelixHenninger/lab.js | generate experiments | |
JSPsych | jspsych/jsPsych | generate experiments | |
Expfactory | expfactory/expfactory | deploy experiments |
Experiment¶
"Experiment" typically refers to a web based experiment, meaning some static content that can be dropped on a web server to collect data.
Name | Badge | Repository |
---|---|---|
Experiment Factory Library | expfactory/experiments | |
Survey Generator | expfactory/survey-generator |
Resources¶
Name | Badge | Repository | Description |
---|---|---|---|
Icons | openbases/openbases-icons | static image API |
Testing¶
functions or software for continuous integration (or similar) testing purposes. For example, for experiments, we have robots to test static and runtime web-based experiments.
Name | Badge | Repository | Description |
---|---|---|---|
Expfactory Robots | expfactory/expfactory-robots | Automated web browser |
Openbases¶
A special base type for any kind of template that is for open bases developers. For examples, the openbases-jekyll-theme can be easily dropped in a Github "docs" folder to render documentation for a new component repository, and builder-whedon
is the builder for the actual openbases/builder-whedon
container to drive other components.
Name | Badge | Repository | Description |
---|---|---|---|
Open Bases PDF Builder | openbases/openbases-pdf | PDF Builder Base | |
Open Bases Python | openbases/openbases-python | Python API for Open Bases | |
Open Bases Jekyll Theme | openbases/openbases-jekyll-theme | "docs" folder for Github Pages |
Data Archive¶
are components to help with archive of data.
Name | Repository | Docs |
---|---|---|
Docker Hub | ||
Github Pages | ||
Kaggle |