Published unlisted
Edited
Aug 8, 2020
Insert cell
md`
# Lobsters Tagging

At the time of writing, Lobste.rs has 104 tags. Seven of those tags (ask, audio, pdf, slides, show, transcript and video) act as format descriptors. Thier only function is to inform the reader as to the format of the posting. One tag, meta, is used for site discussion. The remaining 96 tags act as content descriptors. Each tag indicates the topics touched on in a submission.

While the current implimentation is a "flat" tagging system. I would argue that there is a ontology between the tags. The diagram below outlines this ontology with boxes being used to represent tags that could exist which would be an accurate label for all of the child content.

Notationally, an oval represents a present tag and a rectange represents a grouping introduced to contain a set of similar tags.
`
Insert cell
dot`
digraph {
rankdir=LR

language [shape=box]
os [shape=box]
platform [shape=box]
tools [shape=box]
named_tools [shape=box]
practices
science_engineering_math [shape=box]
design
format_tags [shape=box]
culture

language -> "apl"
language -> "assembly"
language -> "c"
language -> "c++"
language -> "clojure"
language -> "css"
language -> "d"
language -> "dotnet"
language -> "dotnet"
language -> "elixir"
language -> "elm"
language -> "erlang"
language -> "fortran"
language -> "go"
language -> "haskell"
language -> "java"
language -> "javascript"
language -> "lisp"
language -> "lua"
language -> "ml"
language -> "objectivec"
language -> "perl"
language -> "php"
language -> "python"
language -> "ruby"
language -> "rust"
language -> "scala"
language -> "swift"

"javascript" -> "nodejs"

os -> windows
os -> unix
os -> openbsd
os -> netbsd
os -> mac
os -> ios
os -> illumos
os -> freebsd
os -> dragonflybsd
os -> android
os -> linux

platform -> mobile
platform -> browsers
platform -> wasm
platform -> web
platform -> games
platform -> cryptocurrencies
platform -> email

tools -> compilers
tools -> databases
tools -> vcs
tools -> named_tools
tools -> os

named_tools -> vim
named_tools -> systemd
named_tools -> emacs

practices -> api
practices -> testing
practices -> scaling
practices -> performance
practices -> debugging
practices -> reversing
practices -> virtualization
practices -> devops
practices -> security
practices -> privacy
practices -> education

science_engineering_math

science_engineering_math -> science
science -> cogsci
science_engineering_math -> math
math -> crypto
math -> finance
science_engineering_math -> hardware

compsci
compsci -> plt
compsci -> ai
compsci -> distributed
compsci -> networking
compsci -> graphics
compsci -> formalmethods
compsci -> programming
programming -> language

design -> a11y
design -> visualization
design -> art

format_tags -> book
format_tags -> historical
format_tags -> rant
format_tags -> satire
format_tags -> release

culture -> person
culture -> philosophy
culture -> law
}`
Insert cell
dot = require("@observablehq/graphviz@0.2")
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more