Automatically simplifying an ontology with NOMSA

Ever wanted only to get the gist of the ontology rather than wading manually through thousands of axioms, or to extract only a section of an ontology for reuse? Then the NOMSA tool may provide the solution to your problem.

screenshot of NOMSA in action (deleting classes further than two levels down in the hierarchy in BFO)

There are quite a number of ways to create modules for a range of purposes [1]. We zoomed in on the notion of abstraction: how to remove all sorts of details and create a new ontology module of that. It’s a long-standing topic in computer science that returns every couple of years with another few tries. My first attempts date back to 2005 [2], which references modules & abstractions for conceptual models and logical theories to works published in the mid-1990s and, stretching the scope to granularity, to 1985, even. Those efforts, however, tend to halt at the theory stage or worked for one very specific scenario (e.g., clustering in ER diagrams). In this case, however, my former PhD student and now Senior Research at the CSIR, Zubeida Khan, went further and also devised the algorithms for five types of abstraction, implemented them for OWL ontologies, and evaluated them on various metrics.

The tool itself, NOMSA, was presented very briefly at the EKAW 2018 Posters & Demos session [3] and has supplementary material, such as the definitions and algorithms, a very short screencast and the source code. Five different ways of abstraction to generate ontology modules were implemented: i) removing participation constraints between classes (e.g., the ‘each X R at least one Y’ type of axioms), ii) removing vocabulary (e.g., remove all object properties to yield a bare taxonomy of classes), iii) keeping only a small number of levels in the hierarchy, iv) weightings based on how much some element is used (removing less-connected elements), and v) removing specific language profile features (e.g., qualified cardinality, object property characteristics).

In the meantime, we have added a categorisation of different ways of abstracting conceptual models and ontologies, a larger use case illustrating those five types of abstractions that were chosen for specification and implementation, and an evaluation to see how well the abstraction algorithms work on a set of published ontologies. It was all written up and polished in 2018. Then it took a while in the publication pipeline mixed with pandemic delays, but eventually it has emerged as a book chapter entitled Structuring abstraction to achieve ontology modularisation [4] in the book “Advanced Concepts, methods, and Applications in Semantic Computing” that was edited by Olawande Daramola and Thomas Moser, in January 2021.

Since I bought new video editing software for the ‘physically distanced learning’ that we’re in now at UCT, I decided to play a bit with the software’s features and record a more comprehensive screencast demo video. In the nearly 13 minutes, I illustrate NOMSA with four real ontologies, being the AWO tutorial ontology, BioTop top-domain ontology, BFO top-level ontology, and the Stuff core ontology. Here’s a screengrab from somewhere in the middle of the presentation, where I just automatically removed all 76 object properties from BioTop, with just one click of a button:

screengrab of the demo video

The embedded video (below) might keep it perhaps still readable with really good eyesight; else you can view it here in a separate tab.

The source code is available from Zubeida’s website (and I have a local copy as well). If you have any questions or suggestions, please feel free to contact either of us. Under the fair use clause, we also can share the book chapter that contains the details.


[1] Khan, Z.C., Keet, C.M. An empirically-based framework for ontology modularization. Applied Ontology, 2015, 10(3-4):171-195.

[2] Keet, C.M. Using abstractions to facilitate management of large ORM models and ontologies. International Workshop on Object-Role Modeling (ORM’05). Cyprus, 3-4 November 2005. In: OTM Workshops 2005. Halpin, T., Meersman, R. (eds.), LNCS 3762. Berlin: Springer-Verlag, 2005. pp603-612.

[3] Khan, Z.C., Keet, C.M. NOMSA: Automated modularisation for abstraction modules. Proceedings of the EKAW 2018 Posters and Demonstrations Session (EKAW’18). CEUR-WS vol. 2262, pp13-16. 12-16 Nov. 2018, Nancy, France.

[4] Khan, Z.C., Keet, C.M. Structuring abstraction to achieve ontology modularisation. Advanced Concepts, methods, and Applications in Semantic Computing. Daramola O, Moser T (Eds.). IGI Global. 2021, 296p. DOI: 10.4018/978-1-7998-6697-8.ch004


Applied Ontology article on a framework for ontology modularity

I intended to post this writeup to coincide with the official publication of the 10th anniversary edition of the Applied Ontology journal due to go in print this month, but I have less patience than I thought. The reason for this is that my PhD student, Zubeida Khan, and I got a paper accepted for the anniversary edition, which is online in the issue preprint as An empirically-based framework for ontology modularity [1]. It was one of those I’m-not-sure-but-lets-be-bold-and-submit-anyway papers, with Zubeida as main author. It is her first ISI-index journal article, and congrats to that! (The article bean counting is [somewhat/very] important in academia in South Africa). UPDATE (22-12): from the editorial by Guarino & Musen: it was one of the 2 papers accepted out of the 7 submitted, and IOS Press has awarded a prize for it.

So, what is the paper about? As the blog post’s title suggest: ontology modules. The first part is a highly structured and comprehensive literature review to figure out what all the parameters are for ontology modularisation, which properties modules have, and so on. The second part takes a turn to an experimental approach, where almost 200 ontology modules are classified according to those parameters. Both seek to answer questions like: “What are the use-cases, techniques, types, and annotation features that exist for modules? How do module types differ with respect to certain use-cases? Which techniques can we use to create modules of a certain type? Which techniques result in modules with certain annotation features?” Answers to that can be found in Section 6, with the very short version to the first question (explanations in the paper):

  • use-cases: maintenance, reasoning, validation, processing, comprehension, collaborative efforts, and reuse.
  • techniques: graph partitioning, modularity maximisation, hierarchical clustering, locality-based modularity, query-based modularity, semantic-based abstraction, a priori modularity, and manual modularity.
  • types: ODPs, subject domain-based, isolation branch, locality, privacy, domain coverage, ontology matching, optimal reasoning, axiom abstraction, entity type, high-level abstraction, weighted, expressiveness sub-language, and expressiveness feature modules.
  • annotation features: seed signature, information removal, abstraction (breadth and depth), refinement, stand-alone, source ontology, proper subset, imports, overlapping, mutual exclusion, union equivalence, partitioning, inter-module interaction, and pre-assigned number of modules.

This, then, feeds into the third part of the paper that puts the two previous ones together into a framework for ontology modularity, which links the various dimensions (groups of parameters) based on the dependencies that surfaced from the literature review and analysis of modules, and proposes how to proceed in some modularization scenario. That is, it answers the other three main questions. They are easier to show in a figure, imo, like the following one on dependencies between module type and the techniques to create them:

Dependencies between type of module and technique to create the module (Source: [1])

Dependencies between type of module and technique (Source: [1])

With it, you’d be able to answer a case like: “Given that we wish to create an ontology module with a certain purpose or use-case in mind, which modularity type of module could this result in?” and so on to which technique to use, and which properties such a module will have.

Space limitations caused the paper to have only one illustrative example with the Symptom Ontology, but the general idea hopefully will be clear nevertheless. At the moment, before official print, the article is still behind a paywall if you don’t have either institutional or IAOA access, but feel free to contact either Zubeida or me for a copy.


[1] Khan, Z.C., Keet, C.M. An empirically-based framework for ontology modularity. Applied Ontology, 2015, in print (25p). DOI: 10.3233/AO-150151.