Re: [sympy] Re: GSOC 2014 idea: Adding parsing functionality to Sympy Live
@asmeurer @certik @skirpichev Thank you for introducing me to the world of open source. I just have one question in mind. Could you please provide feedback on my GSOC proposal so that I can make sure that all the problems are patched by next time? Thanks, Aditya Shah -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/c77e3ca1-d171-4680-b2f7-8e50bd669497%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [sympy] Re: GSOC 2014 idea: Adding parsing functionality to Sympy Live
@asmeurer @certik I have posted my final proposal on melange. Could you please take a look at it and provide suggestions Thanks, Aditya -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/7722e1e3-1eae-4a1d-8d23-861a48465172%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [sympy] Re: GSOC 2014 idea: Adding parsing functionality to Sympy Live
@Jo thanks for chiming in. I understand your sentiment but from your reply, I gather that you have properly understood my proposal. Firstly, adding EBNF adds 1 extra layer which can anyways be overridden by an experienced programmer such has yourself. Secondly, I propose to keep the extra layer to maintain the API in case we grow discontent with modgrammar. In my scheme of things, you write the grammar in EBNF form, then the Spec to Grammar converter generates a Python file (which BTW anyone can write themselves if they know the format that nodgrammar takes the input in) which serves as an input to modgrammar. Should we decide to replace modgrammar with say Spark, we can change to code of Spec to Grammar converter file to generate the corresponding input to Spark. Here, adding one extra layer offers a big advantage. Even if the underlying framework is changed, that detail has been abstracted and so user needn't worry about that. And yes, if the user knows the format of the Python file which serves as an input to either of the framework, he/she can bypass the first stage and directly write the input file (generally in Python). Adding an extra layer doesn't hamper the productivity in any case, rather it enhances the same in the case that user doesn't know or doesn't want to bother with the details of how input file to the PGF is generated. I hope these arguments satiate your questions. Regards, Aditya Shah -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/bef15799-db98-417e-9225-06ea2c2096fc%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [sympy] Re: GSOC 2014 idea: Adding parsing functionality to Sympy Live
@Jo while I think the last of your concerns is valid, I would say that EBNF is very popular in the field of theory of computation and programming language principles. According to me, you would find more people who are well versed in EBNF rather than knowing or wanting to learn modgrammar API. Plus, since here I attempt to bring in standardization, we need to set some structure, which means a dependence on some tool or the other (also, if you remember, it was you who suggested to use modgrammar or some exsting PGF to me when I was foolish enough to set out to write my own. Thanks for that) But yes, coming to the point, I don't see any other way here. Also, as you say a developer needs to learn either EBNF or modgrammar API, the liberty for which I have already provided in the existing architecture. The developer can either opt for EBNF or direct Python file as an input. I am sorry but I don't understand the rest of your concerns. Regards, Aditya -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/a0445edd-ecdd-47c9-a48d-ecb54165d681%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [sympy] Re: GSOC 2014 idea: Adding parsing functionality to Sympy Live
@Jo thanks for the swift reply. I'll try to explain my position to you. Since, I come from a bit theoretical background, I do prefer to use EBNF to manipulate grammars. As you said, that is a selected group of people and I believe that. Also, on the suggestion of @asmeurer, if you read 6th last post, you'd find that people wanting to work with Python can do so directly without bothering with explicit notation. Here I ask you one thing. I have seen the documentation of modgrammar and even Spark and while both of them use Python for directly represent the grammar, you'd find that without prior knowledge of EBNF, you cannot write the python code. It is because, they encapsulate the EBNF form by Python code and so I believe that EBNF should be known a priori. Plus, as you said no user is ever going to bother about XYZ-Sympy converters. That would rest on developers who set out to define those parsers. I do think that people who intend to create parsers, would have prior knowledge of EBNF. Even if they don't as you claim, they can always bypass that step entirely. As for the maintenance part, if modgrammar or any other PGF decides to discontinue or change their API, we would have to only change the Spec to Language converter file or as you claim learn the new API. What I don't seem to understand is that, there are 2 approaches to do the given thing and even if one is not widely popular ( as you claim), if we do add support for that, it would only serve to empower someone who fits in that particular case to use it. So where's the issue? Regards, Aditya -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/00f22cf5-df52-48d9-aa1f-cb111232b80b%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [sympy] Re: GSOC 2014 idea: Adding parsing functionality to Sympy Live
@Jo I think your concern regarding maintenance overhead is true, but then it is true for all the software systems. I still maintain that adding the extra layer does add some serious benefit. And as for the maintenance, I think that some serious problems would arise when there is an issue of incompatible API (which you said is an exception not a rule). Plus as you pointed out, we can always use a preferred version of modgrammar. So there you have it. If we continue to do so, I don'y think there is any maintenance overhead at all (since we don't change anything). Plus, as for the bug part, I take full responsibility to make the code as bug free as possible. Regards, Aditya -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/b557e35a-1d3d-4c84-8f25-25e2336b311d%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [sympy] Re: GSOC 2014 idea: Adding parsing functionality to Sympy Live
@Jo I would also add that my claim that the Extra layer adds some benefit is in the fact (which I already explained to you several posts back) that most of the languages tend to share large portions of their grammar. So we can simply merge the generic rules with the language specific rules to enforce modularity. I suggest you please read my GSoC proposal in its entirety. You can find it at https://github.com/sympy/sympy/wiki/GSoC-2014-Application-Aditya-Shah-SymPy-Parsing-Framework. Regards, Aditya -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/a37f41f5-75ba-4035-b6ea-bd77719467f4%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [sympy] Re: GSOC 2014 idea: Adding parsing functionality to Sympy Live
@Jo Okay let us assume that modgrammar allows us to share grammar. In that case I have no problem to remove the EBNF dependency, although I would say that it is a good thing to have around. Plus i haven't had the time to read the entire documentation of modgrammar (too much coursework!). I intend to do that in community bonding period. So till then let us keep the architecture this way or else i'll modify. Seems fair? Regards, Aditya -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/add74cda-d17f-4470-bcbb-5f89bf9cf8d3%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [sympy] Re: GSOC 2014 idea: Adding parsing functionality to Sympy Live
@Jo thank you for your valuable insight. I will keep those points in mind and I will definitely try out modgrammar first. Regards, Aditya Shah -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/2c45b0be-a0cf-4951-bf7d-7f74eb3d2719%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[sympy] Re: GSOC 2014 idea: Adding parsing functionality to Sympy Live
@Sachin Thanks. I have deleted the identical page. I will soon update the page to include the sections of Mock API and Timeline. Regards, Aditya -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/a0fcdb19-9c0a-4199-b38b-d797faac0592%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[sympy] Re: GSOC 2014 idea: Adding parsing functionality to Sympy Live
@asmeurer @skirpichev @certik @jo @srjoglekar246 I have completed my GSoc proposal. You can find it at https://github.com/sympy/sympy/wiki/GSoC-2014-Application-Aditya-Shah-SymPy-Parsing-Framework. Please review it and leave your suggestions below. Thanks, Aditya Shah -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/579f72f6-1a87-48dc-a996-91b3842db589%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [sympy] Re: GSOC 2014 idea: Adding parsing functionality to Sympy Live
@asmeurer, I respectfully disagree. Using a python file to represent the grammar forces the user to understand and know the format of the file. Also, should the current Parser generator Framework needs be replaced in future (discontinued or any similar reason), it would cause much inconvenience, because then the users would have to learn about the new format by which the grammar is specified. Such an arrangement (the one that you are suggesting), breaks the API in such an event. Plus, if we specify the grammar as I have mentioned in the proposal, it allows the user to directly use EBNF (Extended Backus-Naur Form) which is a standard way to represent CFGs (Context Free Grammars). I hope this justifies my using such an arrangement. Regards, Aditya -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/682827be-7367-4f6a-a7f7-9e65d6dbb491%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [sympy] Re: GSOC 2014 idea: Adding parsing functionality to Sympy Live
Well I think that is not a problem at all. In case the user wants to directly skip to the part of generating the grammar as a python code, he/she can do so. Write the correct grammar file and and jump to step 3 i.e. use the PGF to generate the parser. The rest of the things remain same. So I think that in order to accommodate your perspective, there is no change required at all. Regards, Aditya -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/be0de5bc-3547-4874-857f-f257b857a0d8%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [sympy] Re: GSOC 2014 idea: Adding parsing functionality to Sympy Live
@asmeurer @skirpichev @certik @jo I have drafted a proposal for my project. You can find it at https://github.com/sympy/sympy/wiki/GSoC-2014-Application-Aditya-Shah-SymPy-Parsing-Framework. Please review it and leave your suggestions below. Thanks, Aditya PS- I have yet to add the timeline to my project. -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/bb9b9644-0183-4136-b76b-50db14a09b25%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [sympy] Re: GSOC 2014 idea: Adding parsing functionality to Sympy Live
@Jo Thanks a lot! The last post cleared all things up. So basically, I can enforce a standardized grammar and implement that used the likes of modgrammar library which I think is quite convenient and suitable for the task. I need to define the rules of the grammar and in such a way that any language can then be extended very simply via the development of a simple interface that converts the rules of that language to the standard set. Is that feasible now? Thanks, Aditya -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/ab8ff0ad-d606-40e3-8625-704f86e0079f%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [sympy] Re: GSOC 2014 idea: Adding parsing functionality to Sympy Live
@Jo Thanks again for the clarifications. I did some research and I observed that conversion from Math Spec Languages to Sympy equivalent can be done via the use of RE themselves. So this will allow for a very efficient grammar(RE are manifestations of FSAs and the their conversions to CFGs is a quite simple algorithm). So in the end what matters is the underlying architecture by which the developer enter the details for the new parser to be made, which is then processed by the tool that I propose to build(the interface between a spec file and its conversion to python code so as to be processed by modgrammar) and then the resultant output is fed to modgrammar which then generates the final parser. Regards, Aditya -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/13e6283e-d5cd-4de7-a62c-6b007d519b89%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [sympy] Re: GSOC 2014 idea: Adding parsing functionality to Sympy Live
@Jo, My philosophy is as much automation as possible. Now just for the sake of argument consider this. We have 2 Math Spec languages A and B. Since both are means to the same end, they differ only in subtle places. While that might not be the case always, let us assume that it is so. By using python code as the spec file, we are forcing the user to unnecessarily iterate over the rules that are same for both the languages. So this is what I propose, we keep a spec sheet in between which captures only the differing rules. The rest of them will be assumed to be the same being specified once and open to inspection. That way we can build on existing rules and not waste programming effort as well as time on reinventing the wheel as you put it. This resembles the functional overriding concept from OOP. I hope this addresses your concerns. Regards, Aditya -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/2b31ca01-a218-44a6-b9d7-eed3726ec92e%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [sympy] Re: GSOC 2014 idea: Adding parsing functionality to Sympy Live
@Jo Well I am still unconvinced of your opinion that such the strategy that I intend to adopt will fail in the long run. I'll give you my reasons for it. Firstly, we are just talking about Math Spec Languages not generalized programming languages with complex rules. I have noticed that the rules of different Math Spec Languages tend to be quite similar differing only in the syntactic sugar. After all, the functions are quite similar. ... though, we have been discussing parser aspects. You plan to use a hand-written one; my advice is to stay away from that route because maintaining a hand-written parser with an occasionally-changing syntax means that all the clever shortcuts you took will some day stop working. Factoring out is one such clever shortcut, applied systematically. I'm not saying that you will fail. I'm just saying that you're running a considerable risk of failure here. I'm also saying that the more languages SymPy supports using hand-written parsers, the higher the maintenance overhead will become. Secondly, I am not planning to use a hand written one. Right now sympy uses hand written parsers which has made the development process of new parsers a mess because of lack of structure and lack of standardization. All I want to achieve is a standard by which we will always be able to define new parsers should the need arise. Also, I intend to pursue development of NLP parser for sympy(quite rudimentary) so as to achieve a basic capability to match that of WolphramAlpha's. I suggest you read the thread (the part where certik points to the same topic) and give your 2 cents about my approach. Thanks, Aditya -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/0e80694b-4dda-40e9-acd9-8ed965cdbf4b%40googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: [sympy] Re: GSOC 2014 idea: Adding parsing functionality to Sympy Live
@Certik Thanks for replying. I think that we might be able to make quite a robust parser after all. Well I do agree that it may escape some very peculiar use cases but still according to me such a parser (and quite fully functional at that) is better than having no parser. I am currently pursuing a project in NLP for my coursework and I do have a decent experience in the area. So will that be considered as a new proposal or a continuation of this proposal itself? Thanks, Aditya -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/64a95eaf-7c51-4f30-9f01-acfb9ac37f5b%40googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: [sympy] Re: GSOC 2014 idea: Adding parsing functionality to Sympy Live
@Certik. Sure thing, I'll draft a proposal on the wiki. Thanks, Aditya -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/327b66ad-76e4-4c68-ad74-fb331c34f4fb%40googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: [sympy] Re: GSOC 2014 idea: Adding parsing functionality to Sympy Live
@Joachim Durchholz, thanks a lot for your warnings. I do understand your concerns but I think that I will be able to create the desired thing. I do admit that the final product may contain a few bugs but I will try to keep it as bug free as possible And BTW, for the parser structure I intend to use Compilers by Aho, Lam, Sethi, Ullman as a reference book(popularly known as The Dragonbook). If anyone can suggest a better reference material please comment below. Thanks, Aditya Shah -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/0c36020f-d765-4695-a33f-fdfb1df9dd3f%40googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: [sympy] Re: GSOC 2014 idea: Adding parsing functionality to Sympy Live
@Jo Thank you, that was quite enlightening. Now as to the parsers, they are not exactly parsers. We do have rudimentary parsers for Mathematica and Maxima in sympy right now. If you take a look at their code, you can see that they are not CFGs but simple RE rules. They perform very good under almost all the circumstances (although I encountered a bug in the Mathematica module and fixed it). The point is that this functionality allows us to embed small snippets already written in other languages. So the aim here right now is to generate a parser(or a converter as you may call it) that converts that snippet to equivalent python/sympy code. After that is successfully done, we can move onto a generic parser framework that can convert entire programs to sympy equivalent code. And I was going for a parser generator framework for sympy that generates a parser, not just a parser itself. Thanks, Aditya -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/0b730418-4978-4203-8e64-176c34ed4151%40googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: [sympy] Re: GSOC 2014 idea: Adding parsing functionality to Sympy Live
@Jo Parser generators sure exist. They take in grammar specs and generate parsers for that grammar. But the idea here is that we create our own custom generator framework which takes in a predefined type of rules(grammar) and then takes advantage of the similarities between the different Languages such as Mathematica or MathML to create a parser that parses the expression to sympy code. Please take a look at the mathematica.py module in sympy/sympy/parsing folder. That is a parser for mathematica language. But it has had to be coded by hand. What I intend to implement is a program that takes in a few details about the differences between the language and sympy and automatically generates the code that converts the expression. Please do note that here the term parser that I am referring to is not the exact parser that we have for other languages. It is more of an interpreter sort of thing and I want to make the program that creates those interpreters. Regards, Aditya -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/cc817d7c-4f5d-4894-9788-4b8fe2f5108e%40googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: [sympy] Re: GSOC 2014 idea: Adding parsing functionality to Sympy Live
@Certik Thanks a lot for replying. Well, as to your first question, I intend to develop a framework that can generate a parser. What we have in mathematica.py is a parser. So I want to take that one step further and devise a standard mechanism by which any developer can extend the enormous power of sympy by specifying a few things(the details of which I am still working on). Also as to your second question, it involves the use of NLP(Natural Language Processing). In that we case, we'll have to use some NLP framework such as NLTK or Gensim to process the inbound query. Although, I can think of a very rudimentary structure in NLP queries such as every query has to be composed of 3 parts: 1. An action. (Essentially the action maps to a function in sympy. The action in your example is plot) 2. A function (The specified action has to be applied on a something, right? That is the function part. The function in your example is x^2) 3. Limits (Optional)(Since Sympy is largely symbolic in nature, limits may or may not have any significance to the computation. The limits in your example being x= 1 to 10) And to your last question I would like to say that in one sense it is quite a big undertaking. This semester I have a course called Principles of Compiler construction. After learning about the various parsing techniques used by the standard compilers, I think that we can apply the very same techniques to other Math spec languages too and develop a Parsing framework for sympy. Thanks, Aditya -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/32a9c6e3-847e-4540-8462-4cd99f0f98bf%40googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: [sympy] Re: GSOC 2014 idea: Adding parsing functionality to Sympy Live
I have developed a raw block diagram and an API to explain my concept. It goes as follows: Suppose, we want to write a parser for the MathML Language. We need to create 2 things: 1. A Spec File (this contains the mappings between MathML features and corresponding sympy features (although not all)). 2. A Parser Generator File (This file contains references to the Spec File and the Parser Generator Framework(PGF)(which I intend to create). Spec File == Parser Generator Program == Parser Generator Framework(PGF) || V Name of language.py + Entry updated in the parsers.py file On executing this Parser generator file, for our example we get a parser program called mathml.py This file is placed in the sympy/sympy/parsing/parsers folder. A file exists in /sympy/sympy/parsing/ called parsers.py which contains the mappings of name of languages and corresponding parsers found in the ./parsers/ folder. So we also update the code in the parsers.py to include the mathml language parser. Now a user who wants to convert a MathML string to its sympy equivalent, does the following steps: a = parsers.convert_sympy(s, lang='mathml') This statement invokes a function convert_sympy in the parsers.py which matches the parser to be invoked as mathml.py. It passes the string s to the parser mathml.py. After the necessary transformations, it is passed on to sympify module in sympy/sympy/core/ folder. The final output is returned and stored in a which is now a pure sympy expression. Please provide feedback on this idea and point out any mistakes or inefficiencies in case you discover any. Thanks, Aditya -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/127b3a9a-0109-4488-9660-e5201312dd55%40googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: [sympy] Re: GSOC 2014 idea: Adding parsing functionality to Sympy Live
@asmeurer @skirpichev So how do you feel about the above mentioned idea? A generic parsing framework for Sympy to facilitate extending Sympy to similar Math Spec Languages? -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/7bae6da4-74c9-44a6-95c8-0638cab1304c%40googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: [sympy] Re: GSOC 2014 idea: Adding parsing functionality to Sympy Live
Not exact specification, but there is a proper syntax definition. Please take a look here: https://reference.wolfram.com/mathematica/tutorial/TheSyntaxOfTheMathematicaLanguage.html So here what differs is that all the inbuilt functions start with a Capital letter, Also inverse trignometric functions have 'Arc' instead of 'a' in case of sympy. The functions use [] instead of () to take in args. And as Aaron mentioned, the user can specify from which language he needs to parse his string, so there is no need for language detection. I can think on the most commonly used traits while determining the parsed string. So the language parser would simply convert the string to a python/sympy equivalent and its evaluation will then be done my another module similar to sympify. -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/bab80ff1-5874-4924-9599-04d25469abb0%40googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: [sympy] Re: GSOC 2014 idea: Adding parsing functionality to Sympy Live
Can anyone please comment on the feasibility of my idea stated above? Thanks, Aditya Shah -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/bd57dbd8-39fc-4963-886a-bec45bc96c2c%40googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: [sympy] Re: GSOC 2014 idea: Adding parsing functionality to Sympy Live
Hi Christophe, I would like to illustrate the process with an example. If the input string is Sqrt[x], since such a format for square root function belongs only in Mathematica spec, we can then proceed to convert the string to its sympy equivalent. If the string is \sqrt[x], the leading \ distinguishes the string to belong to the Latex spec. What my point is that we can pre-analyze the commonly occurring keywords and functions such as sqrt or sin and make a list of them for the language for which you want to write the parser. Then when the input string comes, we can match the string to the lists and decide on the language after which it can be passed to a relevant parser. I propose this because this framework can be extended. All the developer has to do is write a list of commonly occurring words(keywords and common functions) and also the function style( [] vs () ) and then can proceed to write the parser for the language. This way the parser module in sympy can be made modular and extensible as suggested by Aaron previously. So the structure will look like: Language Recognizer Relevant Language Parser FInal sympy parser to evaluate the expressions. Thanks, Aditya Shah -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. For more options, visit https://groups.google.com/groups/opt_out.
[sympy] Re: GSOC 2014 idea: Adding parsing functionality to Sympy Live
Hi Sachin, While I do agree that inclusion of NLP parser would be a big project in itself. But if implemented even as an add-on, it can be used to augment the capabilities of Sympy Live. Btw just a quick question: Can such a project be considered for GSOC by sympy? Thanks, Aditya Shah -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. For more options, visit https://groups.google.com/groups/opt_out.
Re: [sympy] Re: GSOC 2014 idea: Adding parsing functionality to Sympy Live
@asmeurer https://github.com/asmeurer, @srjoglekar246https://github.com/srjoglekar246, @skirpichev. Please review the idea and comment upon it so that a discussion can ensue. -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. For more options, visit https://groups.google.com/groups/opt_out.
Re: [sympy] Re: GSOC 2014 idea: Adding parsing functionality to Sympy Live
Then I have another idea in mind. A language specifier configuration file can be given as input by the developer and sympy takes care of the rest. It's quite like yacc. But this would essentially reduce the workload of the developer substantially regarding three development of a new parser. Aditya Shah -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/d3b86f19-6f42-4cb8-b9da-8c9a78bc867c%40googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: [sympy] Re: GSOC 2014 idea: Adding parsing functionality to Sympy Live
Then I have another idea in mind. A language specifier configuration file can be given as input by the developer and sympy takes care of the rest. It's quite like yacc. This would essentially reduce the workload of the developer substantially regarding the development of a new parser. Aditya Shah -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/d4a72dfe-2d8a-4d93-b170-c37bbda61ac0%40googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
Re: [sympy] Re: GSOC 2014 idea: Adding parsing functionality to Sympy Live
Hey Aaron, I have solved the issue 1160 mentioned at https://code.google.com/p/sympy/issues/detail?id=1160q=label%3AParsingcolspec=ID%20Type%20Status%20Priority%20Milestone%20Reporter%20Summary%20Stars Please can you tell me the exact procedure to push the patch? Thanks, Aditya Shah -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. For more options, visit https://groups.google.com/groups/opt_out.
Re: [sympy] Re: GSOC 2014 idea: Adding parsing functionality to Sympy Live
Btw i just submitted a PR at https://github.com/sympy/sympy/pull/2947 Is that it or is anything missing? Thanks, Aditya Shah On Friday, 21 February 2014 23:09:40 UTC+5:30, Aditya Shah wrote: Hey Aaron, I have solved the issue 1160 mentioned at https://code.google.com/p/sympy/issues/detail?id=1160q=label%3AParsingcolspec=ID%20Type%20Status%20Priority%20Milestone%20Reporter%20Summary%20Stars Please can you tell me the exact procedure to push the patch? Thanks, Aditya Shah -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. For more options, visit https://groups.google.com/groups/opt_out.
[sympy] Re: GSOC 2014 idea: Adding parsing functionality to Sympy Live
Thanks for the reply Sachin. However I am quite unsure about the nature of the PR. Is is supposed to be a patch or introduction of some new functionality or something else altogether? Can you please clarify on that matter? Thanks, Aditya Shah -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. For more options, visit https://groups.google.com/groups/opt_out.
Re: [sympy] Re: GSOC 2014 idea: Adding parsing functionality to Sympy Live
Thanks for the clarification Aaron. I'll keep the deadlines in mind. On Wednesday, 19 February 2014 04:50:26 UTC+5:30, Aaron Meurer wrote: No, this is incorrect. You must have at least one PR *pushed into the codebase*. See https://github.com/sympy/sympy/wiki/gsoc-2014-application-template. Perhaps you are confused by the deadline mismatch. The deadline for opening the PR is the same as the student application deadline (March 21), and the deadline for that pull request to be merged is the same as the date that Google announces accepted students (April 7). This is done because actual merging depends on reviewing manpower, which is sometimes lacking. But if you start now, you should find it easy to do both before either of those days. Aaron Meurer On Tue, Feb 18, 2014 at 4:45 AM, Sachin Joglekar srjogl...@gmail.com javascript: wrote: It's not necessary to have a 'successful' (by that I assume you mean a merged) PR to become a part of GSoC, though its good to have that. Basically, we need to be sure about you being good with the theory behind the project (may reflect in your former work and proposal), and that you know atleast the fundamentals that are needed, like git and the basic SymPy workflow (pushing commits, adding tests, PEP8 conventions etc). You obviously can learn these during the GSoC/Community bonding period, but knowing them beforehand is a sure plus. However, SymPy does require you to atleast have a PR in the pipeline to be considered for selection as a GSoC student. On Sunday, February 16, 2014 10:13:05 PM UTC+5:30, Aditya Shah wrote: Hi, I am Aditya Shah and I am a third year Computer SCience student at BITS-Pilani university. I would like to work with Sympy for GSOC. I had previously posted on this mailing list regarding my willingness to implement the group theory module for Sympy. While scrolling through the ideas list, I came upon the idea to improve the parser for Sympy Live. I have a small background in parsing and natural language processing, since I have done projects on those topics for my college course work. Can anyone please tell me how much work is done on parsers, and what needs to be implemented further? @ProspectiveMentor: Please reply to this post so that I can discuss further regarding the topic. Github profile: https://github.com/adityashah30/ IRC: adityashah30 Thanks, Aditya Shah -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+un...@googlegroups.com javascript:. To post to this group, send email to sy...@googlegroups.comjavascript:. Visit this group at http://groups.google.com/group/sympy. For more options, visit https://groups.google.com/groups/opt_out. -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. For more options, visit https://groups.google.com/groups/opt_out.
Re: [sympy] GSOC 2014 idea: Adding parsing functionality to Sympy Live
Thanks for the reply Aaron. I am really quite new to application and software development, so can you please tell me more about Sympy's requirement about a successful PR to participate in GSOC? Thanks, Aditya Shah On Monday, 17 February 2014 00:11:23 UTC+5:30, Aaron Meurer wrote: All the current code in in SymPy, in sympy/parsing. You should think about how to structure the parsing module, so that it is extensible enough to handle many different kinds of inputs (LaTeX, mathematica, natural language, etc.). Aaron Meurer On Sun, Feb 16, 2014 at 10:43 AM, Aditya Shah aditya...@gmail.comjavascript: wrote: Hi, I am Aditya Shah and I am a third year Computer SCience student at BITS-Pilani university. I would like to work with Sympy for GSOC. I had previously posted on this mailing list regarding my willingness to implement the group theory module for Sympy. While scrolling through the ideas list, I came upon the idea to improve the parser for Sympy Live. I have a small background in parsing and natural language processing, since I have done projects on those topics for my college course work. Can anyone please tell me how much work is done on parsers, and what needs to be implemented further? @ProspectiveMentor: Please reply to this post so that I can discuss further regarding the topic. Github profile: https://github.com/adityashah30/ IRC: adityashah30 Thanks, Aditya Shah -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+un...@googlegroups.com javascript:. To post to this group, send email to sy...@googlegroups.comjavascript:. Visit this group at http://groups.google.com/group/sympy. For more options, visit https://groups.google.com/groups/opt_out. -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. For more options, visit https://groups.google.com/groups/opt_out.
[sympy] GSOC 2014 idea: Adding parsing functionality to Sympy Live
Hi, I am Aditya Shah and I am a third year Computer SCience student at BITS-Pilani university. I would like to work with Sympy for GSOC. I had previously posted on this mailing list regarding my willingness to implement the group theory module for Sympy. While scrolling through the ideas list, I came upon the idea to improve the parser for Sympy Live. I have a small background in parsing and natural language processing, since I have done projects on those topics for my college course work. Can anyone please tell me how much work is done on parsers, and what needs to be implemented further? @ProspectiveMentor: Please reply to this post so that I can discuss further regarding the topic. Github profile: https://github.com/adityashah30/ IRC: adityashah30 Thanks, Aditya Shah -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. For more options, visit https://groups.google.com/groups/opt_out.
Re: [sympy] Re: Sympy Project Idea: Implementation of Group Theory
Thanks for your reply Aaron. I shall look into Aleksandar's work and try to further it. Aditya Shah -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. For more options, visit https://groups.google.com/groups/opt_out.
Re: [sympy] work regarding Group Theory module
Thanks Aaron, I'll start from there. Aditya Shah -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. For more options, visit https://groups.google.com/groups/opt_out.
[sympy] work regarding Group Theory module
Hi, I posted about my idea to implement Group Theory module in Sympy. According to the prerequisites for any GSOC aspirant, he has to post a patch/PR regarding the topic he wishes to base his GSOC project on. Now, since Sympy doesn't contain any module related to Groups, can anyone please tell me where can I start? Thanks, Aditya Shah PS: I am really excited to work with the Sympy community, so please reply. -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. For more options, visit https://groups.google.com/groups/opt_out.
[sympy] Sympy Project Idea: Implementation of Group Theory
Hi, I would like to discuss the idea for GSOC project: Implementation of the Group Theory as a module in Sympy. I think that Sympy needs a proper module to handle Group theory on a generic scale and I believe that I can deliver that. I chose this topic because I have studied Group theory twice as a part of my college studies and my basics are pretty strong. So, I think that I can complete the project should I be selected with the given time. I am not very familiar with Sympy so far, but I can assure you that I am a very fast learner and I will study the Sympy code structure first and with the help of the excellent documentation already in place, begin my work on the module respecting all the conventions laid down by the Sympy development team. My plan of action would be to first develop a theory as to how to represent the groups in language aspects and define the various parameters and fields that makes the manipulation of the groups easier and efficient. After that my focus would be on to implement the very common algorithms in Group Theory which is a necessity of a Group Theory module. I noticed that in the Ideas page, it has been mentioned to think of an algorithm that can calculate the Galois groups of any given polynomial, which I think I can implement because having done so in a step by step manner on paper. @ProspectiveMentor: Please can you please reply to this post so that I can discuss my idea with you. Also you can provide some time slot so as to communicate on IRC. Github profile : https://github.com/adityashah30/ IRC : adityashah30 Thanks, Aditya Shah -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. For more options, visit https://groups.google.com/groups/opt_out.
[sympy] Re: Sympy Project Idea: Implementation of Group Theory
Also I would like to add that I am a third year Computer Science student at BITS-Pilani university. I am quite proficient in Python, Java and C/C++. I have used Git before, so I am also familiar with version control. You can check out my projects, both done and in progress at my Git profile. Thanks, Aditya Shah -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. For more options, visit https://groups.google.com/groups/opt_out.
[sympy] guidance for GSOC
Hi, I am Aditya Shah and I am currently pursuing Bachelors in Computer Science at BITS-Pilani university. I am interested in contributing to Sympy as a part of GSOC 2014. Can anyone please guide me for the same? Thanks. -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. For more options, visit https://groups.google.com/groups/opt_out.
[sympy] Re: guidance for GSOC
Thanks a lot! it helped! On Tuesday, 11 February 2014 16:39:20 UTC+5:30, Aditya Shah wrote: Hi, I am Aditya Shah and I am currently pursuing Bachelors in Computer Science at BITS-Pilani university. I am interested in contributing to Sympy as a part of GSOC 2014. Can anyone please guide me for the same? Thanks. -- You received this message because you are subscribed to the Google Groups sympy group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. For more options, visit https://groups.google.com/groups/opt_out.