ourresearch / citeas-api

Get the scholarly citation for any research product: software, preprint, paper, or dataset
https://citeas.org
MIT License
68 stars 4 forks source link

Parsing of codemeta.json is incorrect #42

Closed cboettig closed 5 years ago

cboettig commented 5 years ago

http://citeas.org/cite/https://github.com/ropensci/piggyback finds the codemeta.json file, but parses it incorrectly; using the DESCRIPTION as the title. (should use "name", since schema:name is owl:sameAs dc:title).

caseydm commented 5 years ago

This is fixed. What do you think of pulling the version from that file if it's available? So in an APA citation for this package it would include (Version 0.0.9) after the package name.

cboettig commented 5 years ago

Nice. Yes, I think pulling the version as makes sense (could be done from the DESCRIPTION file too).

On the codemeta parsing, it might also be good to check first for a referencePublication field (though maybe that should be renamed something more intuitive like suggestedCitation or citeAs see https://github.com/codemeta/codemeta/issues/144). The name field etc will always refer directly to the SoftwareSourceCode object, whereas this field is a ScholaryArticle type can describe a paper associated with the publication instead (identical to what CiteAs very nicely does when it finds CITATION files)!

On including versions, as you no doubt know, including versions is considered best practice, e.g. by the Force11 working group paper, but I'm not particularly bullish on it myself. I agree that version information is important, but the problem is that there's no way to also capture precise versions of the dependencies, since the software package itself won't state these -- by design, most software is compatible with multiple versions of it's own dependencies.

cboettig commented 5 years ago

Whoops, my apologies, I was a bit out of date on terms. Looks like the standard practice is to use citation, not referencePublication for this purpose, and you will already find the citation in most codemeta.json files of R packages using CITATION, e.g.:

https://github.com/ropensci/RNeXML/blob/master/codemeta.json#L387-L449

caseydm commented 5 years ago

Ok the software now pulls the version from codemeta.json. Also, as you mentioned if a citation field is present, it will use the fields in that part of the document as the input to be parsed.