-
-
Notifications
You must be signed in to change notification settings - Fork 482
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
a citation system for Sage components #3317
Comments
comment:1
Some thoughts: From: "Fernando Perez" fperez....@gmail.com This is certainly not an easy problem if one wants a '100%' solution, |
comment:3
Right now we have the code in sage/misc/citation.pyx. Is that good enough so that this ticket should be closed? |
comment:4
Replying to @jhpalmieri:
This basically does what is described in comment:1. We need to do much better than that. We are working on a system which allows developers to annotate (decorate?) functions with citation information. The decorated functions will add the citation entries to a central database at runtime. This database can be queried to get the list of packages/papers/algorithms used in various formats. In short, I don't think we can close this yet. |
comment:6
Burcin Erocal, Michael Brickenstein and I (Niels Ranosch) have been working on a new citation system for about a month now: https://bitbucket.org/niels_mfo/sage-citation The patches will be attached. What do you think about it? You'll need our pybtex-spkg in order to make it work: http://sage.math.washington.edu/home/burcin/spkg/pybtex-0.15.spkg Cheers. |
comment:8
Hi! If this doesn't slow things down, it is a really good idea, especially given that Sage is not trying to cover up the other programs inside of it. I assume that (given the comments on the blog) you will post timing information in critical areas eventually. I have one substantive comment, I think:
Hmm, so does that mean we would need to make Or are you suggesting this would be an optional spkg (for now), which means your examples would have to be optional for now? Here follow a couple silly comments that don't actually review much, but might still be worthwhile to ponder.
Good luck! |
comment:9
Should some of the new code (e.g., |
comment:10
Replying to @kcrisman:
At least that's what I plan to do. I'm not quite sure on how to benchmark (and what), but I'm open for suggestions. Benchmarking the decorated pass-function is unsatisfying.
Well, I put the design, as if pybtex was a standard-spkg. But it might as well be a good idea to make it optional: If people really pybtex' features, they can install it. It could be the following: If pybtex is not installed, the printed citations will just be the exact content of the bibfile, otherwise parsed (and maybe converted). I am in favour of pre-parsing everything through pybtex, but I don't know, what is actually better.
Thanks.
You are right. It is more a coincidence than anything else; still, it has to be changed.
I won't :-). |
comment:11
Replying to @jhpalmieri:
Ehm .. I think so, but don't know. Still, I'm quite a newbie. |
comment:13
Corrected some of the errors and included my benchmark results for the decorated pass-function (in Another problem came to my mind: If a user tries to make an instance of one of the citables, strange things will happen. But I'm not sure, if we should really care about that. Is the documentation alright? Cheers. |
Author: Niels Ranosch, Michael Brickenstein, Burcin Erocal |
comment:14
The benchmarking results are available on http://sage-citation.blogspot.com/2011/08/awful-benchmarks.html and https://bitbucket.org/niels_mfo/sage-citation/src/74ea62a5c9b3/benchmark/. I still think, it would be best, if pybtex would become a standard package. Is there any work needed for the reference manual (referring to jhpalmieri's comment)? |
Changed keywords from citations to citations, sd34 |
bibtex-data of some components |
Attachment: trac-3317-bib-data.patch.gz |
comment:17
Attachment: trac-3317-example-usage.2.patch.gz Uploaded an updated version (with the sage citation included) and accidently added |
This comment has been minimized.
This comment has been minimized.
comment:18
I'm not convinced that it is the best idea to have it so that anytime a function is called we have to log that its citation, even in the case where we don't care about that data. |
Reviewer: itaibn |
This comment has been minimized.
This comment has been minimized.
comment:20
This patch doesn't fail nicely when you don't have |
comment:21
Replying to @itaibn:
The dependency had been explicitly mentioned in the ticket already. Since the only intention of this ticket is to integrate pybtex into Sage, it make sense to explicitly mention the spkg for convenience. But you also set the ticket to |
comment:22
Replying to @alexanderdreyer:
Correction myself: of course it is not the only intention of the ticket, but an important one. |
Changed reviewer from itaibn to none |
comment:23
I'm sorry, I didn't read the ticket description carefully enough. I have modified the ticket to redact my earlier modifications. |
This comment has been minimized.
This comment has been minimized.
comment:24
Sorry for not having responded. Replying to @mwhansen:
What exactly are your concerns? Speed? Integrity? In my opinion it would be very nice to have tracked the used components, no matter if we care for this data. And it's not meant to log every function call. Only rather important functions should be decorated (could say "cite-worthy", but that's a vague term). Maybe there should be rules on what makes some worth citing in Sage. Replying to @itaibn: Well thanks for pointing out, that it might be unclear that you need the spkg. I thought it will be enough if the dependency is mentioned as the dependency of the corresponding ticket, but I'm willing to change the description if that's not clear enough. I'm currently updating the spkg to a newer version, should I directly include the link to it when done? Replying to @alexanderdreyer: The intention of this ticket (as far as I see it) is to track sage's components and their citations. Pybtex is our tool of choice. Therefore, yes, it is important. |
Attachment: trac-3317-citation-system-integrated.patch.gz New citation system |
comment:25
Fixed bugs and doctests. |
This comment has been minimized.
This comment has been minimized.
environment changes for the citation system |
Attachment: trac-3317-citation-environment.patch.gz Attachment: trac-3317-citation-system.patch.gz New citation system |
bibtex-data of some components |
Attachment: trac-3317-bibtex-data.patch.gz Attachment: trac-3317-example-usage.patch.gz Example usage in multipolynomial-libsingular |
This comment has been minimized.
This comment has been minimized.
comment:27
would it be possible to add in the description some concrete example demonstrating what functionality this ticket adds to Sage? Paul |
This comment has been minimized.
This comment has been minimized.
Work Issues: merge conflicts |
comment:31
The patches do not apply anymore (not too surprising after so many years.) |
comment:32
To be honest I like the approach used by |
This ticket implements a citation tracking system for Sage which can give fine grained information on the algorithms and implementations used for a specific computation.
This is in contrast to the current method in
sage.misc.citation
that relies on running a smaller example through the profiler.The new citation module allows developers to add annotations with citation data in the code directly via decorators tuned to minimize performance overhead. Citations can be provided and obtained in several different formats, thanks to the pybtex package. This includes bibtex and plain text output.
Sample user session:
If a different algorithm is requested, the citations reflect this change:
Only apply:
Depends on #11851
Depends on #11852
CC: @burcin @novoselt @sagetrac-ranosch @sagetrac-PolyBoRi @sagetrac-jakobkroeker
Component: misc
Keywords: citations, sd34
Work Issues: merge conflicts
Author: Niels Ranosch, Michael Brickenstein, Burcin Erocal
Issue created by migration from https://trac.sagemath.org/ticket/3317
The text was updated successfully, but these errors were encountered: