Encompassing RDF/OWL
We aim to build a layered stack of TypeDB databases for different cybersecurity protocols, like a pancake stack, each layer with a specific protocol for representing a particular aspect of the whole. Unified, they enable you to capture data and reason over the many aspects of the causal picture behind a successful threat.
Two of the standards we wish to embody in TypeQL, SPYDERISK and Mitre D3FEND are published as rdf/owl standards in turtle files, Our basic plan was to manually re-implement and improve on SPYDERISK in TypeQL, and to separately build a transpiler to dynamically convert the Mitre D3FEND rdf/owl into TypeQL, including converting the DL to functions.
Ideally, this transpiler could include some sort of test harness that could test the results of queries/reasoning to test they were identical. This is a long-term aim, because during the Grakn Warrior days, we had investigated deeply the porting of the Semantic Arts gists over, in a provable way.
Obviously, one only wants to transpile in the rare occasion when a standard is published this way, normally one would rearchitect it since:
- the representation could be then improved
- UUID's on entities and relations only, reducing IRI's
TLDR: It would be advantageous if TypeDB could encompass all of RDF/OWL capability, so it became a superset of capability. At this point, the decision for TypeDB becomes a requirement, since it is demonstrably better than/more than rdf/owl
My investigations have shown two types:
1. Schemas that can be described in a UML diagram, for example the SPYDERISK calculation of risk on assets. When one compares this diagram to the ontology represented at this link, its easy to see that TypeDB can 100% represent this. Classes are simple and have a single parent

14 Replies
2. Complex, multiparent structures representing the nested nature of systems, such as sensors, laptops, cloud applications etc.
For example, looking into some of the D3FEND class structure shows it to be highly intricate, for example looking into the Artifact/Digital Information Bearer/Database/Password Database/Password File entity shows the following multi-parent structure

yellow are class hierarchies, and the blue are properties (relations)
how could we build that in TypeDB?
If you want to check out the above diagram, simply:
1. Download the d3fend-protege.ttl file
2. Get a Protege account from Stanford, use the Web Version,, and open the downloaded file from 1.
Once you have open the file using the UI, then start looking through the classes tab, using the dependency view in the middle screen, some notes:
The salient question is how to represent this class hierarchy in TypeDB arises. According to some of the architects I spoke to, this is all setup in OWL DL
@joshua cc
Actually, @core cc
Is it specifically PasswordFile that you want us to look at because it has two supertypes?
yes, there are others with multiple parents and more complex dependencies though, this is just one example
best to check it out yourself and peruse through different class examples, but it all comes down to multiple inheritance/interfaces/categories
Sorry, no bandwidth to check out more than this image 🙁
But to try to make some practical progress, I'll stick with the idea that "multiple inheritance isn't real" and there's a better way to model this. I'd say a database should be modelled as a subtype of file?
The other approach is to say something like "A password file is actually a role that's played either by a file or by a database. A 'password file' isn't an actual type"
they have a very interesting ontology, and you should check it out before making a decision. Their use appears valid
Probably, given the tools they have. Is there a way to visualise the incoming edges as well?
yes, in the Protege middle tab it has a dependency graph, as shown, yellow is class hierarchy, blue is properties or edges. You will see they are class hierarchy heavy and relation light. It is simple to download the ontology file and login to Protege and have a look
I have the same view you posted, I just want the arrows that come into the PasswordFile.
oh right
i am sure there is some way the Protege software seemed to have some good ideas in it
we need someone who has done some rdf/owl
I know that @obeavs crew has rdf/owl expertise, pehaps they can give you more detail
thanks for the notifications guys 😄 this is in my backlog just v busy atm!
hey @vpavlyshyn , check out how the above
D3FEND ontology is structured with multiple parents!! What insight can you give the team?
I ll check on weekends