[sage-combinat-devel] Re: redesign combinatorial statistics

2014-05-28 Thread Travis Scrimshaw
Okay here's where I think we are, and my 2 cents in the matter.

Simon wants to have a database which stores the map information which is 
constructed by the decorator @combinatorial_map in order to not have it 
cause any slowdowns. The question is, "how to do this?"

Here's my 2 cents of a solution. The first time the object is called when 
we want to get the map info, have it iterate over all it's methods and call 
any method wrapped in @combinatorial_map. The decorator then does:

def combinatorial_map(f):
# Check if the object's class and the method's name is in the database;
#   this might not be the right python
if (f.self.__class__, f.__name__) in DATABASE:
DATABASE.add(...)
return f

This has the advantage of being dynamic, so it shouldn't hamper startup 
time, and only occurs the first time the object is created, so repeated 
uses won't be slow. We could also go one small step further and have an 
(cython) ABC which does this behavior on initialization.

Best,
Travis

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-combinat-devel] Diversity to foster sage development

2014-05-28 Thread William Stein
On Wed, May 28, 2014 at 3:56 PM, Paul-Olivier Dehaye
 wrote:
> Out of my confused state after a long day:
> I think I still want sage to be a " free open source alternative ", and its
> primary audience to be typical users of the Ma's. But the Ma's have indeed
> evolved since 2005. Maybe it might be worth, as a start, listing how they
> have changed? The goal of the exercise would not be to copycat what they do,
> but maybe to understand how the Ma's pipelines work now.

Some Ma-related "events" since 2005 that I noticed:

 * Maplesoft was bought by a Japanese company around 2008...  I don't
know anything about what ended up happening as a result.

 * Mathworks bought MuPAD, so now they own computer algebra
capabilities (instead of just reselling Maple).   iPad app.  They also
sponsor a radio program on NPR that I here every day :-).

 * Wolfram Inc. introduced Wolfram|Alpha and Manipulate.  iPad app.
They are developing a web-based notebook interface, which I think just
looks exactly like desktop Mathematica.   I don't know if a plugin is
required.

 * Magma made a deal with the Simons Foundation to make Magma
available for free to North American academic institutions.   John
Cannon is still guiding Magma development, which is moving along at a
stable rate.


-- 
William Stein
Professor of Mathematics
University of Washington
http://wstein.org

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-combinat-devel] Diversity to foster sage development

2014-05-28 Thread Paul-Olivier Dehaye
Out of my confused state after a long day:
I think I still want sage to be a " free open source alternative ", and its
primary audience to be typical users of the Ma's. But the Ma's have indeed
evolved since 2005. Maybe it might be worth, as a start, listing how they
have changed? The goal of the exercise would not be to copycat what they
do, but maybe to understand how the Ma's pipelines work now.
Paul

Paul-Olivier Dehaye
SNF Professor of Mathematics
University of Zurich
skype: lokami_lokami (preferred)
phone: +41 76 407 57 96
chat: pauloliv...@gmail.com
twitter: podehaye
freenode irc: pdehaye


On Thu, May 29, 2014 at 12:36 AM, William Stein  wrote:

> On Wed, May 28, 2014 at 3:29 PM, Paul-Olivier Dehaye
>  wrote:
> > In the big wave of emails exchanged today, I sent this one, by accident
> to
> > the wrong mailing list. I recopy it below:
> >
> > When I went to pycon, the most important thing I learned is the
> importance
> > of a diverse community for the development of python. This I learned from
> > the top, the board of the Python Software Foundation (cf. Lindberg's
> > keynote at pycon, for instance), and saw in action absolutely everywhere.
> >
> > This diversity is to be understood in a very broad sense:
> > - diversity of origins,
> > - diversity of genders,
> > - diversity of lifestyles,
> > - diversity of professional activities,
> > - ...
> >
> > I can egocentrically agree with the PSF on the fourth: the fact that
> python
> > is tied to so many different fields, ranging from professional software
> > development world to all kinds of scientific disciplines, is a major
> > selling point for many people. This was the case for me (and William),
> > coming from a world of special purpose mathematical software. Relying on
> a
> > mature language with a diverse ecosystem encourages a wider array of
> > contribution to sage. I will posit that a similar motivator was present
> for
> > many of us who come with previous experience in other languages.
> >
> > If your software community is not inclusive, you will reject individual
> > contributions that might be very interesting (and remain unaware of it),
> > and that pattern will lead to larger collaborations having a hard time
> > working at the periphery of the core project. This will decrease the
> chance
> > of the core project recruiting new contributors. And we are talking about
> > highly qualified contributions here, contributions that the sage project
> > really does not want to end in Magma first. For instance, pick the LMFDB
> or
> > findstat. How much of their code is written tiptoeing around sage itself,
> > and if you make an objective assessment should fit better in sage than in
> > their project? Bear in mind that the software was developed itself
> already
> > tiptoeing around sage's core community (which might be unfair, because a
> > community's tone is often defined by just a few individuals who speak
> > louder).
> >
> > You might ask how origin, genders, lifestyles come in play here. Well,
> > being inclusive starts simply by being curteous and making people feel at
> > ease, and in some particular circumstances being "explicit is better than
> > implicit". It might very well be that a queer person finds the python
> > community very welcoming (based on objective facts such that one out of
> > five tracks at pycon was aimed at promoting diversity in the community,
> or
> > the diversity of the speakers), that she wants to contribute back, so
> much
> > so that she decides to organize a python education summit, where
> educators
> > of students of all backgrounds and ages can share tips on how to build a
> > python pipeline together, one that takes anyone between the age of 5 to
> the
> > age of whatever and turns them into a competent enough programmer that
> the
> > community is better off from it. Somehow it all works for the better,
> > because you have to trust individuals that if they like a project they
> will
> > contribute to it in a positive way, with their own creativity.
> >
> > This pipeline exists, and is actively fostered by the Python Software
> > Foundation as one of the most important assets of the python ecosystem.
> > Contrast the shortsightedness of the academic community wrt the leaky
> > pipeline for instance, with the attitude of the PSF described here. There
> > is no comparison.
> >
> > At the same time, my reflections since pycon have led me to understand
> that
> > it would make sense for things to develop the way they have so far. The
> PSF
> > has much closer contacts to the corporate world, and it has a much
> smaller
> > board (which helps make bold decisions more easily than a decentralised
> > system of tenured professors).
> >
> > How are the corporate world connections important? Well, open source
> > software is the flagship of Open Innovation, a new and deep trend in
> > industry that encourages opening up to the world what was considered
> trade
> > secrets not long ago (cf. the work of Geor

Re: [sage-combinat-devel] Project: add hundreds of contributors to sage

2014-05-28 Thread William Stein
On Wed, May 28, 2014 at 3:30 PM, Paul-Olivier Dehaye
 wrote:
> Again, in the big wave of emails, this one also got misdirected:
>
> Hi everyone,
>
> I am looking for people who want to help me, in one way or another, bring
> hundreds of new first time contributors to sage. If I do not find enough
> partners, I will look for other more suitable python-based projects.
>
> The idea would be quite simple: teach python programming around some
> mathematics (such as combinatorics) and simultaneously produce code that
> would be useful for research and worth including in sage. Two catches:
> students are given individual problems to work on, and the course is taught
> on Coursera. Motivation for the students would come in various ways:
> internships, for instance. Quality of the code would be ensured by
> peer-testing the programs.
>
> If you do not know what Coursera or MOOCs are, you are welcome to take my
> upcoming course
> https://class.coursera.org/massiveteaching-001
>
> If you are interested to play with a MOOC platform yourself, you might want
> first to watch the videostream of the 2pm-3pm slot of this conference I am
> co-organising on Tuesday:
> tinyurl.com/openedx-zurich
> as it will help you assess the technical challenges.
>
> I am looking at a start date for the course of around October-November, and
> to bring the discussion off the mailing list (to private) so as to keep an
> element of surprise for the students.

An obstruction to getting code contributions from "hundreds of new
developers" into Sage is the Sage development process via trac, as
documented in the Sage Developers guide.  I have 40 students in my
class this quarter, and have encouraged them all to make contributions
to Sage via the standard trac process.  Maybe 2 have succeeded, and
when I point them out the documentation and look at it myself, I
wince.This is not to say that the process is bad -- in fact, for
people making major contributions over time, our current system is
pretty reasonable overall, and in some ways quite good.  But for
somebody new to software development who wants to make a few small
contributions, e.g., add an example to a docstring, it is not
definitely optimal.

One possible approach for your course would be to do everything
through pull requests on github, which are ridiculously easy to make.
Then we (i.e., some expert sage developers) would aggregate some of
those contributions into a smaller number of trac tickets, which would
get included in Sage in the traditional way.  This approach would be
nice since it wouldn't require changing anything about Sage
development or infrastructure, but would allow us to try out new
approaches, which might later influence the Sage development process.

It would be interesting to think about "low hanging fruit" sage
development projects.  There's a *ton* of obvious things one might
want to implement for Sage... which are now already done well.   E.g.,
I had students in my class tell me what they wanted to do their final
projects on, and in the majority of cases I had to point out that what
they wanted to do was already done in Sage well (or at least done many
times over well in Python).  They often still did the projects, but
making it clear that it was for-fun toy code.   However, one example
is applying transforms to a 2d plot in Sage -- that seems not done,
though we have 3d transforms in Sage. I know trac is supposed to
have "beginning tickets", but when I send beginners to trac, they
invariably claim to find nothing to do.   So a big list of low hanging
fruit that would make sense to implement in Sage would be useful.
Again, an example is:

  - implement functions like rotate, translate, etc., for 2d
graphics objects, like the corresponding 3d functions.

That said, Sage is getting mature enough at the easy things that I
wouldn't be surprised if somebody responds to this email and says --
oh, that's easy, via converting the plot to matplotlib, or
something...

Of course when I think about more advanced mathematics, Sage has a
million obvious gaps to fill, and is extremely immature with a huge
amount of low hanging fruit.  But this is all grad student level
stuff.

 -- William




>
> Let me know!
>
> Paul
>
> Paul-Olivier Dehaye
> SNF Professor of Mathematics
> University of Zurich
> skype: lokami_lokami (preferred)
> phone: +41 76 407 57 96
> chat: pauloliv...@gmail.com
> twitter: podehaye
> freenode irc: pdehaye
>
> --
> You received this message because you are subscribed to the Google Groups
> "sage-combinat-devel" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to sage-combinat-devel+unsubscr...@googlegroups.com.
> To post to this group, send email to sage-combinat-devel@googlegroups.com.
> Visit this group at http://groups.google.com/group/sage-combinat-devel.
> For more options, visit https://groups.google.com/d/optout.



-- 
William Stein
Professor of Mathematics
University of Washington
http://wstein.

Re: [sage-combinat-devel] Diversity to foster sage development

2014-05-28 Thread William Stein
On Wed, May 28, 2014 at 3:29 PM, Paul-Olivier Dehaye
 wrote:
> In the big wave of emails exchanged today, I sent this one, by accident to
> the wrong mailing list. I recopy it below:
>
> When I went to pycon, the most important thing I learned is the importance
> of a diverse community for the development of python. This I learned from
> the top, the board of the Python Software Foundation (cf. Lindberg's
> keynote at pycon, for instance), and saw in action absolutely everywhere.
>
> This diversity is to be understood in a very broad sense:
> - diversity of origins,
> - diversity of genders,
> - diversity of lifestyles,
> - diversity of professional activities,
> - ...
>
> I can egocentrically agree with the PSF on the fourth: the fact that python
> is tied to so many different fields, ranging from professional software
> development world to all kinds of scientific disciplines, is a major
> selling point for many people. This was the case for me (and William),
> coming from a world of special purpose mathematical software. Relying on a
> mature language with a diverse ecosystem encourages a wider array of
> contribution to sage. I will posit that a similar motivator was present for
> many of us who come with previous experience in other languages.
>
> If your software community is not inclusive, you will reject individual
> contributions that might be very interesting (and remain unaware of it),
> and that pattern will lead to larger collaborations having a hard time
> working at the periphery of the core project. This will decrease the chance
> of the core project recruiting new contributors. And we are talking about
> highly qualified contributions here, contributions that the sage project
> really does not want to end in Magma first. For instance, pick the LMFDB or
> findstat. How much of their code is written tiptoeing around sage itself,
> and if you make an objective assessment should fit better in sage than in
> their project? Bear in mind that the software was developed itself already
> tiptoeing around sage's core community (which might be unfair, because a
> community's tone is often defined by just a few individuals who speak
> louder).
>
> You might ask how origin, genders, lifestyles come in play here. Well,
> being inclusive starts simply by being curteous and making people feel at
> ease, and in some particular circumstances being "explicit is better than
> implicit". It might very well be that a queer person finds the python
> community very welcoming (based on objective facts such that one out of
> five tracks at pycon was aimed at promoting diversity in the community, or
> the diversity of the speakers), that she wants to contribute back, so much
> so that she decides to organize a python education summit, where educators
> of students of all backgrounds and ages can share tips on how to build a
> python pipeline together, one that takes anyone between the age of 5 to the
> age of whatever and turns them into a competent enough programmer that the
> community is better off from it. Somehow it all works for the better,
> because you have to trust individuals that if they like a project they will
> contribute to it in a positive way, with their own creativity.
>
> This pipeline exists, and is actively fostered by the Python Software
> Foundation as one of the most important assets of the python ecosystem.
> Contrast the shortsightedness of the academic community wrt the leaky
> pipeline for instance, with the attitude of the PSF described here. There
> is no comparison.
>
> At the same time, my reflections since pycon have led me to understand that
> it would make sense for things to develop the way they have so far. The PSF
> has much closer contacts to the corporate world, and it has a much smaller
> board (which helps make bold decisions more easily than a decentralised
> system of tenured professors).
>
> How are the corporate world connections important? Well, open source
> software is the flagship of Open Innovation, a new and deep trend in
> industry that encourages opening up to the world what was considered trade
> secrets not long ago (cf. the work of Georg von Krogh, for instance). Open
> Innovation makes more business sense if the community that watches those
> overtures is wider, because it is then more likely to come up with new
> ideas that would have never arisen within closed walls of the company.
> Following perfect logical arguments, after some stage the only way to grow
> a community is to make it more diverse (in the broad sense described
> above), and companies realised that too: promoting diversity also makes
> business sense. Now this idea is flowing back to open source software, like
> the python ecosystem, and it is only to the credit of the PSF to take this
> stance. This is very different from other languages apparently.
>
> Maybe my perspective of the python community was skewed by the fact that
> pycon is a US-centric conference. I would be curious to see how 

