An informal talk about Pydelphin

I was asked to give an informal talk to the local (A Coruña) python enthusiasts’ community. These people mainly are not academics and some aren’t even professional programmers (though most are, I think). Some are just interested in learning programming as adults. The talk takes place in a bar :beer:

My plan is to talk in general about computational linguistics, then about formal approaches (very, very generally), and then introduce Pydelphin as an example of how people use python to do this style of computational linguistics. I will obviously start this last part with emphasizing that it is @goodmami who created it.

If you were me, which things would you emphasize? I mean Pydelphin things.

Again, we are talking about an audience whose common characteristic is interest in the Python programming language.

…I’ll add that the talk is supposed to happen 2 weeks from now.

  1. Walkthrough of PyDelphin Features — PyDelphin 1.9.1 documentation
  2. Walkthrough of PyDelphin Features — PyDelphin 1.9.1 documentation
  3. Walkthrough of PyDelphin Features — PyDelphin 1.9.1 documentation
  4. Walkthrough of PyDelphin Features — PyDelphin 1.9.1 documentation
  5. Walkthrough of PyDelphin Features — PyDelphin 1.9.1 documentation
  6. Walkthrough of PyDelphin Features — PyDelphin 1.9.1 documentation
  7. PyDelphin at the Command Line — PyDelphin 1.9.1 documentation
  8. Working with [incr tsdb()] Test Suites — PyDelphin 1.9.1 documentation

Given a general idea about the ecosystem first. HPSG, ERG, ACE… Pydelphin.

1 Like

Do you have examples of other talks? If I was asked by a random friend to give a talk at a bar about NLP to a Python group, I would probably do examples, examples, examples.

Even to other linguists, my interest in HPSG usually results in “okay, and why would I want to do that” or “okay and why I would I want to do it that way.”

1 Like

Hi @olzama, glad to hear you’re spreading the word :slight_smile:

I appreciate the attribution, but as most of the modules in PyDelphin are reimplementations of DELPH-IN technologies invented by others, maybe just say it’s been a DELPH-IN community effort for ~15 years? If you have slides, adding a link to the list of contributors will acknowledge others who have committed to the repo.

I agree with @arademaker and @trimblet that high-level walkthroughs and demos are the way to go.

For some background… When PyDelphin was initially being developed, pretty much any serious work with DELPH-IN tools or grammars required the LOGON tree, Emacs, and some knowledge of Lisp, which were all major commitments (time, GBs of disk space, wounded pride, etc.). PyDelphin allowed potential researchers, or even the merely curious, to download some DELPH-IN artifacts (e.g., [incr tsdb()] profiles) and a few Python scripts and start being productive.

3 Likes

Yes of course, I am going to mostly just show examples. I was asking more in terms of: for python enthusiasts, which aspects might be more exciting? Something that uses some interesting python features maybe?

Thanks, @arademaker , this is a good collection of examples!

Hmm. Well, unlike a lot of research software, PyDelphin was developed with good software engineering practices in mind: extensive unit and regression tests, CI/CD workflows for automatic testing and deployment, fairly clean and maintainable code, deliberately designed public APIs, thorough documentation (although you tend to find the undocumented edge cases :wink: ), and an up-to-date changelog with semantic versioning.

From v1.0, PyDelphin is implemented using PEP-420 implicit namespaces. The idea was to make PyDelphin more of a collaboratively developed package such that different DELPH-IN sites could “own” and develop a module, such as Cambridge owning the delphin.dmrs module (in the end they did not and chose to develop pydmrs instead). It was also intended for optional plugins, and the delphin.highlight, delphin-latex, and delphin.edm modules were examples, but I’ve since moved these into PyDelphin proper. There is also a delphin.redwoods which was never finished and @arademaker has delphin-rdf. In addition, delphin.codecs and delphin.cli are separate namespaces that allow one to add additional formats (e.g., delphin-latex) or subcommands (e.g., delphin.edm). These mechanisms are described in the Developer Guide. I can’t say the namespace packages were a resounding success, but they are an interesting feature.

Python developers may also be interested in how REPP does regular expression transformations while tracking original string positions, or how the delphin.itsdb module implements in-memory database transactions on top of the file-based TSDB.

2 Likes

Many thanks, @goodmami , all these sound like excellent topics/examples! I will let you know how it went.

1 Like