Comments (6)
you use the column names
tag
andcitation
but both are citation keys, the first being used as alias for the second.
Good point. All of the following are probably "citation keys":
tag:avasthi-preprints
(user input of tag / alias / citekey)doi:10.7554/eLife.38532
(resolved / detagged / de-aliased)doi:10.7554/elife.38532
(standardized)pqBLIXzp
(shortened, output citation key that is used in the processed document)
So then I see that citekeys
is an appropriate name for a mapping of alias-to-key. However, it is not super specific because it does not indicate that it deals with the aliasing step. I guess perhaps that's implied in the mapping / dictionary data structure?
Anyways, thanks for the feedback. It's important we adopt the best terminology while the project is still young... so will continue thinking about this issue. Interested in @agitter's thoughts as well.
from manubot.
Thanks @nichtich for the suggestion. Here's where we're at regarding citation keys.
We currently have a similar concept called citation tags. Currently, manuscripts can define a tabular mapping of citation keys (tags) to the corresponding standard identifier. See for example citation-tags.tsv
for the Manubot software paper.
So the functionality we don't currently have is the ability to define citation keys/tags in a YAML frontmatter. However, this feature is planned as part of #99, which creates a pandoc filter for this package's citation processing. This PR would enable your final example (or something close to it).
There is a separate question of whether we should enable embedded-YAML citation tags for users that are not using the Pandoc filter. There is also a question of whether we should make the pandoc filter the only supported workflow in the future. Currently the issue is that Pandoc's syntax is too restrictive for many standard identifiers (especially URLs and ugly DOIs). Citation tags/keys are a workaround for forbidden characters in a citation identifier, but that requires users to use them (and likely first have processing of a citation fail).
Happy for any advice on how you think we should proceed? I see the proposed pandoc filter as a way that you could most directly use Manubot in your current workflow to enable a wider range of citation sources.
from manubot.
Another consideration your issue brings up is whether we should use the term "key" rather than "tag". Seems like citekey is a familiar term to LaTeX users?
from manubot.
Another consideration your issue brings up is whether we should use the term "key" rather than "tag". Seems like citekey is a familiar term to LaTeX users?
Pandoc documentation uses the name "citation key". In LaTeX tutorials and BibTeX documentation uses "cite_key" or "citation-key", so why introduce the new word "tag"?
In citation-tags.csv
you use the column names tag
and citation
but both are citation keys, the first being used as alias for the second. If this data is expressed in tabular form, you could also ignore the header and just use first-column, second-column. If this data is expressed in key-value format (YAML or JSON), we don't need to name both sides anyway.
However, this feature is planned as part of #99, which creates a pandoc filter for this package's citation processing. This PR would enable your final example (or something close to it).
I'd prefer not to have a close-to-it variant (e.g. manubot pandoc filter using the field citation-keys
) but the exact field name citekeys
as exemplified above for compatibility between manubot and wcite. In your case:
citekeys:
techblog-csl: url:http://blogs.nature.com/naturejobs/2017/05/03/techblog-create-the-perfect-bibliography-with-the-csl-editor/
techblog-manubot: url:http://blogs.nature.com/naturejobs/2018/02/20/techblog-manubot-brown-predicting-the-paper-of-the-future
avasthi-preprints: doi:10.7554/eLife.38532
steem-post: url:https://goo.gl/jGBrxE
# etc.
There is a separate question of whether we should enable embedded-YAML citation tags for users that are not using the Pandoc filter.
Why not? The YAML header can easily be extracted from a Markdown document.
There is also a question of whether we should make the pandoc filter the only supported workflow in the future.
This is independent from this issue. There can be multiple implementations as long as they agree on the input data format.
Happy for any advice on how you think we should proceed? I see the proposed pandoc filter as a way that you could most directly use Manubot in your current workflow to enable a wider range of citation sources.
Have a look at the wcite Pandoc filter. Note that Pandoc metadata field nocite
is supported as well.
from manubot.
it is not super specific because it does not indicate that it deals with the aliasing step. I guess perhaps that's implied in the mapping / dictionary data structure?
yes and yes. citekey-aliases
would be more specific.
from manubot.
#129 makes extensive modifications to variable/function names to adopt the citation keys / citekeys nomenclature internally. One this PR is complete we can:
- update manubot/rootstock docs to adopt the citation keys nomenclature
- consider whether to replace
tag
withalias
for citation keys that are pointers to another user-specified key.
from manubot.
Related Issues (20)
- Manubot unable to locate DOI's to post on the website HOT 4
- Manuscript build failing due to import error for `soft_unicode` from `markup_safe` HOT 2
- ImportError: cannot import name 'soft_unicode' from 'markupsafe' HOT 4
- docx manuscript fails to open on MS word HOT 7
- Quarto integration HOT 9
- Make use of Manubot logo on PyPI and elsewhere HOT 1
- Collect reference warnings and errors
- Allow user to set timeout. HOT 5
- Test are too slow HOT 4
- Request to rate limited APIs do not respect limits outside function boundary.
- manubot cite supplies the first name and last name swapped HOT 4
- Upgrade CSL Schema to v1.0.2 HOT 4
- Pubmed NCBI E-Utils API calls with `rettype=full` have an empty response HOT 3
- Does `cite` batch requests for multiple IDs? HOT 2
- PMID citations not working anymore HOT 7
- page break without a title HOT 5
- ai-revision not available when installing via pip HOT 9
- Support ORCID API identifier types? HOT 3
- date-specific Wikipedia URL is not parsed correctly§ HOT 2
- Pin pyrate limiter version or upgrade to 3.0.0 HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from manubot.