[sage-combinat-devel] Project: add hundreds of contributors to sage

2014-05-28 Thread Paul-Olivier Dehaye
Again, in the big wave of emails, this one also got misdirected:

Hi everyone,

I am looking for people who want to help me, in one way or another, bring
hundreds of new first time contributors to sage. If I do not find enough
partners, I will look for other more suitable python-based projects.

The idea would be quite simple: teach python programming around some
mathematics (such as combinatorics) and simultaneously produce code that
would be useful for research and worth including in sage. Two catches:
students are given individual problems to work on, and the course is taught
on Coursera. Motivation for the students would come in various ways:
internships, for instance. Quality of the code would be ensured by
peer-testing the programs.

If you do not know what Coursera or MOOCs are, you are welcome to take my
upcoming course
https://class.coursera.org/massiveteaching-001

If you are interested to play with a MOOC platform yourself, you might want
first to watch the videostream of the 2pm-3pm slot of this conference I am
co-organising on Tuesday:
tinyurl.com/openedx-zurich
as it will help you assess the technical challenges.

I am looking at a start date for the course of around October-November, and
to bring the discussion off the mailing list (to private) so as to keep an
element of surprise for the students.

Let me know!

Paul

Paul-Olivier Dehaye
SNF Professor of Mathematics
University of Zurich
skype: lokami_lokami (preferred)
phone: +41 76 407 57 96
chat: pauloliv...@gmail.com
twitter: podehaye
freenode irc: pdehaye

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-combinat-devel] Diversity to foster sage development

2014-05-28 Thread Paul-Olivier Dehaye
In the big wave of emails exchanged today, I sent this one, by accident to
the wrong mailing list. I recopy it below:

When I went to pycon, the most important thing I learned is the importance
of a diverse community for the development of python. This I learned from
the top, the board of the Python Software Foundation (cf. Lindberg's
keynote at pycon, for instance), and saw in action absolutely everywhere.

This diversity is to be understood in a very broad sense:
- diversity of origins,
- diversity of genders,
- diversity of lifestyles,
- diversity of professional activities,
- ...

I can egocentrically agree with the PSF on the fourth: the fact that python
is tied to so many different fields, ranging from professional software
development world to all kinds of scientific disciplines, is a major
selling point for many people. This was the case for me (and William),
coming from a world of special purpose mathematical software. Relying on a
mature language with a diverse ecosystem encourages a wider array of
contribution to sage. I will posit that a similar motivator was present for
many of us who come with previous experience in other languages.

If your software community is not inclusive, you will reject individual
contributions that might be very interesting (and remain unaware of it),
and that pattern will lead to larger collaborations having a hard time
working at the periphery of the core project. This will decrease the chance
of the core project recruiting new contributors. And we are talking about
highly qualified contributions here, contributions that the sage project
really does not want to end in Magma first. For instance, pick the LMFDB or
findstat. How much of their code is written tiptoeing around sage itself,
and if you make an objective assessment should fit better in sage than in
their project? Bear in mind that the software was developed itself already
tiptoeing around sage's core community (which might be unfair, because a
community's tone is often defined by just a few individuals who speak
louder).

You might ask how origin, genders, lifestyles come in play here. Well,
being inclusive starts simply by being curteous and making people feel at
ease, and in some particular circumstances being "explicit is better than
implicit". It might very well be that a queer person finds the python
community very welcoming (based on objective facts such that one out of
five tracks at pycon was aimed at promoting diversity in the community, or
the diversity of the speakers), that she wants to contribute back, so much
so that she decides to organize a python education summit, where educators
of students of all backgrounds and ages can share tips on how to build a
python pipeline together, one that takes anyone between the age of 5 to the
age of whatever and turns them into a competent enough programmer that the
community is better off from it. Somehow it all works for the better,
because you have to trust individuals that if they like a project they will
contribute to it in a positive way, with their own creativity.

This pipeline exists, and is actively fostered by the Python Software
Foundation as one of the most important assets of the python ecosystem.
Contrast the shortsightedness of the academic community wrt the leaky
pipeline for instance, with the attitude of the PSF described here. There
is no comparison.

At the same time, my reflections since pycon have led me to understand that
it would make sense for things to develop the way they have so far. The PSF
has much closer contacts to the corporate world, and it has a much smaller
board (which helps make bold decisions more easily than a decentralised
system of tenured professors).

How are the corporate world connections important? Well, open source
software is the flagship of Open Innovation, a new and deep trend in
industry that encourages opening up to the world what was considered trade
secrets not long ago (cf. the work of Georg von Krogh, for instance). Open
Innovation makes more business sense if the community that watches those
overtures is wider, because it is then more likely to come up with new
ideas that would have never arisen within closed walls of the company.
Following perfect logical arguments, after some stage the only way to grow
a community is to make it more diverse (in the broad sense described
above), and companies realised that too: promoting diversity also makes
business sense. Now this idea is flowing back to open source software, like
the python ecosystem, and it is only to the credit of the PSF to take this
stance. This is very different from other languages apparently.

Maybe my perspective of the python community was skewed by the fact that
pycon is a US-centric conference. I would be curious to see how it compares
to EuroPython for those aspects, but will be unable to attend.

All this is especially true I would think for software like sage, which
aims to be a replacement to the large CAS software companies. Look

Re: [sage-combinat-devel] Re: redesign combinatorial statistics

2014-05-28 Thread Paul-Olivier Dehaye
I think an argument that this function is badly named is very sensible.
Maybe a better name would be "to_component_sizes". Why not just try
changing the name, and see how much work that is for the findstat group to
adapt. It might be that this does not want to be named, after all, and that
simply an unnamed method needs to be registered.

Do you feel that you own the class "Graph"? And get to decide what is
interesting and what is not relating to Graphs? If so, then indeed there is
a problem. What bothers you particularly? To see those methods in the code?
To see it appear when you press ? Clarifying that part would help
making everyone happy.

Paul


On Wed, May 28, 2014 at 9:52 PM, Nathann Cohen wrote:

