Release notes
0.2.2
Add support for Python 3.10.
Unify class hierarchies for parsers and readers:
CCGParser
is now a subclass ofReader
and placed in the common packagetext2diagram
. The old packagesreader
andccg2discocat
are no longer available. Compatibility problems with previous versions should be minimal, since from Release 0.2.0 and onwards alllambeq
classes can be imported from the global namespace.Add
CurryRewriteRule
, which uses map-state duality in order to remove adjoint types from the boxes of a diagram. When used in conjunction withnormal_form()
, this removes cups from the diagram, eliminating post-selection.The Bobcat parser now updates automatically when new versions are made available online.
Update grammar file of Bobcat parser to avoid problems with conflicting unary rules.
Allow customising available root categories for the parser when using the command-line interface.
0.2.1
A new
Checkpoint
class that implements pickling and file operations from theTrainer
andModel
.Improvements to the
training
module, allowing multiple diagrams to be accepted as input to theSPSAOptimizer
.Updated documentation, including sub-package structures and class diagrams.
0.2.0
A new state-of-the-art CCG parser based on [SC2021], fully integrated with
lambeq
, which replaces depccg as the default parser of the toolkit. The new Bobcat parser has better performance, simplifies installation, and provides compatibility with Windows (which was not supported due to a depccg conflict). depccg is still supported as an alternative external dependency.A
training
package, providing a selection of trainers, models, and optimizers that greatly simplify supervised training for most oflambeq
’s use cases, classical and quantum. The new package adds several new features tolambeq
, such as the ability to save to and restore models from checkpoints.Furthermore, the
training
package uses DisCoPy’s tensor network capability to contract tensor diagrams efficiently. In particular, DisCoPy 0.4.1’s new unitary and density matrix simulators result in substantially faster training speeds compared to the previous version.A command-line interface, which provides most of
lambeq
’s functionality from the command line. For example,lambeq
can now be used as a standard command-line pregroup parser.A web parser class that can send parsing queries to an online API, so that local installation of a parser is not strictly necessary anymore. The web parser is particularly helpful for testing purposes, interactive usage or when a local parser is unavailable, but should not be used for serious experiments.
A new
pregroups
package that provides methods for easy creation of pregroup diagrams, removal of cups, and printing of diagrams in text form (i.e. in a terminal).A new
TreeReader
class that exploits the biclosed structure of CCG grammatical derivations.Three new rewrite rules for relative pronouns [SCC2014a] [SCC2014b] and coordination [Kar2016].
Tokenisation features have been added in all parsers and readers.
Additional generator methods and minor improvements for the
CCGBankParser
class.Improved and more detailed package structure.
Most classes and functions can now be imported from
lambeq
directly, instead of having to import from the sub-packages.The
circuit
andtensor
modules have been combined into anlambeq.ansatz
package. (However, as mentioned above, the classes and functions they define can now be imported directly fromlambeq
and should continue to do so in future releases.)Improved documentation and additional tutorials.
0.1.2
Add URLs to the setup file.
Fix logo link in README.
Fix missing version when building docs in GitHub action.
Fix typo in the
description
keyword of the setup file.
0.1.1
Update install script to use PyPI package.
Add badges and documentation link to the README file.
Add
lambeq
logo and documentation link to the GitHub repository.Allow documentation to get the package version automatically.
Add keywords and classifiers to the setup file.
Fix: Add
lambeq.circuit
module to top-levellambeq
package.Fix references to license file.
0.1.0
The initial release of lambeq
, containing a lot of core material. Main features:
Converting sentences to string diagrams.
CCG parsing, including reading from CCGBank.
Support for the
depccg
parser.DisCoCat, bag-of-words, and word-sequence compositional models.
Support for adding new compositional schemes.
Rewriting of diagrams.
Ansätze for circuits and tensors, including various forms of matrix product states.
Support for JAX and PyTorch integration.
Example notebooks and documentation.