|↑| Records | Record of overlap | Record of overlap query
Maintaining consistency and avoiding contradictions while double-listing concepts is the hardest part of building the map. A number of systems and tricks are employed to keep things from becoming chaotic, or tangled, which otherwise happens readily.
Foremost, the code encased in {} snaps each case of overlap to a known patern. In these codes, the trailing punctuation mark communicates visibility of connections:
_: Truncates (@).!: Visible: All connections are visible in plain English.*: Hidden: All connections but the main have been condensed to a symbol on the right-hand side.;: Any.
Hiding a connection (*) creates a distinction between main and alternative pathways. The four vertical dots ⁞ separate these, and the hidden connections are considered to be tags.
Here are the patterns and their justifications.
{00;}: Stitched filing. These ideas live at the intersection of two spheres.{00A!}: Parallel filing. At the same level, with a roughly equal split between two domains. Displays both and lives on-disk with neither, resting in the special{cross}directory instead. For example,{00B*}: Sliding filing. At the same level, with an uneven split between two domains. Displays only the main, condensing the other to a tag. Lives on-disk with the main.{00C*}: Arched filing. Has a main home at one depth, but also lends to a set at a greater or lesser depth.- For example,
- Matrix ○꠹ lives at ❪✺₁❫ Mathematical Classes ○/❪✺₁ₐ❫ Mathematical Types ○ and tags ❪✺₁❫ Linear Classes ○ because, while it is a high-level idea which should live at the root of math, matrices are also a necessary part of the study of linear algebra.
- The distinction between Computer Science 𓆩⚪𓆪 and Computer Engineering 𓆩⚪𓆪 is ambiguous, and most ideas from one would be shared by the other, so the pattern is to file things at the top and tag downward for anything “hard”, like architecture.
- For example,
{00D*}: Bridged filing. Lends the concept to another, different in nature, but which forms a smooth sequence. Examples:- ❪֎❫ Lexica ○, (#❪∂₁❫ Programmatic Functions ○) <— ❪֎₃❫ Functions ○
- ❪֎❫ Lexica ○, (#❪✺₁ₐ;❫ Data Types ○) <— ❪֎₇❫ Types ○
- ❪∈₁❫ Sequences ○, (#❪∂₁ₐ❫ Operations ○) <— ❪∈₁’❫ Sequence Operations ○
- ❪𖣐₁❫ High-Energy Astrophysics Data ○️, (#❪✺₁❫ High-Energy Astrophysics Classes ○) <— ❪𖣐₁;❫ Classes of High-Energy Astrophysics Data ○️
{01_}: Set member stemming from other member of the same set. Self-explanatory.{01A_}: Lexical stemming from other member of the same set.
{02_}: Set member stemming from something which is not a member of the same set. Their association with that other thing is stronger than their association with the set itself, but they live on-disk with the set for organizational purposes. A bit confusing but some examples will explain:- For example,
- Microsoft Office ○› <— Excel ○› (Set is ❪𖣐₃ₐ’❫ Spreadsheets ○. Lives together with other spreadsheets, but Microsoft Office feels like a more natural path “up”.)
- HEASoft ○› <— XSPEC ○› (Set is ❪𖣐₃’❫ Spectral Fitting Packages ○️. Lives together with other fitting packages, but XSPEC ships with HEASoft — a person must go through HEASoft to get to XSPEC.)
- Chandra ○´ <— ACIS ○´ (Set is ❪𖣐₂’❫ X-Ray Detectors ○. Lives together with other detectors, but the primary association is the observatory it belongs to.)
- Current (I) ○◂ <— Ampere (A) ○◂ (Set is ❪𝛿₂ᵢ❫ Electrical Units ○. Lives with other units, but the fact that it’s the unit of current makes that a more meaningful connection.)
- TeX ○› <— LaTeX ○› (Set is ❪◑❫ Markup Languages ○. The same kind of thing.)
- And so on.
{02A_}: Lexical stemming from member of another set.
- For example,
{03*}: Set-tagging. Tagged by a gathering set which collects things from various places.{03A*}: Gathering set is “X of Y” (classes of, units of…){03B*}: Gathering set is lexical (modules, constants…){03C*}: Gathering set is software (libraries…)
{04*}: Domain transition or triple-tagging. A special pattern which informs an idea by adding a domain to its relationships while relocating all children to the new domain.- For example,
- Consider Thermal Radiation ○꠹, for which the most obvious representation is as class of radiation, living at the top level of physics. But we also have Thermodynamics 𓆩⚪𓆪 for which thermal radiation is a critically important idea, hence we triple-tag it with ❪✺❫ Thermodynamic Concepts ○.
- Consider Spacetime ○, for which the most obvious representation is as the intersection of Space ⚪ and Time ⚪. But space and time live in plain physics, and we all know that Relativity 𓆩⚪𓆪 is the home of spacetime, so we triple-tag spacetime with ❪✺❫ Relativistic Concepts ○ and consider anything downstream to be located there.
- …the difference between this and the patterns in the 00 codes is sometimes difficult to tell, though
{04}is usually assigned to concepts in the(A)or(C)resolving zones, while the 00 codes usually deal with concepts in(B)or the standing trunk. Other indicators include: Would the domain transition dislocate other concepts from the place they would want to be? Does the discipline in question have a prevailing claim to the idea at hand, deserving the transition and the triple tags###, or is the existing discipline more important, and so we should lend the discipline in question only a single tag#?
- For example,
{05!}: Failed absorption. The concept at hand couldn’t be absorbed to(C). The standard practice is as described above, to collapse shells to a tag when a better parent exists, or get rid of the shell entirely if the new parent is within the same sphere. These subcodes list special exceptions where the shell survives as a main connection.{05-LANGUAGE!}: Idea specific to a single programming language. For example,- f-string ○꠹ and Template Literal ○꠹ are Python and JavaScript’s take on the larger idea of String Interpolation ○. Collapsing to string interpolation with a domain tag would make these two ideas visible to ❪✺_❫ Programmatic Subs ○, which strives to be language-agnostic, so we abort the absorption and leave the shell alone.
{05-OS!}: The same reasoning as{05-LANGUAGE!}, but for operating systems rather than programming languages.{05-TRANSLATOR!}: Assembler ○꠹, Compiler ○꠹, and Interpreter ○꠹ are specifications of the broader category of a Translator ○꠹, but the idea of a translator is a bit obscure compared to the three themselves, and the words have no obvious link, so we leave them visible to the shell.
{06!}: Marriage of words. These ideas are literally (literally) a combination of two other ideas.- Examples:
{06-Z!}: The same principle, but the heritage of the thing as evidenced by its name isn’t as obvious as the above examples.
{07!}: Real-world hybrid. The thing in question is commonly recognized as having a hybrid classification.{07-FLUID!}: Fluids: Liquid, gas, and plasma are fluids as well as states of matter.{07-HEAVENLYBODY!}: Astronomical objects. Astronomical objects may have multiple classifications. For example, ❪◑❫ Nebulae ○ and ❪◑❫ Supernova Remnants ○ often intersect.{07-HYBRIDCOMPILE!}: Multi-language compilers.{07-IC!}: Integrated circuits: both circuits and electronic components.{07-GCC!}: GCC compilers, which get added to ❪𖣐₃ⱼₐ’❫ GNU Compiler Collection ○ and to the language’s compilers set.{07-LANGUAGE-FORMAT!}: A language with an associated file format.{07-PARTICLE!}: Particles: Particles in physics have numerous and sometimes overlapping classifications. Also, electrons, protons, and neutrons get folded back up to ❪◑❫ Subatomic Particles ○ because, even though they have a sub-classification which carries the heritage of subatomic particles, they are the particles which actually make an atom. Additionally, the other kinds of particles downstream of “subatomic particles” may have nothing to do with atoms at all, muddying the water.{07-SOFTWARE-FORMAT!}: Software with an associated file format.{07-SOFTWARE-LANGUAGE!}: Software with an associated language.{07-SPREADSHEET!}: We think of spreadsheets both as the software itself and as the documents they create.{07-UNIT!}: Units: A unit associated with more than one (dimensionally equivalent) quantity.
- …
{98;}: Specific or chosen rather than general patterns, case-by-case.{98-COMMONTERM*}: (For the other side.) Vocabulary cross-listed as terminology. These words qualify as terminology in some of the defined senses, but they’re also in common usage in the language broadly. Thus, listed in both places: A~Z and from the terminology.{98-LIBRARY*}: Library of a programming language cross-listed with its purpose or other details of its origin. The library has a primary listing elsewhere but tags back to the language in which it’s written. Consider cases like Astropy ○› (❪𖣐₃ₑ❫ Astronomy Libraries ○, #❪𖣐₃ₑ❫ Python Libraries ○) and glibc ○› (❪𖣐₃ₑ❫ GNU Libraries ○, #❪𖣐₃ₑ❫ C Libraries ○).{98-NORMALGUY;}: Get-out-of-jail-free card. Not a pattern-breaker. Saves making a dedicated code for a few special cases.{98-WEIRDO;}: Get-out-of-jail-free card. Pattern-breakers. No explanation for these, but they seem harmless enough.
{99;}: When a concept has a higher degree of overlap, the overlap codes themselves overlap for a special kind of headache. Nonetheless this usually occurs in a few stable configurations which may be listed:{99-00B/00C*}: Both sliding and arched filing; tagged down and across.{99-00D/00D*}: Double-bridged.{99-01/00C*}: A truncate (type 1) with an arching tag.{99-01/03;}: A truncate (type 1) which has also been tagged by a gathering set.{99-02/03;}: A truncate (type 2) which has also been tagged by a gathering set.{99-01/04;}: A truncate (type 1) which has also been triple-tagged.{99-02/04;}: A truncate (type 2) which has also been triple-tagged.{99-04/04*}: Tagged by two domains.{99-06/01;}: A married word which is also a truncate (type 1: all visible parents are in the same set).{99-06/02;}: A married word which is also a truncate (type 2: at least one of the visible parents is not from the same set).{99-06/03;}: A married word which has also been tagged by a gathering set.{99-06/04;}: A married word which has also been tagged by a domain.{99-07-LANGUAGE-FORMAT/01;}: Hybrid language/format which truncates to something with the same classification. SVG ○˒ originated this code.{99-07-SOFTWARE-LANGUAGE/02;}: Hybrid software/langauge which truncates to something with a different classification. LaTeX ○› originated this code.{99-07-UNIT/02;}: Truncated unit associated with more than one quantity. (Note that this effectively defuses{07-UNIT!}, but the code is left in place to preserve the chain of ideas.){99-98-COMMONTERM/COMMONTERM*}: Vocabulary cross-listed as terminology in two domains.{99-98-LIBRARY/02;}: A truncate (type 2) which has also been tagged by a library.{99-99;}: Begins even higher degrees of overlap: three matching codes.{99-99-06/02/04;}: A married word which is also a truncate (type 2) which has additionally been tagged by a domain.{99-99-01/00B/00C;}: A truncate (type 1) which has also been tagged down and across.
There are also cases of overlap which are forgiven and not monitored, since they’re ubiquitous and self-tracking, and labelling them all would be burdensome rather than helpful:
- All special relationships (see Record of special relationships).
- Inter-domain passage, where the northeast arrow (and variants given to the atypical spheres) effectively nullifies the connection as a concern.
- The expanded lexical sets, which hang off of the category which shares their symbol while signaling back to the top level.
- Upsizers, which remain at root and take that which would have been their main connection at the side.
- Overlapping patterns in the expanded/standard lexical sets (see Patterns in standard and expanded sets).
- Overlapping patterns in the floating sets, which hang off of the set they mutate while pinning domain and category on the right.
- Overlapping patterns in the predefined sets:
- Subsets, which display ❪✺_❫ Subs and sneak in ❪✺₄❫ Sets.
- ❪∂❫ Subs (for math), which sneaks in ❪✺❫ Subs (for anything).
- ❪∈₂❫ Sets (in math), which sneaks in ❪✺₄❫ Sets (in anything).
- Math, which sneaks in ❪✺❫ Concepts.
- Tech, which sneaks in ❪✺₃❫ Particulars.
- File Formats, which sneaks in ❪✺₃ₕ❫ Standards.
Gathering Sets
A superscript + creates a gathering set. These snatch and collect things from conceptually distant places. Different from the other symbol mutations in that it doesn’t change the meaning of the set. Instead, it’s an administrative device for keeping track of overlap.
Anything could be a gathering set, but a few common members are:
- “Classes of…”
- “Units of…”
- Modules
- Constants
- ❪֎ₐ;❫⁺ C++ Standard Streams ○
- ❪֎ₐ;❫⁺ Python Standard Streams ○
- ❪✺₁.❫⁺ Classes of Algorithms ○
- ❪✺₁.❫⁺ Classes of Astronomical Objects ○
- ❪✺₁.❫⁺ Classes of Constants ○
- ❪✺₁.❫⁺ Classes of Numbers ○
- ❪✺₁.❫⁺ Classes of Operations ○
- ❪✺₁.❫⁺ Classes of Processor Registers ○
- ❪✺₁.❫⁺ Classes of Programmatic Functions ○
- ❪✺₁.❫⁺ Classes of Programmatic Objects ○
- ❪✺₁.❫⁺ Classes of Programmatic Operations ○
- ❪✺₁.❫⁺ Classes of Programming Languages ○
- ❪✺₁.❫⁺ Classes of Sets ○
- ❪✺₁.❫⁺ Classes of Software ○
- ❪✺₁.❫⁺ Classes of Spaces ○
- ❪✺₁𝑖❫⁺ Classes of Data ○
- ❪✺₁𝑖❫⁺ Classes of File Systems ○
- ❪✺₁𝑖❫⁺ Classes of Files ○
- ❪✺₁𝑖❫⁺ Classes of Functions ○
- ❪✺₁𝑖❫⁺ Classes of Matrices ○️
- ❪✺₁𝑖❫⁺ Classes of Memory ○
- ❪𝛿’❫⁺ Physical Dimensions ○
- ❪𝛿’❫⁺ Spectral Fitting Parameters ○
- ❪𝛿₂.❫⁺ Units of Energy ○
- ❪𝛿₂.❫⁺ Units of Length ○
- ❪𝛿₂.❫⁺ Units of Mass ○
- ❪𖣐₂;❫⁺ Classes of High-Energy Astrophysics Instrumentation ○
Domain Heredity
A concept is considered to have the heredity of its visible parents and lives on-disk in the same domain as them. For more than one parent:
- If they’re both under the same umbrella, the child lives there too, reading left to right.
- If they’re not, the child lives in the
{cross}directory.
There are two major exceptions:
- Truncates remain with the set.
- If a concept gets domain-tagged (
{04*}), that becomes the new domain for any children. See the sequence from Plot ○꠹ to Scatter Plot ○꠹ to Scatterplot Matrix ○꠹ where the tag on scatter plot causes scatterplot matrix to be relocated to statistics, or the tags at X-Ray Binary (XRB) ○꠹ and ❪◑❫ X-Ray Binaries ○ which remove all children from astronomy to high-energy astrophysics. The added{warp}folder after the tag gate makes this explicit.
Tags, Truncates?
The (&) gate marks standard cases of overlap. The (+) gate marks a tag, which is a more intuitive way to think about the same thing when it occurs with a hidden connection.
Truncation (@) is a special case where a set member collapses to rest on something other than the set while retaining it in the hook.
Try looking at the patterns in the combined headers displayed at Aerial of Branching for a sense of the difference between them.
Nonhooking Sets
These sets leave the box empty, usually because the word is too vague to fully describe its members. This isn’t necessarily a problem, as being overly specific can fragment information and make it harder to find related ideas next to one another. Whether or not to remove something from these sets to somewhere else downstream, under a more informative name, is a matter of discretion.
They also take the dashed rather than solid arrow.
- ❪✺❫ Concepts ○
- ❪✺₁❫ Classes ○
- ❪✺₃❫ Particulars ○
- ❪∂❫ Math ○
- ❪∂₂❫ Recipes ○
- ❪∂₃❫ Rules ○
- ❪∈❫ Structures ○
- ❪𖣐❫ Tech ○
- ❪𖣐₁❫ Data ○
- ❪𖣐₂❫ Instrumentation ○
- ❪𖣐₃❫ Software ○
- ❪📖❫ Texts ○
- ❪📄❫ Papers ○
- ❪文❫ Vocabulary ○
- All of the floating sets, even if the symbol would otherwise take a hook.