> Yo !
>
> > Currently that ticket's description is in complete
> > contradiction to what you seem to describe on the mailing list (which
> seems
> > more sensible to me). In particular the title of the ticket is "Rename"
> > while the last line says "remove".
>
> Not my doing. When I posted my last comment on this ticket I set it to
> "positive_review" and "wontfix" because I gave up. I cannot do anything
> against a reviewer like you.
> Afterwards Ralf changed some stuff, then you set the ticket to
> needs_review, then it was set to needs_work by somebody else. Honestly it
> is not my ticket anymore, do what you want with it.
>
> About the difference you see between my ticket, which said "remove the
> function" and what I said here in my previous post :
> I had not noticed before that having a hidden function was actually a nice
> middle-ground. You can create functions "for semantics only" if it is
> useful, but this is an "internal mechanism" of Sage. If you need a function
> which transforms a Graph into a partition of integer to this end it is
> good, and you can name it Graph._to_partition if you like, but
> Graph.to_partition means that the function is unclear and not something
> users should see. And even if a better name is to be found, I would still
> claim that this function is really not useful to users (though it may be
> useful for the databases you want to build), and as such has nothing to do
> in the (already quite crowded) list of graph functions.
>
> So, yeah. Basically, I had not noticed that having a hidden function with
> a decorator on it (named to_partition if needed) was a good middle ground.
>
> > As long as this is the case, Nathann's arguments are incoherent and
> > contradictory, and any conversation on the list will turn in circles.
> >
> > My summary assessment so far is that Nathann is wrong, the
> implementation by
> > findstat of their ideas is poor, and the burden is on all of us to
> improve
> > it, particularly those who care the most. That's the way sage development
> > works, as far as I understand it. Maybe I will be swayed by good
> arguments
> > from Nathann, who has opened the ticket. I am genuinely keeping an open
> mind
> > about implementation. I want him to improve what's there, not remove, if
> he
> > cares enough.
>
> Whatever.
>
> Nathann
>
> --
> You received this message because you are subscribed to the Google Groups
> "sage-combinat-devel" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to sage-combinat-devel+unsubscr...@googlegroups.com.
> To post to this group, send email to sage-combinat-devel@googlegroups.com.
> Visit this group at http://groups.google.com/group/sage-combinat-devel.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-combinat-devel] Re: redesign combinatorial statistics

2014-05-28 Thread Nathann Cohen
Yo !

> Currently that ticket's description is in complete
> contradiction to what you seem to describe on the mailing list (which
seems
> more sensible to me). In particular the title of the ticket is "Rename"
> while the last line says "remove".

Not my doing. When I posted my last comment on this ticket I set it to
"positive_review" and "wontfix" because I gave up. I cannot do anything
against a reviewer like you.
Afterwards Ralf changed some stuff, then you set the ticket to
needs_review, then it was set to needs_work by somebody else. Honestly it
is not my ticket anymore, do what you want with it.

About the difference you see between my ticket, which said "remove the
function" and what I said here in my previous post :
I had not noticed before that having a hidden function was actually a nice
middle-ground. You can create functions "for semantics only" if it is
useful, but this is an "internal mechanism" of Sage. If you need a function
which transforms a Graph into a partition of integer to this end it is
good, and you can name it Graph._to_partition if you like, but
Graph.to_partition means that the function is unclear and not something
users should see. And even if a better name is to be found, I would still
claim that this function is really not useful to users (though it may be
useful for the databases you want to build), and as such has nothing to do
in the (already quite crowded) list of graph functions.

So, yeah. Basically, I had not noticed that having a hidden function with a
decorator on it (named to_partition if needed) was a good middle ground.

> As long as this is the case, Nathann's arguments are incoherent and
> contradictory, and any conversation on the list will turn in circles.
>
> My summary assessment so far is that Nathann is wrong, the implementation
by
> findstat of their ideas is poor, and the burden is on all of us to improve
> it, particularly those who care the most. That's the way sage development
> works, as far as I understand it. Maybe I will be swayed by good arguments
> from Nathann, who has opened the ticket. I am genuinely keeping an open
mind
> about implementation. I want him to improve what's there, not remove, if
he
> cares enough.

Whatever.

Nathann

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-combinat-devel] Re: redesign combinatorial statistics

2014-05-28 Thread Paul-Olivier Dehaye
At some point we will need a summary, or to use something better than
mailing lists to discuss this.
Paul

Paul-Olivier Dehaye
SNF Professor of Mathematics
University of Zurich
skype: lokami_lokami (preferred)
phone: +41 76 407 57 96
chat: pauloliv...@gmail.com
twitter: podehaye
freenode irc: pdehaye


On Wed, May 28, 2014 at 9:46 PM, Paul-Olivier Dehaye <
paul-olivier.deh...@math.uzh.ch> wrote:

> >  - Nathann is arguing that no empty methods/classes should be present.
> I think he is, and add Vincent too (cf. previous email of his).
>
> Absolutely noone wants unefficient code. If there is a clear way to
> improve, let's do it. But burden is on all of us.
>
> To be clear, I want to have this semantic information in the code.
>
> There are many reasons for this, here is one more: it provides an
> intermediate step for a person joining sage between a typo fix and
> implementing their first function, welcoming microcontributions. I think
> decorators would be very suitable for this, but am open to alternate
> suggestions.
>
> > Would this be a short-term solution?
> Sure!
>
> Paul
>
>
>
>
>
> Paul-Olivier Dehaye
> SNF Professor of Mathematics
> University of Zurich
> skype: lokami_lokami (preferred)
> phone: +41 76 407 57 96
> chat: pauloliv...@gmail.com
> twitter: podehaye
> freenode irc: pdehaye
>
>
> On Wed, May 28, 2014 at 8:47 PM, Simon King wrote:
>
>> Hi Paul,
>>
>> On 2014-05-28, Paul-Olivier Dehaye 
>> wrote:
>> > Two comments:
>> >  - Nathann is arguing that no empty methods/classes should be present.
>>
>> Is he? Sorry, then this is a point where Nathann and I do not agree. I
>> find abstract methods useful. I thought that his main point was: Don't
>> be intrusive! Do not make code of some people slower just because other
>> people care about the mathematical properties of some methods. And from
>> my perspective, the discussion is (or should be) only about the
>> question: How to care about the mathematical properties without slowing
>> down other peoples code.
>>
>> >  - They are not building a database. They are putting tags in the code
>> that
>> > allow them at runtime to build something that amounts to a database.
>> It's
>> > not that different to the category framework in some way, which is
>> encoding
>> > a lot of data via code constructions
>>
>> There was in fact some discussion at #10963 about the question whether it
>> is
>> a good idea that the new category-with-axiom framework encodes a
>> fully-grown
>> would-be-database (by this, I mean something that amounts to a database)
>> by
>> purely local data and naming conventions.
>>
>> I'd say: If they are putting tags in the code then they *do* create a
>> (would-be-)database, whether they want it or not.
>>
>> > I am not arguing that what findstat does with a decorator is the best. A
>> > flagged decorator that does nothing most of the time is better than what
>> > they do. But a full-on database is, as a short term solution, heading in
>> > the wrong direction.
>>
>> Do I understand correctly: You would not like that the
>> @combinatorial_map decorator constructs a database at startup time? I
>> think that's a valid concern.
>>
>> We could try to be clever and introduce an environment variable (or
>> commandline argument) such that @combinatorial_map creates a database
>> when this variable is set, and otherwise does nothing at all.
>>
>> Hence, people who care about the implicit would-be-database encoded in
>> the flags could obtain them by explicit request, and all other people
>> would not be affected at all.
>>
>> Would this be a short-term solution? Also from Nathann's perspective?
>>
>> Cheers,
>> Simon
>>
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "sage-combinat-devel" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to sage-combinat-devel+unsubscr...@googlegroups.com.
>> To post to this group, send email to sage-combinat-devel@googlegroups.com
>> .
>> Visit this group at http://groups.google.com/group/sage-combinat-devel.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-combinat-devel] Re: redesign combinatorial statistics

2014-05-28 Thread Paul-Olivier Dehaye
>  - Nathann is arguing that no empty methods/classes should be present.
I think he is, and add Vincent too (cf. previous email of his).

Absolutely noone wants unefficient code. If there is a clear way to
improve, let's do it. But burden is on all of us.

To be clear, I want to have this semantic information in the code.

There are many reasons for this, here is one more: it provides an
intermediate step for a person joining sage between a typo fix and
implementing their first function, welcoming microcontributions. I think
decorators would be very suitable for this, but am open to alternate
suggestions.

> Would this be a short-term solution?
Sure!

Paul





Paul-Olivier Dehaye
SNF Professor of Mathematics
University of Zurich
skype: lokami_lokami (preferred)
phone: +41 76 407 57 96
chat: pauloliv...@gmail.com
twitter: podehaye
freenode irc: pdehaye


On Wed, May 28, 2014 at 8:47 PM, Simon King  wrote:

> Hi Paul,
>
> On 2014-05-28, Paul-Olivier Dehaye 
> wrote:
> > Two comments:
> >  - Nathann is arguing that no empty methods/classes should be present.
>
> Is he? Sorry, then this is a point where Nathann and I do not agree. I
> find abstract methods useful. I thought that his main point was: Don't
> be intrusive! Do not make code of some people slower just because other
> people care about the mathematical properties of some methods. And from
> my perspective, the discussion is (or should be) only about the
> question: How to care about the mathematical properties without slowing
> down other peoples code.
>
> >  - They are not building a database. They are putting tags in the code
> that
> > allow them at runtime to build something that amounts to a database. It's
> > not that different to the category framework in some way, which is
> encoding
> > a lot of data via code constructions
>
> There was in fact some discussion at #10963 about the question whether it
> is
> a good idea that the new category-with-axiom framework encodes a
> fully-grown
> would-be-database (by this, I mean something that amounts to a database) by
> purely local data and naming conventions.
>
> I'd say: If they are putting tags in the code then they *do* create a
> (would-be-)database, whether they want it or not.
>
> > I am not arguing that what findstat does with a decorator is the best. A
> > flagged decorator that does nothing most of the time is better than what
> > they do. But a full-on database is, as a short term solution, heading in
> > the wrong direction.
>
> Do I understand correctly: You would not like that the
> @combinatorial_map decorator constructs a database at startup time? I
> think that's a valid concern.
>
> We could try to be clever and introduce an environment variable (or
> commandline argument) such that @combinatorial_map creates a database
> when this variable is set, and otherwise does nothing at all.
>
> Hence, people who care about the implicit would-be-database encoded in
> the flags could obtain them by explicit request, and all other people
> would not be affected at all.
>
> Would this be a short-term solution? Also from Nathann's perspective?
>
> Cheers,
> Simon
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "sage-combinat-devel" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to sage-combinat-devel+unsubscr...@googlegroups.com.
> To post to this group, send email to sage-combinat-devel@googlegroups.com.
> Visit this group at http://groups.google.com/group/sage-combinat-devel.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-combinat-devel] Re: redesign combinatorial statistics

2014-05-28 Thread Paul-Olivier Dehaye
@Nathann, Simon:

There is certainly a lot of misunderstandings between all of us. Both ways.
The discussion was started because of a suggestion, turned into a ticket
written by Nathann. Currently that ticket's description is in complete
contradiction to what you seem to describe on the mailing list (which seems
more sensible to me). In particular the title of the ticket is "Rename"
while the last line says "remove".

