Schema - Questions and Comments

TerminusDB has a very expressive schema language compared to other databases, for example fully typed referential integrity enforcement (i.e. the SQL equivalent of defining a type that a foreign key can refer to), class hierarchies with multiple inheritance and the ability to define complex business logic in the schema.

This topic is for discussion of schema, the TerminusDB schema language (OWL), and anything else schema or data modelling related.

If you are interested in one of our schemas as written in OWL, you can see how we store information about our databases in our server which is also written in OWL.

Could you explain this in more detail? You do not really support OWL, or a flavor of it, or only indirectly / implicitly (like entering via WOQL only)?

Yes, I should clarify in the intro as it is confusing. For schema design, TerminusDB uses the OWL language with two modifications to make it suitable as a schema language. Namely, we dispense with the open world interpretation and insist on the unique name assumption. This provides us with a rich modelling language which can provide constraints on the allowable shapes in the graph.
We really support OWL as it is logically expressive.

1 Like

I started a topic on the Solid community forum Aligning efforts in LD schema / ontology design + adoption (where I mention TerminusDB) and in my latest post mentioned VOWL as a clean and good-looking way to visualize OWL. This may be interesting for Terminus, I think. I find the current visualization to be quite basic and sorta ‘messy’ (btw, this is true imho for most graph visualizations I stumble upon on the web).



The new release now has opened up the internal schema architecture to give you full control of the owl. There is now inference graphs as well as schema graphs - both of which speak OWL, the difference being that the schema graph is interepreted with closed world semantics, while the inference graphs use normal OWL open world inference approaches. The kicker is that the rules in the inference graph are evaluated dynamically not materialised which allows you to create things like calculated properties and property chains and so on.

1 Like