---
# System prepended metadata

title: Trof

---

# Trof

# roadmap
 - refactor
 - fix bugs in qualia (complete QA for the first release)
 - make csvs schemaless
     - move all schema to sidecar files in /props/prop/sidecar.json
     - prop type folder can have multiple sidecar.json for props of the same type
     - teach csvs clients to construct schema from reading /props and /pairs
     - add interface for editing schema files
 - add select for root data
 - add sidebar for bulk edit
 - add sidebar for bulk view

# storage
## private storage
 - deduplicated storage of metadata
 - files stored exactly how they were uploaded
 - bowls: text files with lists of urls to series of items
 - optionally pijul backend instead of git
## public storage
 - example: telegram, medium, insta, mastodon, activitypub, twitter, vkontakte, facebook, tumblr, qq, weibo
 - example: blogs run with horn and hosted at domains
 - example: RSS storage
     - public git repo
     - directory with digital files, content addressable, called by their hashes
         - optionally names follow multiformats, with file format encoded in the id before the content hash
     - directory with sidecar metadata files, called by hashes of digital files
     - directory with feeds that link to digital files, optionally wrapped in horn viewer URLs
         - ATOM, RSS 1, RSS 2, NFT, RDF, OWL
     - alternative storage at aws buckets, gun, csvs, static server, perkeep, redis
     - trof is open for third-party aggregation of public feeds for the purposes of recommendations and social networks

# interface
## (top) header
 - search bar with queries for filtering items
     - metadata to filter entities by
 - dropdown for root entity
     - if chosen "repo", overview shows all repos
     - if chosen ""
 - dropdown for group metadata
 - dropdown for overview type
## (left) overview
### itinerary overview
 - an itinerary (timeline) of filtered items
 - button to add a new item
 - button to select item profile
 - the sidebar includes an uploader interface
### graph overview (TBA)
 - tree as a series view
 - taken from csvs or gedcom
 - optionally exported to gedcom
 - optionally tree editing
### gallery overview (TBA)
### listing overview (TBA)
### pdf overview
 - iframe with latex pdf
## (right) profile
### single repo view
 - toolbar
     - edit button
     - delete button
     - git sync
     - zip download
 - form
     - link to query of repo as source
     - repo name
     - repo stats
### single repo edit
 - toolbar
    - revert button
    - save button
 - form
    - repo name input
    - repo cache location input
### single event view
 - toolbar
     - edit button
     - delete button
 - form
     - event metadata
     - asset view
### single event edit
 - toolbar
     - revert button
     - save button
     - metadata dropdown
 - form
     - metadata inputs (dates, authors, tags etc.)
     - upload input for assets
### bulk event view
 - toolbar
     - edit button
     - delete button
 - form
     - all common and unique metadata
### bulk edit view
 - toolbar
     - save button
     - revert button
     - metadata dropdown
 - form
     - input field for assigning metadata to all chosen events
### single import tag view
 - toolbar
     - edit button
     - delete button
 - form
     - tag name label
     - import source label
     - import type label
     - import date label
     - number of events with import tag
### single import tag edit
 - toolbar
     - save button
     - revert button
     - metadata dropdown
 - form
     - tag name input
     - import type select
     - import source input field
         - dialog for configuring import
### single export tag view
 - toolbar
     - edit button
     - delete button
     - sync button
 - form
     - tag name
     - export type label
     - export destination label
     - authentication key
     - last export date
     - autosync status
     - number of events with export tag
### single export tag view
 - toolbar
     - save button
     - revert button
     - metadata dropdown
 - form
     - tag name input
     - export type select
     - export destination input
         - dialog for configuring channel
     - credential input
     - autosync checkbox

# libraries
## git
 - class with wrapper calls around isogit
## latex
 - render as PDF with mustache-like templates
## import
 - 
## export
 - publishes items with a channel tag to a public storage, idempotently
 - optionally shows whether a chosen item has been published to public storage
 - channel tag is a type of metadata
 - example: RSS
     - reads all items with channel tag "RSS feed 1"
     - generates feed files to RSS readers and saves to a public git repo
     - builds digital files, hashes, uploads to public git repo
     - uploads metadata sidecar files to public git repo
     - can generate ATOM, RSS 1, RSS 2, NFT, RDF, OWL
     - each item in feed.xml points to either static.mywebsite.com/uniquehash (for raw files) or post.mywebsite.com/uniquehash (for html renders)
     - might duplicate HTML from file in the description? some RSS readers read only description? https://netstalking-live.github.io/feed.xml
 - example: Telegram channel
 - example: GEDCOM
 - example: csvs subrepo
# project name

trof (trough [trôf, trŏf])

![](https://i.imgur.com/ECOKiIz.jpg)

## meaning

    1.  a. A long, narrow, generally shallow receptacle for holding water or feed for animals.
        b. Any of various similar containers for domestic or industrial use, such as kneading or washing.
    2. A gutter under the edge of a roof for carrying off rainwater.
    3. A long, narrow depression, as between waves or ridges.
    4. A low point in a business cycle or on a statistical graph.
    5. Meteorology An elongated region of relatively low atmospheric pressure, often associated with a front.
    6. Physics A minimum point in a wave or an alternating signal.

## etymology
Old English trog "wooden vessel, tray, hollow vessel, canoe," from Proto-Germanic *trugaz (source also of Old Frisian, Old Saxon, Old Norse trog, Middle Dutch troch, Dutch trog, Old High German troc, German trog), from PIE *dru-ko-, from root *deru- "be firm, solid, steadfast," with specialized senses "wood, tree" and derivatives referring to objects made of wood. Originally pronounced in English with a hard -gh- (as in Scottish loch); pronunciation shifted to "-ff," but spelling remained.

## namesakes
https://github.com/internetarchive/trough
https://github.com/wooorm/trough
https://www.troughapp.com
https://en.wikipedia.org/wiki/Troff

# bin
## 1
 - ability to save foreign urls into bowl (music from other authors, files, posts, etc.)
## 2
 - git collaboration could enable freelance data annotators - user uploads file, annotator with access to the private repo adds transcription, they get paid somehow
## 3
### сценарий 1
 - ты добавляешь пять событий руками
 - ты добавляешь тег канала, авторизуешься с платформой публикации
 - ты выделяешь свои пять событий и присваиваешь им тег канала
 - жмякаешь "опубликовать"
### сценарий 2
 - ты жмякаешь "импорт", указываешь откуда взять события. Тебе показывают как будет выглядеть импорт и какой ему будет присвоен тег импорта.
 - ты добавляешь тег канала, авторизуешься с платформой публикации
 - ты выделяешь свои события по тегу импорта и присваиваешь им тег канала
 - жмякаешь "опубликовать"