As long as this is the case, Nathann's arguments are incoherent and
contradictory, and any conversation on the list will turn in circles.

My summary assessment so far is that Nathann is wrong, the implementation
by findstat of their ideas is poor, and the burden is on all of us to
improve it, particularly those who care the most. That's the way sage
development works, as far as I understand it. Maybe I will be swayed by
good arguments from Nathann, who has opened the ticket. I am genuinely
keeping an open mind about implementation. I want him to improve what's
there, not remove, if he cares enough.

Paul


Paul-Olivier Dehaye
SNF Professor of Mathematics
University of Zurich
skype: lokami_lokami (preferred)
phone: +41 76 407 57 96
chat: pauloliv...@gmail.com
twitter: podehaye
freenode irc: pdehaye


On Wed, May 28, 2014 at 7:00 PM, Nathann Cohen wrote:

> Yo !
>
> > I agree 100% with your summary, Simon, except that
> > 1) Nathann will have to say himself whether he agrees or not;
>
> I think that the first time I said it was on the 20/6/2013 (one year ago):
>
> https://groups.google.com/d/msg/sage-devel/SnPfidRM9j8/u7f4X-cLlrsJ
> Quote : "Well, just returning the function as it is while registering the
> decorator's information somewhere seems to be nice. The decorator could
> even add some information to the docstring so that this information would
> automatically appear in the doc !"
>
> Then, I repeated it (same day one year ago)
> https://groups.google.com/d/msg/sage-devel/SnPfidRM9j8/4LbWLMBf-2kJ
>
> I added yesterday a link toward the link above :
> https://groups.google.com/d/msg/sage-devel/QRUXmy6UZVo/wiEpg-eCnYAJ
>
> Which was right after mentionning this idea again :
> https://groups.google.com/d/msg/sage-devel/QRUXmy6UZVo/BJ0WMYjmKJ0J
>
> I mean...
> I don't know
> Yeah... I am pretty sure that I did my job and that I mentionned the
> idea. What more can I do ?
>
> Nathann
>
> --
> You received this message because you are subscribed to the Google Groups
> "sage-combinat-devel" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to sage-combinat-devel+unsubscr...@googlegroups.com.
> To post to this group, send email to sage-combinat-devel@googlegroups.com.
> Visit this group at http://groups.google.com/group/sage-combinat-devel.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-combinat-devel] Re: redesign combinatorial statistics

2014-05-28 Thread Paul-Olivier Dehaye
Hi Vincent

The wikipedia definition of flaming has the words "hostile" and
"insulting". I have certainly been hostile towards Nathann, and have
explicitly explained to him early on why he was wrong and why I was being
hostile. It is part of academic discourse to have heated discussions,
because we are always exploring new ideas. I was hoping this would have put
some sense into him and made sure to hold my ground, rather than letting
the issue drop as I have done in previous discussions. His reactions have
only confirmed that I was on the right track to deal with him: he has never
asked for references, doesn't seem to have looked at those I pointed out,
and eventually insulted me. This is completely unprofessional behaviour. I
even tried to offer to discuss this in private to prevent him further
harming himself. So in summary, I have been hostile and he was both hostile
and insulting.

If you feel that I have been insulting somewhere, PLEASE point me to where,
I will look and immediately apologise if I agree with you.

I will concede that I was waiting for the right moment to jump in on the
mailing list, and that this was planned. Maybe some might be shocked at
this, but again it fits in a larger context that spans at least a couple
years. Again, that's a fair tactic for academics.

This is concerning my attitude towards Nathann. Towards you, I very much
hope I wasn't insulting or hostile (but it is hard to pin down Nathann's
arguments, it is a moving target, so you might have felt associated to some
of the hostility). Your attitude has only been constructive, and in fact
early on I suggested we keep the positivity to your thread. Let me
blanket-apologise if I have insulted or been hostile to you. That was
absolutely not my intent, quite the opposite.

Of course, it is unpleasant for everyone, I am also sorry for that. But
sometimes people need to be put in their place.

Now back to the "content".

I am asking Nathann's opinion because I don't want to go through the same
 again and again.

And, reading your 2) opinion, you disagree with Simon (but there I am
reading in an email he sent after yours).

Paul

Paul-Olivier Dehaye
SNF Professor of Mathematics
University of Zurich
skype: lokami_lokami (preferred)
phone: +41 76 407 57 96
chat: pauloliv...@gmail.com
twitter: podehaye
freenode irc: pdehaye


On Wed, May 28, 2014 at 6:56 PM, Vincent Delecroix <
20100.delecr...@gmail.com> wrote:

> Hi Paul,
>
> 2014-05-28 17:42 UTC+02:00, Paul-Olivier Dehaye
> :
> > I agree 100% with your summary, Simon, except that
> > 1) Nathann will have to say himself whether he agrees or not;
>
> Please at some point stop the flame.
>
> > 2) A decision should be made whether it is valid to introduce lots of
> empty
> > methods and classes simply for the semantic decorators that will be
> added.
>
> It is not. Could you give an example of what you are thinking about ?
> In my mind it would be seomthing like the natural injection ZZ ->
> QQ... but this is already there
> {{{
> sage: QQ.convert_map_from(ZZ)
> Natural morphism:
>   From: Integer Ring
>   To:   Rational Field
> }}}
> So there is no need to create an empty method .as_rational() on each
> integer. If you want a trivial function in your database then
> implement it as a Morphism. Or better as Simon said: put in the
> database what is needed to actually build the Morphism.
>
> Vincent
>
> --
> You received this message because you are subscribed to the Google Groups
> "sage-combinat-devel" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to sage-combinat-devel+unsubscr...@googlegroups.com.
> To post to this group, send email to sage-combinat-devel@googlegroups.com.
> Visit this group at http://groups.google.com/group/sage-combinat-devel.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-combinat-devel] Re: redesign combinatorial statistics

2014-05-28 Thread 'Martin R' via sage-combinat-devel
OK, great, thanks for clarifying!

Am Mittwoch, 28. Mai 2014 20:53:36 UTC+2 schrieb Simon King:
>
> Hi Martin, 
>
> On 2014-05-28, 'Martin R' via sage-combinat-devel <
> sage-comb...@googlegroups.com > wrote: 
> >> E.g., it should know domain and codomain, and it should know 
> >> what category it belongs to. I think it makes sense to let a morphism 
> >> know whether it is injective or surjective. However, additional 
> >> information that is certainly interesting to researchers (e.g.: "Was 
> first 
> >> defined by John Doe in his seminal paper in Journal of Applied 
> >> Irrelevance") clearly should not be stored as an attribute of a 
> morphism. 
> >> 
> > 
> > I do not see any reason why such information should not be stored 
> somewhere 
> > within sage, possibly in form of a database.  Could you please explain? 
>
> I clearly said: "... should not be stored as an attribute OF A 
> MORPHISM". I also clearly said "... is certainly interesting to 
> researchers", hence (which I said in other parts of the post) it would 
> certainly be worth-while to store somewhere in Sage. I just doubt that 
> storing it locally as an attribute of a morphism is a good idea. 
>
> Best regards, 
> Simon 
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-combinat-devel] Re: redesign combinatorial statistics

2014-05-28 Thread Nathann Cohen
Hello !!!

> Is he? Sorry, then this is a point where Nathann and I do not agree.

I don't even know what I think anymore. With the turn that events take, I
think I don't even need to think anymore. I think that I will think what
you think I think, it is much easier for me.

> find abstract methods useful. I thought that his main point was: Don't
> be intrusive! Do not make code of some people slower just because other
> people care about the mathematical properties of some methods. And from
> my perspective, the discussion is (or should be) only about the
> question: How to care about the mathematical properties without slowing
> down other peoples code.

Yep. I also defended that "respecting other people's code" also meant "not
adding method to the classes they use if the method is not useful for
them". If it is only for internal stuff, a hidden (beginning with a '_'
works for everybody...). But that was a long time ago and I gave up on
#16403.

> Do I understand correctly: You would not like that the
> @combinatorial_map decorator constructs a database at startup time? I
> think that's a valid concern.
>
> We could try to be clever and introduce an environment variable (or
> commandline argument) such that @combinatorial_map creates a database
> when this variable is set, and otherwise does nothing at all.
>
> Hence, people who care about the implicit would-be-database encoded in
> the flags could obtain them by explicit request, and all other people
> would not be affected at all.
>
> Would this be a short-term solution? Also from Nathann's perspective?

Nathann's perspective (I just asked him) was given in this earlier message
about implementing . a global variable to enable/disable this feature.
https://groups.google.com/d/msg/sage-devel/QRUXmy6UZVo/-A5k4K4A9QMJ

But it was answered immediately afterward :
"About Nathan's suggestion to have a flag, I don't know if it's such a good
idea. The idea is to provide this semantic information to any user of Sage
not machines."

Truth is, the decorator I have in mind only copies the function and the
arguments to some global "list" (that's all) and I am not scared of this
cost, given that it is only paid when the class is loaded.

Then, there can be a longer computation occurring the first time the
database is queried, and this hardly matters for it is only paid for those
who actually want to use the db information.

Nathann

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-combinat-devel] Re: redesign combinatorial statistics

2014-05-28 Thread Simon King
Hi Martin,

On 2014-05-28, 'Martin R' via sage-combinat-devel 
 wrote:
>> E.g., it should know domain and codomain, and it should know 
>> what category it belongs to. I think it makes sense to let a morphism 
>> know whether it is injective or surjective. However, additional 
>> information that is certainly interesting to researchers (e.g.: "Was first 
>> defined by John Doe in his seminal paper in Journal of Applied 
>> Irrelevance") clearly should not be stored as an attribute of a morphism. 
>>
>
> I do not see any reason why such information should not be stored somewhere 
> within sage, possibly in form of a database.  Could you please explain?

I clearly said: "... should not be stored as an attribute OF A
MORPHISM". I also clearly said "... is certainly interesting to
researchers", hence (which I said in other parts of the post) it would
certainly be worth-while to store somewhere in Sage. I just doubt that
storing it locally as an attribute of a morphism is a good idea.

Best regards,
Simon


-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-combinat-devel] Re: redesign combinatorial statistics

2014-05-28 Thread Simon King
Hi Paul,

On 2014-05-28, Paul-Olivier Dehaye  wrote:
> Two comments:
>  - Nathann is arguing that no empty methods/classes should be present.

