Metadata-Version: 2.4
Name: latour-litanyser
Version: 0.0.1
Summary: Fetching random ontological entities
Author-email: mstyslavity <mstkazakov@gmail.com>
License-Expression: MIT
Classifier: Programming Language :: Python :: 3.14
Classifier: Operating System :: MacOS
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: requests
Requires-Dist: inflect
Dynamic: license-file

# Latour LitanYSer

Latour LitanYSer is a revised and substantially refined version of an ontological toy inspired by Ian Bogost's "Latour LitanIZer," a small app the author used to use to make some of his point in a book `Alien Phenomenology, or What It\’s Like to Be a Thing` concerning flat ontology, his fork of a wider framework known as Object-Oriented Ontology (OOO) developed by Graham Harman. Unlike many other ontologies, Meinongianism, for instance, Bogostian framework suggests the metaphysical \'flatness\' of the status of objects, at certain points refusing to build a hierarchy of classes of objects (real – virtual; existing – non-existant; mental – physical; compound – simple etc.). To underline this flatness, he used lists of randomized enumerations of entities he claims were inspired by Actor-Network Theory of Bruno Latour. The reader of the book was invited to generate the lists of entities (the litanies) themselves. By the time i was reading the book, the app on the website was defunct, maintenance or sth like that. For years i forgot the thing exists, yet recently, reading the new book by Harman, who referenced Latour, etc., invoke a causal chain of recollection so i decided to see if the litanizer works now. But, for these years, my basic knowledge of python slightly grew (from absolute 0 to 0.001 at least) so that i saw clear limitations that are removed EASILY, and yet they were: small number of entities you cannot control in numbers or choose whether to randomize the number. English only. No metalanguage (formal and special symbols). No idioms. No possibility of choose whether you want the fetched entities be plural, singular, or both. No REALLY randomized fetch dice: only python's pseudorandom function (random-looking but not such in nature, just veeeeery hard to determine to human), while random.org API is free, alive and well. I can continue, but thing is that with the limitations of litanIZer, its ontology is NOT SO FLAT as it may seem. This is why litanYSer appeared, where all this and more are implemented. It generates flat ontologies and philosophical litanies by drawing on random structures across Wikipedia and Wiktionary. 

Built with modern capabilities: concurrent batch processing, dynamic constraint injection, and true random number generation!

## Features

- **True Randomness**: Uses `random.org` to resolve `rnd` item counts.
- **Concurrent Execution**: Request multiple litanies of varying constraints and lengths simultaneously without bottlenecking.
- **The "Diced" Algorithm**: Unpredictably mixed parts of speech via combining Wiktionary (common terms/verbs) and Wikipedia (proper nouns).
- **Metalanguages Support**: Optional flag to sprinkle in formulae, measurements, and structural objects.
- **Constraint Filters**: Option to strip out Proper Nouns (`--no-proper`) and Multi-word Idioms (`--no-idioms`).
- **Linguistic Scoping**: Options to constrain the random API results to certain alphabets (default is strictly English/Latin characters, but European, Asian, or Global characters can be enabled).
- **Automated Morphology**: Force the ontology into the Plural (`--apl`), Singular (`--asin`), or randomly mix them (`--aplus`) for wild grammatical collisions.
- **Rich Media Detection**: Titles of movies, albums, and books randomly fetched from Wikipedia will be smartly enclosed in quotes (e.g. `'Blade Runner'`).
- **Flexible Formatting**: Output vertically (default) or horizontally inline (`--format h`) for easy copy-pasting.

## Usage

```bash
pip install -r requirements.txt
python litanyser.py --help
```

### Examples

**1. Basic Litany (10 items by default):**
```bash
python litanyser.py
```

**2. Morphologically Wild Litany (Mixed Plurals/Singulars):**
```bash
python litanyser.py --lengths 15 --aplus
```

**3. Polyglot EU Litany in a Horizontal Line:**
```bash
python litanyser.py --lengths rnd --poly-eu --format h
```

**4. Batch Litanies of the same size:**
```bash
python litanyser.py --lengths rnd --n-litanies 5
```

**5. Complex Diced Litany (Excluding Proper Nouns & Idioms, Including Metalanguages):**
```bash
python litanyser.py --lengths rnd --no-proper --no-idioms --include-metalanguages
```
