Dear all, Let me try to draw a consensus (in fact I believe it's already there), so that we can ignore the irrelevant historical details of the discussion and move forward toward what we can do to improve the situation.
Here are a couple statements that might be agreed upon by everybody: (1) Per se, adding semantic information to Sage is a good thing (e.g. function XXX is actually an isomorphism). Of course this good thing is to be put into balance with other good things, among which is performance. (1') It's interesting to explore what can possibly be done with such semantic information; it's great that findstat is doing that. And we will certainly find other use cases. (2) Using a decorator on the function XXX is one possible syntax for achieving (1). Another alternative is to add the info to the documentation string. Another is to have a separate "database". Etc. (3) There are some advantages in using a decorator: - It's checked by the Python parser; so the odds of a syntax error not getting detected is low. - Code locality: information about XXX is close to XXX. - Part of the Sage library is already tagged using this syntax. (4) The overhead of the combinatorial_map decorator upon loading a Python file is negligible. (5) The overhead of the combinatorial_map decorator upon calling the function is currently non trivial. But it could be made to zero by having the decorator return the decorated function as is. findstat would just need to instrument the Sage code to have the decorator register the function to its database. Volunteers? (6) The name of some of the recently added methods could be improved: - Graph.to_partition is ambiguous: there are many ways to make a partition out of a graph (degree sequence, size of connected components, ...). Suggestions for improvements? - Poset.to_graph is ambiguous: there are several ways to make an unoriented graph out of a poset (e.g. hasse diagram or its transitive closure). Note that the alternative syntax Graph(poset) has the same problem. My personal recommendation would be: - Add a combinatorial map decorator on Poset.hasse_diagram - Add a combinatorial map from oriented to non oriented graph (which possibly calls for a syntax to declare that a constructor implements a combinatorial map between two sets) - Use transitivity Volunteers? (7) It would be nice for the findstat project to have an alternative mean to declare some of the combinatorial maps either in its own source code or database. Two use cases: - As a temporary mean to move forward quicker than Sage when needed. - For some methods that are so trivial that their addition to Sage is subject to controversy. Please let me know (concisely) in case of disagreement on one of the points above or if I left out some important point in the discussion. Cheers, Nicolas -- Nicolas M. ThiƩry "Isil" <nthi...@users.sf.net> http://Nicolas.Thiery.name/ -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at http://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/groups/opt_out.