Is he? Sorry, then this is a point where Nathann and I do not agree. I
find abstract methods useful. I thought that his main point was: Don't
be intrusive! Do not make code of some people slower just because other
people care about the mathematical properties of some methods. And from
my perspective, the discussion is (or should be) only about the
question: How to care about the mathematical properties without slowing
down other peoples code.

>  - They are not building a database. They are putting tags in the code that
> allow them at runtime to build something that amounts to a database. It's
> not that different to the category framework in some way, which is encoding
> a lot of data via code constructions

There was in fact some discussion at #10963 about the question whether it is
a good idea that the new category-with-axiom framework encodes a fully-grown
would-be-database (by this, I mean something that amounts to a database) by
purely local data and naming conventions.

I'd say: If they are putting tags in the code then they *do* create a
(would-be-)database, whether they want it or not.

> I am not arguing that what findstat does with a decorator is the best. A
> flagged decorator that does nothing most of the time is better than what
> they do. But a full-on database is, as a short term solution, heading in
> the wrong direction.

Do I understand correctly: You would not like that the
@combinatorial_map decorator constructs a database at startup time? I
think that's a valid concern.

We could try to be clever and introduce an environment variable (or
commandline argument) such that @combinatorial_map creates a database
when this variable is set, and otherwise does nothing at all.

Hence, people who care about the implicit would-be-database encoded in
the flags could obtain them by explicit request, and all other people
would not be affected at all.

Would this be a short-term solution? Also from Nathann's perspective?

Cheers,
Simon


-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-combinat-devel] Re: redesign combinatorial statistics

2014-05-28 Thread 'Martin R' via sage-combinat-devel

>
> E.g., it should know domain and codomain, and it should know 
> what category it belongs to. I think it makes sense to let a morphism 
> know whether it is injective or surjective. However, additional 
> information that is certainly interesting to researchers (e.g.: "Was first 
> defined by John Doe in his seminal paper in Journal of Applied 
> Irrelevance") clearly should not be stored as an attribute of a morphism. 
>

I do not see any reason why such information should not be stored somewhere 
within sage, possibly in form of a database.  Could you please explain?

Martin 

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Re: [sage-combinat-devel] Re: redesign combinatorial statistics

2014-05-28 Thread Vincent Delecroix
Hi Vivianne,

2014-05-28 19:32 UTC+02:00, Viviane Pons :
> I think we all agree on this idea now (that the decorator should not wrap
> the method), so there is no point in keeping the argument.
>
> Still, I have asked a few questions on which I'd like you guys opinions:
>
> - what's the best way to store this information? Nathan and Simon mentioned
> database, would this be a run time database? Or something persistent?

I am not sure a real database (e.g. sql or similar) would be the best.
The real question is how many maps you would like to handle ? If the
answer is below 5 I would go for a pure Python datastructure
(dict, set and so).

> - Where to put the method to get the maps, right now it is a function
> hidden in some folder. I would like people to be able to see it when
> they're on the object, but it seems silly to add it manually to the object
> and yet, it shouldn't be on every object...

For me, it would makes sense on parents directly
{{{
sage: Permutations().known_maps_to(Partitions())
[...]
}}}
And in the methods known_maps_to and known_maps_from there should be
pointer on how to feed the database with more maps. But I would charge
the elements with that.

Vincent

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-devel] Re: [sage-combinat-devel] Re: redesign combinatorial statistics

2014-05-28 Thread Viviane Pons
I think we all agree on this idea now (that the decorator should not wrap
the method), so there is no point in keeping the argument.

Still, I have asked a few questions on which I'd like you guys opinions:

- what's the best way to store this information? Nathan and Simon mentioned
database, would this be a run time database? Or something persistent?

- Where to put the method to get the maps, right now it is a function
hidden in some folder. I would like people to be able to see it when
they're on the object, but it seems silly to add it manually to the object
and yet, it shouldn't be on every object...

Cheers

Viviane


2014-05-28 19:00 GMT+02:00 Nathann Cohen :

> Yo !
>
> > I agree 100% with your summary, Simon, except that
> > 1) Nathann will have to say himself whether he agrees or not;
>
> I think that the first time I said it was on the 20/6/2013 (one year ago):
>
> https://groups.google.com/d/msg/sage-devel/SnPfidRM9j8/u7f4X-cLlrsJ
> Quote : "Well, just returning the function as it is while registering the
> decorator's information somewhere seems to be nice. The decorator could
> even add some information to the docstring so that this information would
> automatically appear in the doc !"
>
> Then, I repeated it (same day one year ago)
> https://groups.google.com/d/msg/sage-devel/SnPfidRM9j8/4LbWLMBf-2kJ
>
> I added yesterday a link toward the link above :
> https://groups.google.com/d/msg/sage-devel/QRUXmy6UZVo/wiEpg-eCnYAJ
>
> Which was right after mentionning this idea again :
> https://groups.google.com/d/msg/sage-devel/QRUXmy6UZVo/BJ0WMYjmKJ0J
>
> I mean...
> I don't know
> Yeah... I am pretty sure that I did my job and that I mentionned the
> idea. What more can I do ?
>
> Nathann
>
> --
> 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-de...@googlegroups.com.
> Visit this group at http://groups.google.com/group/sage-devel.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-combinat-devel] Re: redesign combinatorial statistics

2014-05-28 Thread Vincent Delecroix
Hi Paul,

2014-05-28 17:42 UTC+02:00, Paul-Olivier Dehaye
:
> I agree 100% with your summary, Simon, except that
> 1) Nathann will have to say himself whether he agrees or not;

Please at some point stop the flame.

> 2) A decision should be made whether it is valid to introduce lots of empty
> methods and classes simply for the semantic decorators that will be added.

It is not. Could you give an example of what you are thinking about ?
In my mind it would be seomthing like the natural injection ZZ ->
QQ... but this is already there
{{{
sage: QQ.convert_map_from(ZZ)
Natural morphism:
  From: Integer Ring
  To:   Rational Field
}}}
So there is no need to create an empty method .as_rational() on each
integer. If you want a trivial function in your database then
implement it as a Morphism. Or better as Simon said: put in the
database what is needed to actually build the Morphism.

Vincent

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-combinat-devel] Re: redesign combinatorial statistics

2014-05-28 Thread Nathann Cohen
Yo !

> I agree 100% with your summary, Simon, except that
> 1) Nathann will have to say himself whether he agrees or not;

I think that the first time I said it was on the 20/6/2013 (one year ago):

https://groups.google.com/d/msg/sage-devel/SnPfidRM9j8/u7f4X-cLlrsJ
Quote : "Well, just returning the function as it is while registering the
decorator's information somewhere seems to be nice. The decorator could
even add some information to the docstring so that this information would
automatically appear in the doc !"

Then, I repeated it (same day one year ago)
https://groups.google.com/d/msg/sage-devel/SnPfidRM9j8/4LbWLMBf-2kJ

I added yesterday a link toward the link above :
https://groups.google.com/d/msg/sage-devel/QRUXmy6UZVo/wiEpg-eCnYAJ

Which was right after mentionning this idea again :
https://groups.google.com/d/msg/sage-devel/QRUXmy6UZVo/BJ0WMYjmKJ0J

I mean...
I don't know
Yeah... I am pretty sure that I did my job and that I mentionned the
idea. What more can I do ?

Nathann

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-combinat-devel] Re: redesign combinatorial statistics

2014-05-28 Thread Vincent Delecroix
Hi Christian,

2014-05-28 15:21 UTC+02:00, Christian Stump :
>> The second step would be to think how to add semantic to the map. Part
>> of is already managed by the axioms/categories (for example a Morphism
> --> How do you think "more semantic" should be implemented? As a dict
> with some conventions for keys and values?

Here I am not sure. As Simon pointed out we do not want to start
having tons of informations attached to maps... but for most of them I
would be in favor of methods (some of them my be trivial as "return
True" and some others might involve computations).

> --> What if I want to give properties that depend on input parameter
> like the length of the permutation? Say I look at the map from
> Permutations(n) to itself given by composition with the long cycle
> (1..n), and now want to add the semantic information that it has order
> n?

In that very particular case, I would implement a generic  class
InteriorAutomorphism (that is an element of the group of the
automorphisms of a given group). Then the order would simply be
obtained through the method .order() that exists for any group
element. Then it is up to you to see which of these interior
automorphisms you want to add to your database.

> --> Is there a way to implement your ideas such that the lines of code
> I need to touch in order to turn a method into a map is right where
> the method is implemented?

decorator is exactly the kind of objects design to do that.

Vincent

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-combinat-devel] Re: redesign combinatorial statistics

2014-05-28 Thread Paul-Olivier Dehaye
I agree 100% with your summary, Simon, except that
1) Nathann will have to say himself whether he agrees or not;
2) A decision should be made whether it is valid to introduce lots of empty
methods and classes simply for the semantic decorators that will be added.

Paul


Paul-Olivier Dehaye
SNF Professor of Mathematics
University of Zurich
skype: lokami_lokami (preferred)
phone: +41 76 407 57 96
chat: pauloliv...@gmail.com
twitter: podehaye
freenode irc: pdehaye


On Wed, May 28, 2014 at 5:32 PM, Simon King  wrote:

> Hi Paul,
>
> On 2014-05-28, Paul-Olivier Dehaye 
> wrote:
> > Christian's point is key. The absolute hardest problem to solve is where
> to
> > anchor semantic information so that others can contribute to it easily,
> > ...
> > Right now, by lack of a better place, it is put in sage.
>
> I think you miss the point of what Nathann and I try to say.
>
> I think Nathann agrees that it is a reasonable idea to have a
> @combinatorial_map
> decorator in front of a method (I do agree), provided that it gives useful
> information to some people (this is the case now), and provided that it
> does not have a negative impact for people who don't use this
> information---and currently it *does* have a negative impact, because of
> a slow-down in potentially time-critical methods.
>
> Last attempt before leaving office:
> - Currently we have a lose-lose situation: When people put
>   @combinatorial_map, then it has a negative impact to some other
>   people (the slow-down), and it is difficult to use the added information
>   for those who want to do proper queries.
> - We should better have a win-win situation: When people put
>   @combinatorial_map, then it should not change the method (to not
>   slow-down stuff), and the added information should be accessible to
>   queries in a reasonable way.
>
> Cheers,
> Simon
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "sage-combinat-devel" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to sage-combinat-devel+unsubscr...@googlegroups.com.
> To post to this group, send email to sage-combinat-devel@googlegroups.com.
> Visit this group at http://groups.google.com/group/sage-combinat-devel.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-combinat-devel] Re: redesign combinatorial statistics

2014-05-28 Thread Paul-Olivier Dehaye
Two comments:
 - Nathann is arguing that no empty methods/classes should be present.
