This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description

DM-engine is a Python implementation of Distributed Morphology (DM).

Distributed Morphology is a framework from theoretical linguistics that is used to describe the morphology (word structure) of natural languages. This package provides an engine that calculates the word forms that are generated by a given DM analysis.

Analyses are entered as plain-text files in the human-friendly YAML format. Minimally, they consist of a title, an inventory of feature values, a list of insertable vocabulary items (VIs), and a list of inputs to be processed (see the example below). The dmengine command-line tool calculates the results and generates a detailed transcript of all calculations for later inspection. The resulting YAML file can be converted into a LaTeX-based report that can directly be compiled into a PDF file.

Installation

This package runs under Python 2.7 and 3.3+, use pip to install:

$ pip install dmengine

This will also install the PyYAML and oset packages from PyPI as required dependencies.

Converting the results to a PDF report also requires a LaTeX distribution (TeX Live and MikTeX should work). Make sure its executables are on your systems’ path.

Usage

Create a plain text file that defines your analysis:

# example.yaml - simple demonstration of the analysis definition syntax
title: English verbal agreement
features:
- value: V
  category: pos
- value: Nom
  category: case
- value: +1
  category: person
- value: +2
  category: person
- value: +3
  category: person
- value: -pl
  category: number
- value: +pl
  category: number
vis:
- exponent: sleep
  features: [ V ]
- exponent: -s
  features: [ Nom, +3, -pl ]
- exponent: 
  features: [ Nom ]
paradigms:
- name: Intransitive paradigm
  headers: [ [1, 2, 3], [sg, pl] ]
  inputs:
  - [ [V], [Nom, +1, -pl] ]
  - [ [V], [Nom, +1, +pl] ]
  - [ [V], [Nom, +2, -pl] ]
  - [ [V], [Nom, +2, +pl] ]
  - [ [V], [Nom, +3, -pl] ]
  - [ [V], [Nom, +3, +pl] ]

Save your analysis definition to a file ending with .yaml (e.g. example.yaml).

Open a shell (command line window) and navigate to the directory of your definition file.

Calculate the results of the analyis with the dmengine command creating a PDF report:

$ dmengine example.yaml --pdf

This will create three files:

  • example-results.yaml – plain-text file with the results in YAML format
  • example-results.tex – LaTeX source for the result report
  • example-results.pdf – PDF output of the report compiled with pdflatex

Results

Go to the outputs section of the report. It provides a paradigm table of the calculated results:

The log section of the report contains detailed information about each individual input and the derivation of the output.

Invocation options

Check the usage of the dmengine command:

$ dmengine --help

usage: dmengine [-h] [--version] [--report] [--pdf] [--view]
                filename [directory]

Calculates a given Distributed Morphology (DM) analysis

positional arguments:
  filename    dm analysis .yaml definition file
  directory   analysis results output directory

optional arguments:
  -h, --help  show this help message and exit
  --version   show program's version number and exit
  --report    create a LaTeX report from the results
  --pdf       render the report to PDF (implies --report)
  --view      open the report in viewer app (implies --pdf)

Rules

Analyses can use the following types of rules that manipulate the input before insertion:

  • impoverishment – feature deletion
  • obliteration – head removal
  • fission – head feature extraction
  • fusion – head merging
  • copy – head duplication
  • add – features addition
  • metathesis – head position swapping

The following types of readjustment rules are supported (manipulating the output after insertion):

  • delete – exponent removal
  • copy – exponent duplication
  • metathesis – exponent position swapping
  • transform – regular expression search & replace

Contexts

The insertion of vocabulary items and the application of pre-insertion rules can be restricted to the following context types:

  • this_head – the processed head must have the features
  • left_head – the left-adjacent head must have the features
  • right_head – the right-adjacent head must have the features
  • any_head – any input head must have the features
  • anywhere – features must be matched somewhere in the input

See also

Raphael Finkel provides web-based engines for calculating Paradigm Function Morphology and Network Morphology analyses.

License

dmengine is distributed under the MIT license.

Release History

Release History

0.2.1

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.4

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.3

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
dmengine-0.2.1-py2-none-any.whl (38.6 kB) Copy SHA256 Checksum SHA256 2.7 Wheel May 1, 2016
dmengine-0.2.1.zip (75.5 kB) Copy SHA256 Checksum SHA256 Source May 1, 2016

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS HPE HPE Development Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting