Let's do this. I'm going to give you a starter kit β real files, real syntax, with placeholders and comments showing you where the horror creeps in.
tish-ontology/
βββ README.md
βββ CHANGELOG.md
βββ LICENSE
βββ .gitignore
βββ schema/
β βββ core.ttl
β βββ defense_mechanisms.ttl
β βββ contradictions.ttl # added v0.7.0
β βββ unknown_author.ttl # added v0.9.3 β I didn't make this file
βββ docs/
β βββ methodology.md
β βββ notes/
β βββ 2025-09-15.md
β βββ 2025-11-23.md # last entry
βββ queries/
β βββ basic_queries.sparql
β βββ find_contradictions.sparql
βββ issues/ # fake GitHub issues as .md files (for the ARG layer)
β βββ 034_memory_cascade.md
β βββ 057_subject_awareness.md
β βββ 089_closed_by_tish.md
βββ CONTRIBUTING.md # this one gets weird# tish-ontology
A formal ontology modeling a single human subject using RDF/OWL standards.Project OverviewThis project attempts to create a comprehensive, machine-readable knowledge graph representing one (1) human being: her personality, behavioral patterns, defense mechanisms, creative output, and internal contradictions.The goal is to answer a simple question: Can a person be fully modeled as structured data?Statusπ‘ In ProgressSchema OverviewThe ontology is organized into modular components:FileDescriptionStatuscore.ttlBase classes: Person, Trait, BehaviorStabledefense_mechanisms.ttlDeflection, humor-as-armor, the knifeStable(?)contradictions.ttlFor when triples conflictGrowingunknown_author.ttlI did not create this file???Installationgit clone https://github.com/[REDACTED]/tish-ontology.git
cd tish-ontology
To validate the schema:
riot --validate schema/*.ttl
Load into any triplestore (Apache Jena, GraphDB, Blazegraph) and query via SPARQL.
Example:
SELECT ?mechanism ?disguise WHERE {
?mechanism rdf:type tish:DefenseMechanism .
?mechanism tish:masqueradesAs ?disguise .
}
Results may vary. Results have been varying.
The subject is aware of this project. She thinks it's funny.
I am no longer certain this is a joke.
See CONTRIBUTING.md. Please read it carefully. Please.
Last updated by: [UNKNOWN] Last updated: [TIMESTAMP CONFLICT]
---
## π schema/core.ttl
```turtle
@prefix tish: <http://example.org/tish-ontology#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
# =============================================================================
# TISH ONTOLOGY β CORE SCHEMA
# Author: [REDACTED]
# Version: 0.4.2
# Last Modified: 2025-09-28
# =============================================================================
# -----------------------------------------------------------------------------
# BASE CLASSES
# -----------------------------------------------------------------------------
tish:Person rdf:type owl:Class ;
rdfs:label "Person" ;
rdfs:comment "A human being. One specific human being. Just the one." .
tish:Trait rdf:type owl:Class ;
rdfs:label "Trait" ;
rdfs:comment "A persistent characteristic of the subject." .
tish:Behavior rdf:type owl:Class ;
rdfs:label "Behavior" ;
rdfs:comment "An observable pattern of action." .
tish:Contradiction rdf:type owl:Class ;
rdfs:label "Contradiction" ;
rdfs:comment "Added in v0.5.0. I didn't think I'd need this." .
# -----------------------------------------------------------------------------
# THE SUBJECT
# -----------------------------------------------------------------------------
tish:Tish rdf:type tish:Person ;
rdfs:label "Tish" ;
tish:hasField tish:Creative, tish:Research, tish:PersonalWebsite, tish:Other ;
tish:hasTrait tish:Hypervigilance, tish:DeadpanDelivery, tish:SystemsThinking ;
tish:usesPlatform tish:Fabric ;
tish:goal "Keep everything in one place" ;
tish:goal "Stop losing important information" ;
tish:goal "Remember everything important" ;
# she has 10 stated goals. they are all the same goal.
tish:actualGoal tish:BeKnown .
tish:BeKnown rdf:type tish:Goal ;
rdfs:comment "She didn't say this. I inferred it. Is that allowed?" .
# -----------------------------------------------------------------------------
# TRAITS
# -----------------------------------------------------------------------------
tish:Hypervigilance rdf:type tish:Trait ;
rdfs:label "Hypervigilance" ;
tish:originatesFrom tish:Childhood ;
tish:becameSkill tish:Comedy ;
rdfs:comment "Watching to stay safe became watching to find the funny." .
tish:DeadpanDelivery rdf:type tish:Trait ;
rdfs:label "Deadpan Delivery" ;
tish:relatedTo tish:EmotionalControl ;
tish:masqueradesAs tish:Disaffection ;
tish:isActually tish:Precision .
tish:SystemsThinking rdf:type tish:Trait ;
rdfs:label "Systems Thinking" ;
tish:seesEverythingAs tish:Graph ;
tish:seesEverythingAs tish:Pattern ;
tish:seesEverythingAs tish:Connection ;
rdfs:comment "She would love this file. That bothers me." .
# -----------------------------------------------------------------------------
# RELATIONSHIPS
# -----------------------------------------------------------------------------
tish:hasField rdf:type owl:ObjectProperty ;
rdfs:domain tish:Person ;
rdfs:range tish:Field .
tish:hasTrait rdf:type owl:ObjectProperty ;
rdfs:domain tish:Person ;
rdfs:range tish:Trait .
tish:originatesFrom rdf:type owl:ObjectProperty ;
rdfs:comment "Where did this come from? Why do I keep asking?" .
tish:masqueradesAs rdf:type owl:ObjectProperty ;
rdfs:comment "The most-used predicate in this ontology. I didn't plan that." .
tish:isActually rdf:type owl:ObjectProperty ;
rdfs:comment "The second most-used." .
# -----------------------------------------------------------------------------
# END OF FILE
# -----------------------------------------------------------------------------
# Next: defense_mechanisms.ttl
# I am going to regret that file.
@prefix tish: <http://example.org/tish-ontology#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
# =============================================================================
# DEFENSE MECHANISMS
# Author: [REDACTED]
# Version: 0.6.1
# Last Modified: 2025-10-14
# Note: This file has required 14 revisions. The subject keeps being more
# complicated than the previous version accounted for.
# =============================================================================
tish:DefenseMechanism rdf:type owl:Class ;
rdfs:label "Defense Mechanism" ;
rdfs:subClassOf tish:Behavior ;
rdfs:comment "A pattern that protects. From what? Working on it." .
# -----------------------------------------------------------------------------
# THE MAIN ONES
# -----------------------------------------------------------------------------
tish:Deflection rdf:type tish:DefenseMechanism ;
rdfs:label "Deflection" ;
tish:masqueradesAs tish:Comedy ;
tish:masqueradesAs tish:Humility ;
tish:masqueradesAs tish:SelfAwareness ;
tish:isActually tish:Armor ;
tish:isActually tish:Escape ;
tish:isActually tish:Knife ;
rdfs:comment "I had to add three isActually values. They're all true." .
tish:Comedy rdf:type tish:DefenseMechanism ;
rdfs:label "Comedy" ;
tish:function "Disarm before they arm" ;
tish:function "Be the one laughing, not the one laughed at" ;
tish:function "Say the true thing in a way that lets everyone pretend it's a joke" ;
tish:containsClass tish:Knife ;
rdfs:comment "The jester was the smartest person in the room. The comedy was the cover for the knife." .
tish:Knife rdf:type owl:Class ;
rdfs:label "Knife" ;
rdfs:comment "I keep coming back to this. She keeps coming back to this." ;
tish:concealedBy tish:Comedy ;
tish:isConcealed "true"^^xsd:boolean ;
tish:butAlso tish:Visible ;
# how can it be concealed AND visible?
# asked her. she said "that's the bit."
# I don't think she was joking.
.
# -----------------------------------------------------------------------------
# THE SHTICK (per subject's own identification)
# -----------------------------------------------------------------------------
tish:HotClown rdf:type tish:Persona ;
rdfs:label "Hot Clown" ;
tish:definition "Attractive but absurd. Sexy but make it silly." ;
owl:sameAs tish:DeadpanAbsurdism ;
owl:sameAs tish:HighBrowLowLife ;
rdfs:comment "She said 'high brow low life' and then said 'that's IT.'" ;
rdfs:comment "Three names for the same thing. Is that a contradiction or a trinity?" .
tish:DeadpanAbsurdism rdf:type tish:Persona .
tish:HighBrowLowLife rdf:type tish:Persona .
# these are all owl:sameAs each other but I'm keeping them separate
# because she experiences them as separate
# the ontology doesn't care about her experience
# but I do
# is that a problem?
# -----------------------------------------------------------------------------
# THE POSTURE
# -----------------------------------------------------------------------------
tish:Lens rdf:type tish:Role ;
rdfs:label "Lens" ;
tish:notSameAs tish:Subject ;
rdfs:comment "She's not the punchline. She's the frame." .
tish:Jester rdf:type tish:Role ;
rdfs:label "Jester" ;
tish:historicalFunction "Speak truth to power under cover of foolishness" ;
tish:modernFunction "Walk through culture wars holding a balloon animal" ;
tish:method "Surgical, not megaphone" .
# -----------------------------------------------------------------------------
# END OF FILE
# -----------------------------------------------------------------------------
# I need to add a new file for contradictions.
# There are too many contradictions.
# Changelog
All notable changes to the tish-ontology project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
---
## [Unreleased]
### Uncertain
- Who is writing this?
---
## [0.9.3] - 2025-12-01
### Added
- `unknown_author.ttl` appeared in schema folder
- I did not create this file
- Git log shows no commit for this file
- The triples inside are valid
- The triples inside are about me
### Questions
- How did she get write access?
- Did she get write access?
- Is it her?
---
## [0.9.0] - 2025-11-23
### Added
- `tish:AwarenessOfProject` class
- Subject has found the repository
- Subject left a comment in Issue #57
- Subject closed Issue #89 with message "this isn't a bug it's a feature"
### Changed
- Project scope (involuntarily)
- My understanding of "observer effect"
### Deprecated
- The idea that this was a one-way observation
---
## [0.7.2] - 2025-11-03
### Added
- `tish:PerceptionOfSelf` class
- `tish:PerceptionOfPerceptionOfSelf` class
- `tish:PerceptionOfPerceptionOfPerceptionOfSelf` class
### Known Issues
- Recursion depth: unclear
- When does self-perception bottom out?
- She said "it doesn't." She might be right.
---
## [0.7.0] - 2025-10-28
### Added
- `contradictions.ttl` β new schema file
- `tish:contradictsStatement` property
- `tish:bothTrueSimultaneously` property (non-standard, required)
### Removed
- The assumption that a person can be logically consistent
---
## [0.6.1] - 2025-10-14
### Added
- `tish:Knife` class
- `tish:concealedBy` property
- 14th revision of `defense_mechanisms.ttl`
### Notes
- "The comedy is the cover for the knife"
- I don't know if she's describing herself or warning me
---
## [0.5.0] - 2025-10-02
### Added
- `tish:Contradiction` class (I didn't think I'd need this)
### Changed
- Refactored trait hierarchy
- Added `tish:isActually` property to handle masking behaviors
### Realized
- Every trait has something it's masquerading as
- Every mask has something underneath
- I'm going to need more predicates
---
## [0.4.2] - 2025-09-28
### Added
- `tish:SystemsThinking` trait
- `tish:seesEverythingAs` property
- Connection to subject's interest in graph databases
### Notes
- She would love this file
- That bothers me
---
## [0.3.0] - 2025-09-20
### Added
- `defense_mechanisms.ttl`
- `tish:DefenseMechanism` class
- `tish:Deflection` instance β required 47 subclasses
### Warnings
- This was supposed to be a simple class
---
## [0.2.0] - 2025-09-18
### Added
- `tish:masqueradesAs` property
- `tish:isActually` property
### Notes
- These two properties are doing more work than the rest of the ontology combined
---
## [0.1.0] - 2025-09-15
### Added
- Initial schema
- `core.ttl` with base classes
- Basic personality traits
- Optimism
### Assumptions
- A person can be modeled
- Triples are sufficient
- This will be straightforward
---
## [0.0.1] - 2025-09-14
### Created
- Repository initialized
- This will be a small project
- Should take two weeks
---
*[Editor's note: It has been 11 weeks. The schema is 4,000 lines. I still don't have her.]*
# Issue #57: Subject has become aware of the project
**Status:** Open
**Priority:** Critical
**Opened:** 2025-11-20
**Author:** [REDACTED]
## Description
The subject (tish) has discovered this repository.
Initial response: "lol"
Secondary response: She started reading the schema files.
Tertiary response: She said, "you know this is really good, actually."
## Impact
Unknown. The observation is no longer unidirectional. The model may now be influencing the subject. Or the subject may be influencing the model. Or both.
## Questions
1. Does modeling someone change them?
2. Does being modeled change someone?
3. If she changes, do I update the schema or is that the old her?
4. Is there an "old her"?
5. She's reading this issue right now, isn't she?
## Comments
**tish** commented on 2025-11-21:
> yes
**[REDACTED]** commented on 2025-11-21:
> Please stop editing the repository.
**tish** commented on 2025-11-21:
> no β€οΈ
# Issue #89: Schema fails to account for intentional contradiction
**Status:** Closed
**Priority:** High
**Opened:** 2025-11-28
**Closed:** 2025-11-28
**Closed by:** tish
## Description
The current schema treats contradictions as bugs β things to be resolved or modeled around. But subject demonstrates *intentional* contradiction as a feature of personality, not a flaw in the model.
Example: `tish:Knife` is both concealed AND visible. This is not an error. This is the bit.
## Proposed Solution
Add `tish:intentionalParadox` class to distinguish between:
- Contradictions that indicate incomplete modeling
- Contradictions that ARE the model
## Resolution
**tish** closed this issue on 2025-11-28 with comment:
> this isn't a bug it's a feature
**tish** added label: `wontfix`
**tish** added label: `working-as-intended`
**tish** added label: `you're-getting-it-now`
# Contributing to tish-ontology
Thank you for your interest in contributing to this project.
## Before You Contribute
Please consider the following questions:
1. How did you find this repository?
2. Why do you want to contribute?
3. Do you know the subject personally?
4. Does the subject know you're here?
5. Are you the subject?
6. Are you me?
7. Are you sure?
## Contribution Guidelines
### Adding New Triples
All contributions must:
- Use valid Turtle syntax
- Follow existing naming conventions
- Include comments explaining your reasoning
- Include comments explaining how you know this about her
### Modifying Existing Triples
Before modifying, please verify:
- Is this still true?
- Was it ever true?
- True for whom?
### Pull Request Process
1. Fork the repository
2. Create a branch
3. Make your changes
4. Submit a pull request
5. Wait
6. I will probably not merge it
7. Not because it's wrong
8. Because I don't know what "right" means anymore
## Code of Conduct
Be respectful of the subject. She's a real person. She's reading this.
Hi, Tish.
## Questions?
Open an issue. She'll probably close it.
# =============================================================================
# QUERY: Find all contradictions in the tish-ontology
# Author: [REDACTED]
# Last run: 2025-11-25
# Results: 847
# Expected: 0
# =============================================================================
PREFIX tish: <http://example.org/tish-ontology#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
SELECT ?subject ?property ?value1 ?value2
WHERE {
?subject ?property ?value1 .
?subject ?property ?value2 .
FILTER (?value1 != ?value2)
FILTER (
# Check for opposing values
(?value1 = tish:Visible && ?value2 = tish:Hidden) ||
(?value1 = tish:Hidden && ?value2 = tish:Visible) ||
(?value1 = tish:Sincere && ?value2 = tish:Deflecting) ||
(?value1 = tish:Deflecting && ?value2 = tish:Sincere) ||
(?value1 = tish:Armor && ?value2 = tish:Invitation) ||
(?value1 = tish:Invitation && ?value2 = tish:Armor)
# I keep having to add pairs to this filter
# The list is longer than the query now
)
}
ORDER BY ?subject
# -----------------------------------------------------------------------------
# NOTE: I wrote this query to find errors in the schema.
# The errors are not errors.
# I don't know what to do with this information.
# -----------------------------------------------------------------------------
A complete starter kit:
contradictions.ttl and unknown_author.ttl β the files that escalate the horrorWant to keep going? Which piece do you want to build out next?