Which means to me that he doesn t see the value of semantic information in
itself
 - They are not building a database. They are putting tags in the code that
allow them at runtime to build something that amounts to a database. It's
not that different to the category framework in some way, which is encoding
a lot of data via code constructions (partially redundant work: cf
http://nforum.mathforge.org/discussion/2490/what-would-you-want-from-a-higher-categorical-database/#Item_0).
In any case, the way findstat does things, they have the potential to
construct a database. The point is that they allow me to reuse their work
to easily build my own database on top, that does something different.

I am not arguing that what findstat does with a decorator is the best. A
flagged decorator that does nothing most of the time is better than what
they do. But a full-on database is, as a short term solution, heading in
the wrong direction.
Paul

Paul-Olivier Dehaye
SNF Professor of Mathematics
University of Zurich
skype: lokami_lokami (preferred)
phone: +41 76 407 57 96
chat: pauloliv...@gmail.com
twitter: podehaye
freenode irc: pdehaye


On Wed, May 28, 2014 at 5:23 PM, Simon King  wrote:

> Hi Christian,
>
> On 2014-05-28, Christian Stump  wrote:
> > But how am I then convincing
> > someone knowing that information to add that information there?
>
> Ask him/her to put @combinatorial_map in front of the method in
> question. In other words, there should be no need to change the interface
> for those who contribute combinatorial maps. What should change is how this
> contribution is processed. It should not be the case that, as a result,
> the overhead of calling a method increases!
>
> What I (an Nathann?) am trying to convince y'all: @combinatorial_map
> should not wrap a method into some class instance that serves as a proxy
> to the method and holds additional information purely locally. Instead,
> @combinatorial_map should communicate with a (local) database before
> returning the method *unwrapped*. And then, there should additionally
> be tools to use the local database together with a global one.
>
>
> > What I
> > like about a local system (preferably accompanying the code of the
> > very method) is that it makes it easy for the person having
> > information about a specific map to provide that information.
>
> To give you a drastic picture: Imagine you work for a company and want
> to keep track who is your customer. You suggest to attach a little tag
> to each customer, stating that (s)he is "happy customer of FooBar ltd.". It
> will then be very easy to test if a given person is your customer: Just
> look for the tag. And when you want to have a list of your customers in
> a given town: Just do an exhaustive search in that twon and check each
> person's tag!
>
> But I somehow feel that having a database keeping track of your
> customers would be better. And I do believe that tagging a method as
> "combinatorial map" locally is the same as tagging your customers
> locally. So, the picture applies.
>
> > Of course, that information must be organized to be searchable
> > properly. But I don't see a problem there beside conventional namings.
>
> Hang on. Do you suggest to implicitly create a database that relies on
> naming schemes??
>
> I think one can not deny: What y'all do with the @combinatorial_map *is*
> in fact creating a database---at least implicitly---, whether you want
> it or not. But explicitly is better than implicitly, and one should not
> re-invent the wheel. So...
>
> Best regards,
> Simon
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "sage-combinat-devel" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to sage-combinat-devel+unsubscr...@googlegroups.com.
> To post to this group, send email to sage-combinat-devel@googlegroups.com.
> Visit this group at http://groups.google.com/group/sage-combinat-devel.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-combinat-devel] Re: redesign combinatorial statistics

2014-05-28 Thread Simon King
Hi Paul,

On 2014-05-28, Paul-Olivier Dehaye  wrote:
> Christian's point is key. The absolute hardest problem to solve is where to
> anchor semantic information so that others can contribute to it easily,
> ...
> Right now, by lack of a better place, it is put in sage.

I think you miss the point of what Nathann and I try to say.

I think Nathann agrees that it is a reasonable idea to have a @combinatorial_map
decorator in front of a method (I do agree), provided that it gives useful
information to some people (this is the case now), and provided that it
does not have a negative impact for people who don't use this
information---and currently it *does* have a negative impact, because of
a slow-down in potentially time-critical methods.

Last attempt before leaving office:
- Currently we have a lose-lose situation: When people put
  @combinatorial_map, then it has a negative impact to some other
  people (the slow-down), and it is difficult to use the added information
  for those who want to do proper queries.
- We should better have a win-win situation: When people put
  @combinatorial_map, then it should not change the method (to not
  slow-down stuff), and the added information should be accessible to
  queries in a reasonable way.

Cheers,
Simon


-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-combinat-devel] Re: redesign combinatorial statistics

2014-05-28 Thread Simon King
Hi Christian,

On 2014-05-28, Christian Stump  wrote:
> But how am I then convincing
> someone knowing that information to add that information there?

Ask him/her to put @combinatorial_map in front of the method in
question. In other words, there should be no need to change the interface
for those who contribute combinatorial maps. What should change is how this
contribution is processed. It should not be the case that, as a result,
the overhead of calling a method increases!

What I (an Nathann?) am trying to convince y'all: @combinatorial_map
should not wrap a method into some class instance that serves as a proxy
to the method and holds additional information purely locally. Instead,
@combinatorial_map should communicate with a (local) database before
returning the method *unwrapped*. And then, there should additionally
be tools to use the local database together with a global one.


> What I
> like about a local system (preferably accompanying the code of the
> very method) is that it makes it easy for the person having
> information about a specific map to provide that information.

To give you a drastic picture: Imagine you work for a company and want
to keep track who is your customer. You suggest to attach a little tag
to each customer, stating that (s)he is "happy customer of FooBar ltd.". It
will then be very easy to test if a given person is your customer: Just
look for the tag. And when you want to have a list of your customers in
a given town: Just do an exhaustive search in that twon and check each
person's tag!

But I somehow feel that having a database keeping track of your
customers would be better. And I do believe that tagging a method as
"combinatorial map" locally is the same as tagging your customers
locally. So, the picture applies.

> Of course, that information must be organized to be searchable
> properly. But I don't see a problem there beside conventional namings.

Hang on. Do you suggest to implicitly create a database that relies on
naming schemes??

I think one can not deny: What y'all do with the @combinatorial_map *is*
in fact creating a database---at least implicitly---, whether you want
it or not. But explicitly is better than implicitly, and one should not
re-invent the wheel. So...

Best regards,
Simon


-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-combinat-devel] Re: redesign combinatorial statistics

2014-05-28 Thread Paul-Olivier Dehaye
Christian's point is key. The absolute hardest problem to solve is where to
anchor semantic information so that others can contribute to it easily,
because his project requires lots of microcontributions (cf. Nielsen's
Reinventing Discovery)
Right now, by lack of a better place, it is put in sage. According to me,
this is a sensible short term solution, step 1 if you want. Step 2 is that
the LMFDB starts to do the same thing putting semantic information on empty
classes and methods. Step 3 is that we find a better way, armed with two
use cases. I don't think we are ready to go to step 3 yet.
Paul

Paul-Olivier Dehaye
SNF Professor of Mathematics
University of Zurich
skype: lokami_lokami (preferred)
phone: +41 76 407 57 96
chat: pauloliv...@gmail.com
twitter: podehaye
freenode irc: pdehaye


On Wed, May 28, 2014 at 4:37 PM, Christian Stump
wrote:

> > Ceterum censeo: Please do not put too much semantic into an attribute of
> > the map. It will be a burden for the map, will cost memory, and will be
> > difficult to search.
>
> I would personally really like to get semantic information about maps
> implemented in Sage. This starts with automated concatenating maps,
> and does not even end with information about a map in the Journal of
> Applied Nonsense. I am sure you have reasons to vote for a centralized
> system where to store such information. But how am I then convincing
> someone knowing that information to add that information there? What I
> like about a local system (preferably accompanying the code of the
> very method) is that it makes it easy for the person having
> information about a specific map to provide that information.
>
> Of course, that information must be organized to be searchable
> properly. But I don't see a problem there beside conventional namings.
>
> --
> You received this message because you are subscribed to the Google Groups
> "sage-combinat-devel" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to sage-combinat-devel+unsubscr...@googlegroups.com.
> To post to this group, send email to sage-combinat-devel@googlegroups.com.
> Visit this group at http://groups.google.com/group/sage-combinat-devel.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-combinat-devel] Re: redesign combinatorial statistics

2014-05-28 Thread Christian Stump
> Ceterum censeo: Please do not put too much semantic into an attribute of
> the map. It will be a burden for the map, will cost memory, and will be
> difficult to search.

I would personally really like to get semantic information about maps
implemented in Sage. This starts with automated concatenating maps,
and does not even end with information about a map in the Journal of
Applied Nonsense. I am sure you have reasons to vote for a centralized
system where to store such information. But how am I then convincing
someone knowing that information to add that information there? What I
like about a local system (preferably accompanying the code of the
very method) is that it makes it easy for the person having
information about a specific map to provide that information.

Of course, that information must be organized to be searchable
properly. But I don't see a problem there beside conventional namings.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-combinat-devel] Re: redesign combinatorial statistics

2014-05-28 Thread Simon King
Hi Christian,

On 2014-05-28, Christian Stump  wrote:
> --> Can I turn any method in Sage which mimics a mathematical function
> into a map in the above sense? To put it differently: Is it right that
> there are always (or almost always) parents available to use as domain
> and codomain?

Any function can be made a morphism by wrapping it in SetMorphism.
However, the question is whether you can easily construct domain and
codomain. Domain and codomain must be instances of CategoryObject, if I
recall correctly. If we talk about maps of a specific subset of X to a
specific subset of Y (e.g., a map from prime numbers to non-negative
integers), then I guess facade parents can be used.

> --> How do you think "more semantic" should be implemented? As a dict
> with some conventions for keys and values?

Ceterum censeo: Please do not put too much semantic into an attribute of
the map. It will be a burden for the map, will cost memory, and will be
difficult to search.

Best regards,
Simon


-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-combinat-devel] Re: redesign combinatorial statistics

2014-05-28 Thread Nicolas M. Thiery
Hi!

On Wed, May 28, 2014 at 11:54:22AM +0200, Vincent Delecroix wrote:
> Hi Christian,
> 
> 2014-05-28 11:32 UTC+02:00, Christian Stump :
> >> It seems that actually nobody read my initial post on that thread... so
> >> let me repeat
> >
> > I did -- but didn't really have any qualified contribution...
> >
> >> But the semantic has to be implemented at the level of maps not at the
> >> level of methods.
> >
> > could you explain what you mean there (maybe using your example of the
> > number of descents of a permutation).
> 
> A method ( = a Python function) is not a Sage Map ( = a Python object
> that model a mathematical function). I would like first to convert the
>  method into a map
> {{{
> from sage.categories.map import Map
> class NumberOfDescents(Map):
> def __init__(self):
> Map.__init__(Permutations(), NonNegativeIntegers())
> 
> def _call_(self, p):
> return Integer(p.number_of_descents())
> }}}
> The above example is already non-trivial since it specifies a domain
> and a codomain (which is different from the parent of the image of an
> element):
> {{{
> sage: nod = NumberOfDescents()
> sage: p = Permutation([3,2,1])
> sage: nod(p)
> 3
> sage: nod(p).parent() is NN
> False
> }}}
> The second step would be to think how to add semantic to the map. Part
> of is already managed by the axioms/categories (for example a Morphism
> between GradedSets preserve the grading). But there is nothing for
> injectivity/surjectivity or more subtle properties.

