-
Notifications
You must be signed in to change notification settings - Fork 93
Description
The question of authorship and contribution roles in the scholarly ecosystem has been addressed in different ways, yet software remains an uncharted terrain.
In the CRedit for example, software is a unique role that combines all roles related to software authorship (see https://casrai.org/credit/ )
We know that the situation with software development is a bit more complex and can't be resumed in the distinction between author and contributor.
Recently the Inria research center's citation WG has published the following article with a specific taxonomy concerning software roles:
Pierre Alliez, Roberto Di Cosmo, Benjamin Guedj, Alain Girault, Mohand-Said Hacid, Arnaud Legrand, Nicolas Rougier. Attributing and Referencing (Research) Software: Best Practices and Outlook From Inria. Computing in Science > Engineering, 22 (1), pp. 39-52, 2020, ISSN: 1558-366X. https://dx.doi.org/10.1109/MCSE.2019.2949413 also available https://hal.archives-ouvertes.fr/hal-02135891
We want to find a way to integrate the identified roles in the CodeMeta vocabulary and in schema.org.
To that end we propose on using the Role class under author, and link it to a Person, as specified in the blog post on roles.
List of roles:
- Design (algorithm)
- Architecture
- Debugging
- Maintenance
- Coding
- Documentation
- Testing
- Support
- Management
Here is an example:
{
"@context": "https://doi.org/10.5063/schema/codemeta-2.0",
"@type": "SoftwareSourceCode",
"name": "Foo Software",
"author": [
{
"@type": "Role",
"roleName": "Design",
"startDate": "2000",
"endDate": "2002",
"author": {
"@type Person",
"@id": "http://example.org/~jdupont",
"givenName": "John",
"familyName": "Dupont",
"affiliation": [
{
"@type": "Organization",
"name": "CNRS"
},
{
"@type": "Organization",
"name": "Inria"
},
{
"@type": "Organization",
"name": "Université de Paris"
}
]
}
},
{
"@type": "Role",
"roleName": "Coding",
"startDate": "2000",
"endDate": "2002",
"author": {
"@id": "http://example.org/~jdupont"
}
},
{
"@type": "Role",
"roleName": "Documentation",
"startDate": "2000",
"endDate": "2002",
"author": {
"@id": "http://example.org/~jdupont"
}
}
]
}Note that I added an ID to avoid duplicating the person's data