PHPackages                             prebetafinal/epitypes - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. prebetafinal/epitypes

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

prebetafinal/epitypes
=====================

Epistemological file type classification for content management systems

v1.3.0(3mo ago)04MITPHPPHP &gt;=7.4

Since Sep 24Pushed 3mo agoCompare

[ Source](https://github.com/prebetafinal/epitypes)[ Packagist](https://packagist.org/packages/prebetafinal/epitypes)[ Docs](https://github.com/prebetafinal/epitypes)[ RSS](/packages/prebetafinal-epitypes/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)DependenciesVersions (6)Used By (0)

Epitypes
========

[](#epitypes)

Semantic file classification for content management systems.

Problem 🤖
---------

[](#problem-)

File systems organize by what files are (.jpg, .pdf, .mp3). Humans organize by what files do (images to view, documents to read, data to process). Epitypes bridges this gap with semantic classification.

Solution
--------

[](#solution)

Epitypes (epistemological types) bridge this gap using a three-level hierarchy:

**Nature** - fundamental behavior

- **Folders** - native file system directories
- **Pages** - files you edit (markdown, code, data, config)
- **Assets** - files you consume (media, documents, archives, materials)
- **Ignore** - system files to skip (.DS\_Store, .git, etc.)

**Type** - semantic grouping (raw, markup, media, documents)

**Format** - specific implementation (html, image, pdf)

Hierarchy
---------

[](#hierarchy)

```
Epitypes
├── 📁 folders (native directories)
├── 📄 pages (editable)
│   ├── raw (txt, log)
│   ├── markup (html, md)
│   ├── code (js, py)
│   ├── data (json, yaml)
│   └── config (ini, env)
├── 🗃️ assets (consumable)
│   ├── media (jpg, mp3, mp4)
│   ├── documents (pdf, docx)
│   ├── archives (zip, tar)
│   └── materials (psd, 3ds)
└── 🚫 ignored (system files)

```

Structure (abbreviated for clarity)
-----------------------------------

[](#structure-abbreviated-for-clarity)

```
{
  "pages": {
    "description": "Editable content files that can be opened in text editors",
    "types": {
      "raw": ["txt", "text", "log"],
      "markup": ["html", "md", "xml"],
      "code": ["js", "py", "php"],
      "data": ["json", "yaml", "csv"],
      "config": ["ini", "env", "conf"]
    }
  },
  "assets": {
    "description": "Files for consumption, reference, or use as materials",
      "types": {
        "media": ["jpg", "mp3", "mp4"],
        "documents": ["pdf", "docx"],
        "archives": ["zip", "tar", "7z"],
        "materials": ["psd", "3ds", "midi"]
      }
  },
  "ignored": {
    "description": "Items to ignore during file scanning",
    "items": [".git", ".DS_Store", "Thumbs.db", ".svn", ".hg", ".epitome", ".gitignore", "node_modules", ".vscode", ".idea"]
  }
}
```

Epistemic Foundation 🤓
----------------------

[](#epistemic-foundation-)

**Layer 1 (Nature/Ontological)**: `pages` vs `assets`

- Pure human conceptual distinction: "What I work on" vs "What I consume"
- Domain-Driven Design level - reflects user mental models
- Never changes because it's fundamental to human cognition

**Layer 2 (Type/Categorical)**: `raw`, `markup`, `code`, `data`, `config`

- Human-computer bridge layer - how humans categorize information processing
- Reflects both human logic (raw text vs structured) and computational needs
- Stable because these are fundamental information categories

**Layer 3 (Format/Technical)**: `markdown`, `javascript`, `json`, etc.

- Pure technical implementation details
- Machine-readable yet human-understandable
- Most volatile layer - formats come and go

Each level and node tends to be linguistically sound:

- **Raw** = unstructured human thought
- **Markup** = structured human expression
- **Code** = human instructions for machines
- **Data** = structured information
- **Config** = system parameters

This creates an epistemic hierarchy: pure human cognition → hybrid human-machine categories → technical specifications.

Why Not MIME Types?
-------------------

[](#why-not-mime-types)

MIME types solve technical delivery (`image/jpeg`), not human organization:

- ❌ `application/json` doesn't tell you if it's data, config, or a unit shelter
- ❌ `text/plain` could be a note, log, or code snippet
- ❌ No concept of "ignorable" vs "important" files

Epitypes adds **semantic layers** that MIME types lack.

Notes 📜
-------

[](#notes-)

The 'page' term works perfectly as long as it's presented as a page in the UI, regardless of its deeper nature, and this is something widely accepted in the domain. An asset seems natural without any explanation as the opposite of page in given context.

This classification is not final so any input/feedback is welcome.

### Unknown Files

[](#unknown-files)

Files not listed in epitypes automatically fall into an "other" group. Things like executables (.exe), system binaries, and other irrelevant to content management formats. These cases should be handled by algorithms accordingly.

License
-------

[](#license)

MIT

###  Health Score

34

—

LowBetter than 77% of packages

Maintenance82

Actively maintained with recent releases

Popularity3

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity39

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~33 days

Total

5

Last Release

97d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/4b5d59f992b68697d170adf7919702ee235820b29451933c49b6f6f42c4ce6a9?d=identicon)[prebetafinal](/maintainers/prebetafinal)

---

Top Contributors

[![prebetafinal](https://avatars.githubusercontent.com/u/34251283?v=4)](https://github.com/prebetafinal "prebetafinal (2 commits)")

---

Tags

classificationcontent managementfile-types

### Embed Badge

![Health badge](/badges/prebetafinal-epitypes/health.svg)

```
[![Health](https://phpackages.com/badges/prebetafinal-epitypes/health.svg)](https://phpackages.com/packages/prebetafinal-epitypes)
```

###  Alternatives

[rubix/ml

A high-level machine learning and deep learning library for the PHP language.

2.2k1.4M28](/packages/rubix-ml)[pid/speakingurl

Generate of so called 'static' or 'Clean URL' or 'Pretty URL' or 'nice-looking URL' or 'Speaking URL' or 'user-friendly URL' or 'SEO-friendly URL' or 'slug' from a string.

1.1k5.3k1](/packages/pid-speakingurl)[sylius/taxonomy

Taxonomies - categorization of domain models in PHP projects.

14435.6k10](/packages/sylius-taxonomy)[fractas/elemental-stylings

Collection of useful and reusable SilverStripe Elemental stylings properties

1416.4k1](/packages/fractas-elemental-stylings)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
