Workshop: The OpenAlex Library
Create collaboratively an open source software library to access research with OpenAlex.
Resources
- API documentation: https://developers.openalex.org/api-reference/introduction
- OpenAlex search engine: https://openalex.org/
- Connecting to GitHub with SSH: https://docs.github.com/en/authentication/connecting-to-github-with-ssh
Tasks
- Choose the maintainers team who will create and manage the repository
- Keep a list of useful commands
- Create your list of features
- Create a side script where you import the library and do your tests
- Create a documentation
- Choose a licence
Secondary tasks
- Create issues to list and explain the requested features
- Identify existing libraries
- Create a CLI
- Review, improve and refactor the code
Questions
- What is the difference between issues and pull requests?
- What is a fork? What is a branch? What is an upstream and downstream repository?
- What should be the strategy to propose a modification? Maintainers need to explain it to the group
- What is a library?
- What are the name of different software forges that exists, and what is their differences?
Advanced questions:
- What is a DOI and how do you search for it?
- What is a persistent identifier? Give a list and quick explanation of some existing identifiers.
- What is role of the organization Software Heritage?
- What is the purpose of Creative Commons licenses?
Pedagogical outcomes
- Understanding of open science and use of a research search engine
- Use of an API and software development around it
- Experiment of open source software collaboration through a software forge
- Self-organization in a collaborative setting
Workshop organization
First step: Create the repository and let students create a first draft of a source code in little groups.
Second step: When a first source code base is in the repository, let them divide the tasks among themselves according to their interests and preferences.