For whatever it's worth: in MuPAD, it was possible to add type
annotations on a method; typically to specify the domain and codomain:

abs := proc(x: Dom::Integer): Dom::Integer
begin
return(x)
end

We were using this extensively for:

- Dynamic type checking in debug mode
- Retrieving the domain or codomain, typically when constructing new
  functions from existing ones (e.g. in module_morphism)
- ...

Python 3 will allow to add similar annotations. In the mean time we
could possibly stuff such annotations to glorify methods:

sage: def f(x): return abs(x)
sage: f.domain=ConstantFunction(ZZ)
sage: f.codomain=ConstantFunction(NN)
sage: f(-3)
3
sage: f.domain()
Integer Ring
sage: f.codomain()
Non negative integer semiring

Anyway, just food for thoughts; it's not like there is a clear plan in
this direction.

Cheers,
Nicolas
--
Nicolas M. ThiƩry "Isil" 
http://Nicolas.Thiery.name/

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-combinat-devel] Re: redesign combinatorial statistics

2014-05-28 Thread Simon King
Hi Vincent,

On 2014-05-28, Vincent Delecroix <20100.delecr...@gmail.com> wrote:
> A method ( = a Python function) is not a Sage Map ( = a Python object
> that model a mathematical function). I would like first to convert the
>  method into a map

Which is trivially possible, see sage.categories.morphism.SetMorphism:
It accepts any callable as input. Hence, a method should be acceptable.

> {{{
> from sage.categories.map import Map
> class NumberOfDescents(Map):
> def __init__(self):
> Map.__init__(Permutations(), NonNegativeIntegers())
>
> def _call_(self, p):
> return Integer(p.number_of_descents())
> }}}
> The above example is already non-trivial since it specifies a domain
> and a codomain (which is different from the parent of the image of an
> element):

OK, here we have facade sets at work.

> The second step would be to think how to add semantic to the map.
> ...
> Part
> of is already managed by the axioms/categories (for example a Morphism
> between GradedSets preserve the grading). But there is nothing for
> injectivity/surjectivity or more subtle properties.

I would oppose against adding *arbitrary* flags as attributes to the map.

Perhaps the guideline should be: What facts does a morphism need to know
in order to work? What facts are related with it being a morphism?

E.g., it should know domain and codomain, and it should know
what category it belongs to. I think it makes sense to let a morphism
know whether it is injective or surjective. However, additional
information that is certainly interesting to researchers (e.g.: "Was first
defined by John Doe in his seminal paper in Journal of Applied
Irrelevance") clearly should not be stored as an attribute of a morphism.

So, I guess you should be more specific: What properties are you talking
about?

> It would make more sense to register actual maps as above.

Register *where* and *how*? And what do you mean by "register actual maps"?

To answer "where" and "how", one should first know: How do you intend to use
the registered data?

For example, if you want to ask questions such as "what mathematically
meaningful bijections have been constructed between enumerated sets X
and Y?", then the property of being "mathematically meaningful" should
not be registered in the map---simply because it would be difficult to
search in distributed data. Hence, if you want to register a map as being
"mathematically meaningful bijection", then it should be in a central
place, aka database, IMHO.

Concerning "registering actual maps":
What you would register in this central location is not necessarily a
map that you need to create before registering it. The decorator just
needs to tell the database: "Take object X and object Y, and wrap
the method X.john_doe_morphism into a SetMorphism; the result will be an
isomorphism of X and Y in the category Blahs()".

As a result, the database will know how to *explicitly* construct an
actual morphism---but it would only be explicitly constructed upon
request.

Best regards,
Simon


-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-combinat-devel] Re: redesign combinatorial statistics

2014-05-28 Thread Christian Stump
> The second step would be to think how to add semantic to the map. Part
> of is already managed by the axioms/categories (for example a Morphism
> between GradedSets preserve the grading). But there is nothing for
> injectivity/surjectivity or more subtle properties.

Thanks for the clarification! I have a few more questions there:

--> Can I turn any method in Sage which mimics a mathematical function
into a map in the above sense? To put it differently: Is it right that
there are always (or almost always) parents available to use as domain
and codomain?

--> How do you think "more semantic" should be implemented? As a dict
with some conventions for keys and values?

--> What if I want to give properties that depend on input parameter
like the length of the permutation? Say I look at the map from
Permutations(n) to itself given by composition with the long cycle
(1..n), and now want to add the semantic information that it has order
n?

--> Is there a way to implement your ideas such that the lines of code
I need to touch in order to turn a method into a map is right where
the method is implemented?

Thanks, Christian

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-combinat-devel] Re: redesign combinatorial statistics

2014-05-28 Thread Paul-Olivier Dehaye
Vincent, I did read your email, which is very good. Thank you for posting.
Unfortunately it is too focused for my taste. I would like to solve the
generic problem of how to put in semantic information in sage first. Many
might say let's solve one problem first, but in my mind it is already three
times that this problem is appearing:
 - LMFDB
 - findstat
 - category framework
That's why people who were at Edinburgh were invited.

I am looking for a generic solution, and to help with this I have started
writing a document that is read only here:
https://etherpad.mozilla.org/ep/pad/view/ro.Gzkl7YR-2gG/latest
I am not writing this document at this exact moment, because I have a
pressing deadline until Sunday. I am willing to devote much more time for
this then. This is not an empty comment, in some ways my pressing deadline
of Sunday is because I am already working on this. My timing is slightly
affected, because in the back of my head I knew I just had to wait for the
next flare up of this discussion on the list to get another discussion
started, but this time backed up with concrete elements.
Anyone who would like to help me add constructive material to the document
is welcome to do so, just ask me for the link.

@Christian: a generic, better, query engine might be build outside of
findstat if the findstat group is too focused on their particular use case.
Believe me, findstat is as far as I can tell baby case compared to LMFDB.
But it has the merits of trying a more viable approach in my mind.
I certainly don't want to develop anything without explicitly telling
findstat about it.

Paul


Paul-Olivier Dehaye
SNF Professor of Mathematics
University of Zurich
skype: lokami_lokami (preferred)
phone: +41 76 407 57 96
chat: pauloliv...@gmail.com
twitter: podehaye
freenode irc: pdehaye


On Wed, May 28, 2014 at 11:54 AM, Vincent Delecroix <
20100.delecr...@gmail.com> wrote:

> Hi Christian,
>
> 2014-05-28 11:32 UTC+02:00, Christian Stump :
> >> It seems that actually nobody read my initial post on that thread... so
> >> let me repeat
> >
> > I did -- but didn't really have any qualified contribution...
> >
> >> But the semantic has to be implemented at the level of maps not at the
> >> level of methods.
> >
> > could you explain what you mean there (maybe using your example of the
> > number of descents of a permutation).
>
> A method ( = a Python function) is not a Sage Map ( = a Python object
> that model a mathematical function). I would like first to convert the
>  method into a map
> {{{
> from sage.categories.map import Map
> class NumberOfDescents(Map):
> def __init__(self):
> Map.__init__(Permutations(), NonNegativeIntegers())
>
> def _call_(self, p):
> return Integer(p.number_of_descents())
> }}}
> The above example is already non-trivial since it specifies a domain
> and a codomain (which is different from the parent of the image of an
> element):
> {{{
> sage: nod = NumberOfDescents()
> sage: p = Permutation([3,2,1])
> sage: nod(p)
> 3
> sage: nod(p).parent() is NN
> False
> }}}
> The second step would be to think how to add semantic to the map. Part
> of is already managed by the axioms/categories (for example a Morphism
> between GradedSets preserve the grading). But there is nothing for
> injectivity/surjectivity or more subtle properties.
>
> It would make more sense to register actual maps as above.
>
> Vincent
>
> --
> You received this message because you are subscribed to the Google Groups
> "sage-combinat-devel" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to sage-combinat-devel+unsubscr...@googlegroups.com.
> To post to this group, send email to sage-combinat-devel@googlegroups.com.
> Visit this group at http://groups.google.com/group/sage-combinat-devel.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-combinat-devel] Re: redesign combinatorial statistics

2014-05-28 Thread Vincent Delecroix
Hi Christian,

2014-05-28 11:32 UTC+02:00, Christian Stump :
>> It seems that actually nobody read my initial post on that thread... so
>> let me repeat
>
> I did -- but didn't really have any qualified contribution...
>
>> But the semantic has to be implemented at the level of maps not at the
>> level of methods.
>
> could you explain what you mean there (maybe using your example of the
> number of descents of a permutation).

A method ( = a Python function) is not a Sage Map ( = a Python object
that model a mathematical function). I would like first to convert the
 method into a map
{{{
from sage.categories.map import Map
class NumberOfDescents(Map):
def __init__(self):
Map.__init__(Permutations(), NonNegativeIntegers())

def _call_(self, p):
return Integer(p.number_of_descents())
}}}
The above example is already non-trivial since it specifies a domain
and a codomain (which is different from the parent of the image of an
element):
{{{
sage: nod = NumberOfDescents()
sage: p = Permutation([3,2,1])
sage: nod(p)
3
sage: nod(p).parent() is NN
False
}}}
The second step would be to think how to add semantic to the map. Part
of is already managed by the axioms/categories (for example a Morphism
between GradedSets preserve the grading). But there is nothing for
injectivity/surjectivity or more subtle properties.

It would make more sense to register actual maps as above.

Vincent

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-combinat-devel] Re: redesign combinatorial statistics

2014-05-28 Thread Christian Stump
> It seems that actually nobody read my initial post on that thread... so let 
> me repeat

I did -- but didn't really have any qualified contribution...

> But the semantic has to be implemented at the level of maps not at the level 
> of methods.

could you explain what you mean there (maybe using your example of the
number of descents of a permutation).

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-combinat-devel] Re: redesign combinatorial statistics

2014-05-28 Thread Vincent Delecroix
It seems that actually nobody read my initial post on that thread...
so let me repeat

There are two disjoint tasks:
 - add semantic to Map and Morphism (Sage)
 - gather the list of meaningful maps (Sage/FindStat)

