Fully and formally describe your model in code using TLMD.
--- Person
A Person is a "being regarded as an individual".
A Person is identified by id which must be a URI.
A Person has exactly one name which must be a Name.
A Person has toggle coaches.
A Person, the coachee, can have some coach which must be a Person, the coach.
Examples:
coachee/name | coach/name
================================
Michael Jackson | Diana Ross
Peter Parker | Tony Stark
Peter Parker | Aunt May
Type-Link-Model includes a plain text modeling format, TLMD. TLMD is a great way to capture a model in a way that is both human-readable and machine-readable. Decent-looking visual diagrams can be generated automatically from TLMD.
You can also generate XML Schema, JSON Schema, and other such artifacts from TLMD.
ORM has a similar plain text modeling format, which is more powerful than TLMD. If you need all the power of ORM, use it instead.
See Fact-Based Modeling for a description of the advantages of fact-based modeling techniques over more well-known approaches such as UML class diagrams.
OWL is a powerful modeling technique for the semantic web. Because the semantic web uses the open-world assumption, it is hard to create high-performance software that natively uses its models. Only use OWL if your problem requires a web-scale solution.
