Turns out Stanford’s Protégé is free Open Source software. It’s used to create [Ontology], 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 humanare 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)

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


Source