First of all, most of us agree that we need more semantic at the level
of maps. Note that Morphism is already a way of providing semantics as
it tells that the map preserves some structure. It will not hurt me
too much to have aliases satistics and combinatorial_map for whatever
they are. But the semantic has to be implemented at the level of maps
not at the level of methods.

As Vivianne agreed: combinatoral_map is currently an empty class whose
purpose is to tag some methods as being of the good kind. The only
semantic added is "that method is actually a map".


Secondly, there is the thing at what FindStat is good: gathering  the
set of meaningful maps from Parent A to Parent B. I will not develop
on the technical part underlying this question as it was already
discussed. But it would be good to have the infrastructure and some of
the information in Sage. In other words, a function which register
maps
{{{
sage: my_map = build_map_from_method(domain, range, category=X,
method_name='toto', injective=True)
sage: register_map(my_map)
}}}
In some places, a decorator might be the way to proceed.

Vincent

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-combinat-devel] Re: redesign combinatorial statistics

2014-05-28 Thread Christian Stump
> Just to make this statement more precise: it will not be possible within the 
> next two years if Mmarco relies on your availability for this (there is no 
> blame in that statement, it's  just a clarification that others might be 
> willing to work on this problem).

It is not a problem -- it's the way we set up our project! Its main
features are designed for users who do not want to do any coding or
even seeing a terminal environment. And that's good about it and one
of the reasons why people like it! I recently talked about the project
with Michelle Wachs -- she was actually asking about it! -- and she
seemed to be really impressed. I think that didn't just come from the
bare functionality, but from the easy possibility for her to interact
with it.

Anyone who is interested in working on more sophisticated features to
be done from within Sage are very welcome to talk to me and/or to
Chris Berg (though he might be a little less responsive these days)
about it to see how we can approach it. But I would not like if I find
out in 18 months from now that someone implemented a much stronger
query machine (which is certainly possible) based on our ideas, but
without collaborating with us!

Cheers, Christian

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-combinat-devel] Re: redesign combinatorial statistics

2014-05-28 Thread Paul-Olivier Dehaye
>
> --> It will not be possible (say within the next two years, except the
> unlikely event that I will a lottery without participating, and then
> spend some money to hire a professional programmer) to only query the
> statistics data, and do the computations within your own Sage.


Just to make this statement more precise: it will not be possible within
the next two years if Mmarco relies on your availability for this (there is
no blame in that statement, it's just a clarification that others might be
willing to work on this problem).
Paul

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-combinat-devel] Re: redesign combinatorial statistics

2014-05-28 Thread Paul-Olivier Dehaye
Hi Mmarco,
This is a functionality many of us would want too. The question that is
unclear is how to implement it in the best way. What Nathann refers to as
"some kind of protocol to transfer the combinatorial objects" is a very
hard problem. Fortunately, many people are starting to realise that this is
a desired functionality and constructively try to find solutions. Depending
on your background, you might be able to directly help, for instance by
annotating some of the functions in the sage code (a very easy thing to do,
for which you need only a web browser. This is a tiny step above editing
documentation).
People are actively working on this problem
Paul

Paul-Olivier Dehaye
SNF Professor of Mathematics
University of Zurich
skype: lokami_lokami (preferred)
phone: +41 76 407 57 96
chat: pauloliv...@gmail.com
twitter: podehaye
freenode irc: pdehaye


On Wed, May 28, 2014 at 10:01 AM, Nathann Cohen wrote:

> > Would it be possible to include the findstat functionality in sage?
>
> It is possible to write the code, and desirable. As the Sage is
> open-source, you are also welcome to give it a try if you need the feature.
> Sage already queries the OEIS, though for FindStat you will probably have
> to design some kind of protocol to transfer the combinatorial objects with
> the website's owners. I am told that you can contact them at
> i...@findstat.org.
>
> Nathann
>
> --
> You received this message because you are subscribed to the Google Groups
> "sage-combinat-devel" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to sage-combinat-devel+unsubscr...@googlegroups.com.
> To post to this group, send email to sage-combinat-devel@googlegroups.com.
> Visit this group at http://groups.google.com/group/sage-combinat-devel.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-combinat-devel] Re: redesign combinatorial statistics

2014-05-28 Thread Christian Stump
> Would it be possible to include the findstat functionality in sage? That is,
> i have a bunch of pairs (permutation, number), then call the function
> findtsta on them, and get a list of possible ways that the numbers can me
> computed from the permutations. All inside sage, without need to go to the
> findstat webpage.

I really appreciate that so many people appear to be interested in the
FindStat functionality, being it from within Sage or from the FindStat
webpage!

--> It is almost sure that it will *never* be possible to use FindStat
without a web connection

--> Nevertheless, it is on our ToDo list (which is, as for basically
everyone, very packed -- I don't promise anything for a given time in
the future) to provide a text based query to the database to obtain
machine readable results that can be parsed into Sage. That should go
similarly to the Sage functionality for the OEIS. BUT please see that
querying FindStat is *much more complicated* than the simple query for
the OEIS: (A) the data structure is more complicated, (B) the
"following maps" is much more complicated.

--> It will not be possible (say within the next two years, except the
unlikely event that I will a lottery without participating, and then
spend some money to hire a professional programmer) to only query the
statistics data, and do the computations within your own Sage. That's
because there is (A) in additional layer of code on top of Sage that
makes that possible and (B) this layer is extra thick because we also
have stuff there that could be part of Sage but is not because there
is a *partial unwelcoming attitute* that prefers to give a "that's not
good for Sage" over "include non-perfect code, even if it would have a
strictly positive influence on the Sage user community" in such
instances.

Cheers,

Christian

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-combinat-devel] combinatorial statistics

2014-05-28 Thread Paul-Olivier Dehaye
Since you ask, here is a thread where you have insulted me repeatedly:
http://trac.sagemath.org/ticket/16403
Others might think I have asked for it, but that's a different question,
and we can have that debate too if you want. But if we are going to have
that debate, I would ask that you first send me all links you think are
relevant, and that you accept that I send you all links that I find
relevant (which might be research papers on the topic of lone individuals'
net negative contributions to open source software development, despite
producing lots of code. For instance that would include background
reading/video watching relevant to the diversity thread). I would also ask
that we both spend the time that is needed to actually read through those
links and then set a date for the debate to start, and a place that the
debate is held.
This way everyone can make sure to prepare their own popcorn and know of
where to watch.
Paul

Paul-Olivier Dehaye
SNF Professor of Mathematics
University of Zurich
skype: lokami_lokami (preferred)
phone: +41 76 407 57 96
chat: pauloliv...@gmail.com
twitter: podehaye
freenode irc: pdehaye


On Wed, May 28, 2014 at 9:57 AM, Nathann Cohen wrote:

> Yo !
>
>
> > I find it quite difficult now to follow this thread, I see the answer to
> some emails that are not even in the thread...
>
> This is because it was sent to both sage-devel and sage-combinat. After a
> while somebody anwers to only one group and mess follows.
>
>
> > Anyway, I just want to answer to this specific sentence of Nathan: "This
> is only technical issues, nothing more. But I hate that it takes one year
> to see it fixed."
> >
> > Well, Nathan, you just have to live with it! See, we're all working on a
> global project depending on lots of people, we all have to wait. The fact
> that you hate / love something has no impact on my time line whatsoever.
>
> This is very very easy on you Don't you feel any responsibility at all
> for what you put into Sage ? We had a conversation one year ago about ways
> to fix that, one of which seems to suit you as you said on sage-devel just
> yesterday. And when several persons tell you that your design has a fault,
> and a way to solve it, you answer them with a "Just live with it ! The fact
> that you love/hate it has no impact on my time line whatsoever" ?
>
>
> > And you should understand that you won't make things faster by a)
> insulting people (as you did last year) and b) giving orders (as you just
> did in this very thread).
>
> I assume that what you call giving orders is this :
>
>
> "Our discussion about this is almost 1 year old. If you do not know how to
> clean this code this month, please remove it."
>
> You will have to provide the link yourself if you want to claim that I
> insult people. I don't claim that it never happens, but I am very
> interested in the context.
>
> Nathann
>
> --
> You received this message because you are subscribed to the Google Groups
> "sage-combinat-devel" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to sage-combinat-devel+unsubscr...@googlegroups.com.
> To post to this group, send email to sage-combinat-devel@googlegroups.com.
> Visit this group at http://groups.google.com/group/sage-combinat-devel.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-combinat-devel] Re: redesign combinatorial statistics

2014-05-28 Thread Nathann Cohen
> Would it be possible to include the findstat functionality in sage?

It is possible to write the code, and desirable. As the Sage is
open-source, you are also welcome to give it a try if you need the feature.
Sage already queries the OEIS, though for FindStat you will probably have
to design some kind of protocol to transfer the combinatorial objects with
the website's owners. I am told that you can contact them at
i...@findstat.org.

Nathann

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


Re: [sage-combinat-devel] combinatorial statistics

2014-05-28 Thread Nathann Cohen
Yo !

> I find it quite difficult now to follow this thread, I see the answer to
some emails that are not even in the thread...

This is because it was sent to both sage-devel and sage-combinat. After a
while somebody anwers to only one group and mess follows.

> Anyway, I just want to answer to this specific sentence of Nathan: "This
is only technical issues, nothing more. But I hate that it takes one year
to see it fixed."
>
> Well, Nathan, you just have to live with it! See, we're all working on a
global project depending on lots of people, we all have to wait. The fact
that you hate / love something has no impact on my time line whatsoever.

This is very very easy on you Don't you feel any responsibility at all
for what you put into Sage ? We had a conversation one year ago about ways
to fix that, one of which seems to suit you as you said on sage-devel just
yesterday. And when several persons tell you that your design has a fault,
and a way to solve it, you answer them with a "Just live with it ! The fact
that you love/hate it has no impact on my time line whatsoever" ?

> And you should understand that you won't make things faster by a)
insulting people (as you did last year) and b) giving orders (as you just
did in this very thread).

I assume that what you call giving orders is this :

"Our discussion about this is almost 1 year old. If you do not know how to
clean this code this month, please remove it."

You will have to provide the link yourself if you want to claim that I
insult people. I don't claim that it never happens, but I am very
interested in the context.

Nathann

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.


[sage-combinat-devel] Re: redesign combinatorial statistics

2014-05-28 Thread mmarco
A slightly unrelated problem:

Would it be possible to include the findstat functionality in sage? That 
is, i have a bunch of pairs (permutation, number), then call the function 
findtsta on them, and get a list of possible ways that the numbers can me 
computed from the permutations. All inside sage, without need to go to the 
findstat webpage.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/d/optout.