I am confused about what to do.

Everyone seems to be assuming that one of Volker's or Nicolas' approaches
must be right. It might very well be that both approaches are suboptimal
compared to a third. Still, Nicolas' has the merit to be implemented.

Let me explain:
I support Nicolas' initiative and do very much think this is a feature we
want in sage.
I have concerns with Nicolas' nested classes approach but recognize that it
has the merit of being the only one implemented (and used already!).
My opinion is that all the objective criteria for a patch have been passed
(except for some regression on legacy code, which does not seem to be the
core of Volker's objections) and that only fairly subjective concerns are
left (paraphrase: "it's confusing to a python developer to have nested
classes!").
I also have concerns with Volker's approach.
I have my own alternative approach to suggest.
I am not willing to devote the time to implement my own alternative (just
like Volker is not willing to implement his).
I am willing to review any patch submitted by Volker and suggest
improvements (these are likely to require substantial work on his part).
I am *definitely* not trying to be obstructionist but am afraid that in
this case the review process for patches is unclearly defined, and just
aping the behaviour of others by me would lead to total stalemate.

At this stage I better outline my own solution so as to open it to more
criticism from everyone (more fun!). As I see it, both Nicolas' and
Volker's suggestions have the shortcoming that they require a one-time
decision now of how to make purely mathematical information fit into
python's syntax (object for an axiom versus nested classes). This also
prevents any further reuse (short of python introspection of live objects
or static analysis of the code) of this formalised-as-code purely
mathematical information into any other system, be it the LMFDB, the
combinatorial statistics finder, the atlas of categories, another CAS or
any other mathematicians' collaborative efforts. Instead, I would advocate
using a declarative domain specific language built for semi-formalizing
mathematics. Such a language was developed as part of a PhD thesis (Florian
Rabe), and is called MMT. It tries to precisely address the needs of a
community of mathematicians trying to formalise some part of mathematics.
In fact (and very importantly) you don't need to formalise from the ground
up. You can just formalise parts of math (i.e. "a finite group has order a
prime power", even though you never defined what a group was). This is
meant to be used collaboratively, and in fact meant to be used for the
whole math community at once in a distributed fashion. You should think of
it as "OpenMath (re)done right". One could argue that this would require
sage developers to know two languages (python and MMT), but that would only
be true for those who want to implement a truly new category. In fact, if
this MMT takes off (and sage might have a role in that), it would allow
reuse across use cases, and we would conceivably benefit from the work of
others, for instance a database of categories developed by others:
http://nforum.mathforge.org/discussion/1754/
Now in my "solution", this declarative language still has to be translated
into python code. Of course at that stage mathematicians' interaction and
python code have been decoupled, so it would be a pure question of
optimisation whether Nicolas or Volker's solution is better. This question
would have an entirely objective answer based purely on efficiency.

Paul
PS: Florian has visited me in Zurich 6 months ago, and is receptive to the
idea of using his system as a basis to generate code, even if it was not
his original intent.


On Tue, Mar 11, 2014 at 10:23 PM, Volker Braun <vbraun.n...@gmail.com>wrote:

> On Tuesday, March 11, 2014 8:42:04 PM UTC, Nathann Cohen wrote:
>>
>> If you want to get this ticket inside of Sage there is an easy way :
>> review it.
>
>
> +1
>
> also would save me a lot of time
>
>
>  --
> 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-de...@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-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to