Skip to main content

Collaborative partial orders

Project description

Coposet

Coposet is a tool for manipulating posets and allowing them to be and exporting them to various formats.

Posets (Partially Ordered Sets)

A poset is a set with a partial order relation (≤) that is:

  • Reflexive: a ≤ a
  • Antisymmetric: if a ≤ b and b ≤ a, then a = b
  • Transitive: if a ≤ b and b ≤ c, then a ≤ c

The product of two posets P and Q creates a new poset P × Q where:

  • Elements: All pairs (p, q) where p ∈ P and q ∈ Q
  • Ordering: (p1, q1) ≤ (p2, q2) if and only if p1 ≤ p2 in P AND q1 ≤ q2 in Q

Schema

Core

posetspace:

  • id: uuid
  • name: string
  • description: string
  • posets: list of posets
  • default_poset: poset
  • elements: list of elements
  • projections?: list of posetspaces
  • injections?: list of posetspaces
  • consensus(consensus_type) -> poset

poset:

  • id: uuid
  • name: string
  • description: string
  • posetspace: posetspace
  • relations: list of relations
  • enrichment?: posetspace
  • product(poset, poset) -> (poset, posetspace)
  • coproduct(poset, poset) -> (poset, posetspace)
  • export(format: format) -> string

element:

  • id: uuid
  • name: string
  • description: string
  • posetspace: posetspace

relation<T: posetspace, E: posetspace>:

  • id: uuid
  • less: element<where less.posetspace == T>
  • greater: element<where greater.posetspace == T>
  • enrichment?: element<where enrichment.posetspace == E>

Helpers

consensus_type:

  • derive<T: posetspace>(array of posets, dropEnrichments: boolean) -> poset

format enum:

  • mcdp, latex

Voting

voter:

  • poset: poset
  • next_antichain(voted_antichain: voted_antichain) -> Either<antichain, poset>

antichain<T: posetspace>:

  • id: uuid
  • element: element
  • comparisons: set of elements

voted_antichain<T: posetspace>:

  • id: uuid
  • antichain: antichain
  • new_less: set of elements
  • new_greater: set of elements

Enricher

enricher:

  • poset: poset
  • enrichment: posetspace
  • enrich(relations: set<(relation, element)>) -> poset

Details

We will use the posets library for the basic poset operations under the hood. This will be connected by a thin interface that converts the posets from the posets library to the coposet types we need to add on our layer of voting and consensus.

We should look into using networkx for the complex poset operations involved in consensus and voting.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

coposet-0.0.1.tar.gz (17.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

coposet-0.0.1-py3-none-any.whl (20.4 kB view details)

Uploaded Python 3

File details

Details for the file coposet-0.0.1.tar.gz.

File metadata

  • Download URL: coposet-0.0.1.tar.gz
  • Upload date:
  • Size: 17.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.9.13 Darwin/24.5.0

File hashes

Hashes for coposet-0.0.1.tar.gz
Algorithm Hash digest
SHA256 1e954b862dce0d7d99a1c881c72427d8f719039c8e86d32fe0621b25433abea1
MD5 9a8af4ab7a7c09306896d04e28f58074
BLAKE2b-256 960a3b54114e2fae90ab40ae68663de4ac65048f4e6bcba5020446535c166683

See more details on using hashes here.

File details

Details for the file coposet-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: coposet-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 20.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.3 CPython/3.9.13 Darwin/24.5.0

File hashes

Hashes for coposet-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 975bfc8276c1455a90780c599d2f86ea1dc6fd837a4c3498909828b718058689
MD5 5a7d63242c90b5d8809fff7f4f7add1d
BLAKE2b-256 0710a714c79c67878d59196f01fa0cfb2bf01f451ce064ce03d737906e88d5ad

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page