Mike's Notes
This is part of a series of thoughtful opinions about using Ontology in software information systems.
Pipi has an existing BORO Engine (bor) (inspired by Chris Partridge's book "Business Objects: Re-engineering for Re-use"), but it runs in reverse: it imports triples to extract entities and relationships, then uses them to build reference relational databases for back-end industry workspaces.
Part six: A post by Michael DeBellis that criticises something John F Sowa wrote on the Ontolog Forum and James Lee Stakelum's views on SGF. I added the names of people quoted to make the robust exchange of views clearer for me.
Resources
- https://groups.google.com/g/ontolog-forum/c/CBJ18hpyMAQ
- https://www.michaeldebellis.com/blog
- https://medium.com/@JamesStakelum/why-the-triple-is-the-wrong-grain-1cad99e136f4
- https://symbolicshacker.blogspot.com/2018/07/universal-moral-grammar-umg-ontology.html
- https://www.academia.edu/53542647/A_Universal_Moral_Grammar_UMG_Ontology
- https://drive.google.com/open?id=1MJ3t-InAJ1IMnQX5vksBT-fLhj9Xf_HO
- https://www.w3.org/TR/swbp-n-aryRelations/
References
- A Universal Moral Grammar (UMG) Ontology, Michael DeBellis, 2018.
Repository
- Home > Ajabbi Research > Library >
- Home > Handbook >
Last Updated
20/08/2026
IT-ontology. one more definition
Mike is the inventor and architect of Pipi and the founder of Ajabbi.
John F Sowa
Protégé was designed to use OWL, which is dead end technology. There is a huge amount of obsolete OWL software, and it must be supported indefinitely. But new applications should never be based on OWL.
Michael De Bellis
That's a pretty strong statement and I didn't see anything strong enough to support such a statement in the linked to article: https://medium.com/@JamesStakelum/why-the-triple-is-the-wrong-grain-1cad99e136f4
For example he says:
James Lee Stakelum
Failure 1: The triple cannot represent an event as a whole.
RDF/OWL representation (five triples):
:Beethoven rdf:type :Composer .
:NinthSymphony rdf:type :Symphony .
:Beethoven :composed :NinthSymphony .
:NinthSymphony :composedIn :Vienna .
:NinthSymphony :composedInYear "1824" .
Michael DeBellis
And contrasts that with:
James Lee Stakelum
SGF provides the Synapse — a hub‑and‑spoke structure. The verb is the hub (the VerbHub). Participants attach through exactly 15 fixed semantic roles.
Synapse: s1
VerbHub: compose
HAS_AGENT: Beethoven
HAS_PATIENT: Ninth_Symphony
HAS_LOCATION: Vienna
HAS_TIME: 1824
One object. The VerbHub is not an edge label. The event is whole.
Michael DeBellis
You could do that with OWL too. Create a subclass of Event called Compose:
rdf:type: Compose (subclass of Event)
HAS_AGENT: Beethoven
HAS_PATIENT: Ninth_Symphony
HAS_LOCATION: Vienna
HAS_TIME: 1824
I had a model exactly like this, including using a property called has_patient for Agents that were impacted by an Event, in the first OWL ontology I ever wrote about called the Universal Moral Grammar. https://www.academia.edu/53542647/A_Universal_Moral_Grammar_UMG_Ontology
His argument about not being able to define provenance also seemed weak:
James Lee Stakelum
Failure 2: The triple cannot carry its own provenance.
:Beethoven :composed :NinthSymphony .
This triple is structurally identical whether it came from a scholarly biography or a random comment. Named graphs are optional — provenance can be stripped in transit.
This is a limitation of OWL compared to Property Graphs if we are just talking about properties. In OWL there is no way to associate metadata with a specific triple because the triple is implicit, there is no data structure for each instance of a relation. But he actually describes a solution to this when he says "Named graphs are optional — provenance can be stripped in transit." This is one thing I've come to realize in the last few years going from prototypes to actual systems integrated with real data: named subgraphs are essential for many use cases of large RDF graphs in the real world. E.g., in Stardog they aren't optional. You have to put certain kind of data such as data inferred by the reasoner, into specific sub-graphs.
Michael DeBellis
I agree, one obvious use for subgraphs is for metadata, another is for defining security and encapsulation boundaries. But the fact that they are optional hardly seems like a reason to just completely throw OWL away. You can just make them non-optional with standards the way Stardog does. And you can also deal with the property problem by just reifying the property. I.e., turn a property into a class so when you create an instance of the relation you create an instance of the class. This pattern is much older than OWL. It's one of the most standard patterns used in OOP. I imagine most readers know it well but in case you don't: https://www.w3.org/TR/swbp-n-aryRelations/
In this example, we already did the reification in the previous case when we created a subclass of Event called Compose. We could use that to solve the provenance problem as well:
rdf:type: Compose (subclass of Event)
HAS_AGENT: Beethoven
HAS_PATIENT: Ninth_Symphony
HAS_LOCATION: Vienna
HAS_TIME: 1824
has_source: https://en.wikipedia.org/wiki/Symphony_No._9_(Beethoven)
He also says:
James Lee Stakelum
Failure 4: The triple cannot carry its own grounding.
The URI :Beethoven points to a document, not a concept. Is it the composer, the dog, the crater?
Michael DeBellis
That's not true. Just because it is an IRI doesn't mean it points to a document. He's confusing IRIs and URLs.
And his solution is:
James Lee Stakelum
The triple cannot carry its own disambiguation. Therefore every identifier must carry its own sense‑level distinction and trace to a shared foundation.
SGF provides the Canonical ID: en.beethoven.ludwig_van_beethoven.person.core. The microgloss ludwig_van_beethoven distinguishes this sense from others. Every Canonical ID has a finite IS‑A path to the Prime Registry — approximately 65 irreducible semantic primes (DO, HAPPEN, SOMEONE, SOMETHING, GOOD, BAD, etc.). Paths terminate at primes. No infinite regress.
Michael DeBellis
That kind of universal ontology for the entire enterprise goes against the best thinking from people like Dehghani, Fowler, and Evans about Domain Driven Design (the state of the art for Microservice design) and Data Mesh (the state of the art for Data Products which are the microservice equivalent for data). One of the core ideas behind both is that one model for the entire enterprise is an anti-pattern. Not to mention I can't imagine how that kind of highly centralized model is going to work with petabytes of data. It goes against one of the core directions that I see in modern software development: adoption of truly distributed programming. It's why functional programming is finally no longer only for nerds because functional programs (e.g., the Map-Reduce algorithm used with Apache Hadoop and Spark) are great at dealing with highly distributed data.
But I have a feeling we may be debating apples and oranges. I'm talking about what people building systems that have to deal with petabytes of data and integrate with LLMs should use now and I think OWL and Semantic Web technology make a lot of sense. I mentioned this before but it's worth repeating: the last couple of years I read several books by thought leaders about managing enterprise data: Strengholt, Dehghani, Olesen-Bagneux, and all of them have requirements that are virtually a perfect match for Semantic Web technology:
- Use URLs for persistent IDs
- Use standards
- Explicit representation of metadata (includes semantic metadata)
- Graph models and databases
- Implementation-independent domain models
- Active metadata (e.g., automated reasoning)
- Powerful and flexible search
There are also real world examples that are being built. One of the issues with tech like this is that the people who use it don't want to talk about it because they see it as a competitive advantage but I can say from first hand experience it is being used at several tech leaders in the industry. One company that will talk about it is a German company that makes parts for modern cars. They built a Semantic Data Catalog using OWL, RDF, and standard W3C vocabularies such as DCAT and PROV. A paper from those guys is attached.
Getting back to whether we're talking research or real world. Here is a list of the most popular database vendors right now: https://db-engines.com/en/ranking
It's kind of depressing how Neo4j is so far above the nearest RDF triplestore. But at least all the major RDF triplestores are on the page. I didn't see a single product that uses The Symbol Grounding Framework (SGF) in that list.
Michael
No comments:
Post a Comment