Turns out Stanford's `Protégé` is free [[Open Source]] software. It's used to create [[Ontology]](s), and can be saved using multiple different [[Ontology Language]].
It includes plugins, like OWLViz, for visualizing your [[Ontology]].
# Classes
Classes can be **equivalent**. Equivalence is basically just an aliasing mechanism .`person` and `human`are equivalent.
Classes can be **[[Disjoint]]**. Disjoint means membership in one class means you cannot belong to any disjointed class. `cat` and `dog` are both subclasses of `animal` but they are disjoint. Catdog notwithstanding.
Classes have slots, which have a [[cardinality]], value type, domain and range
# Object Properties
Object Properties are how you create relationships between Classes, it looks like.
**Domain** (the non-pointy end of an arrow)
**Range** (the pointy end of the arrow)
```mermaid
flowchart LR
domainClasses --"objectProperty"--> rangeClasses
```
You'd use an Object Property to say
`Movie` has Director `Director`
# Data Properties
Used to link classes to literals
This would be where you associate properties with classes.
`Movie` has data properties:
`releaseYear`: number
****
# More
## Source
- Playing with it for a bit
- https://protegewiki.stanford.edu/wiki/Ontology101
- [Their Ontology Development 101 PDF](https://protege.stanford.edu/publications/ontology_development/ontology101.pdf)
- https://youtu.be/LQ4iW3PO36E?si=ZDY9BG6inzuI-dJI
## Related
- [[Basic Formal Ontology 2 0 Spec]]
- [[Ontology, Semantics, and Syntax]]
- [[Ontology Components]]