Hello! and SKOS/OWL hybrid modelling possibilities with VocBench

137 views
Skip to first unread message

Isabelle Bastien

unread,
Aug 24, 2021, 10:10:40 AM8/24/21
to vocbench-user
Hello everyone and thank you for adding me to this group!

My name is Isabelle, I'm a MLIS graduate and an ex-nurse, working as a taxonomy lead in a small Montréal startup in e-health in Canada. My experience with taxonomy software is mostly with PoolParty, entreprise licence. We need to migrate our taxonomy from an excel based structure to a graph structure and I'm there to find the best way possible and build the ontology.

I'm trying out VocBench (v. 9.1.0) to be our taxonomy management software. So far, the team is very pleased with the functionalities, and hyped to start using it and maybe help with developments to suit our needs. I have listened to the workshops done earlier this year and browsed through the documentation, and can't seem to find the some answers, so I'm addressing them here, in hope someone will be able to provide me some insight. In the very near future, we are hoping to ask the development team for some consulting hours, but we're not there just yet, I'm at the proof of concept phase.

I'm working with medical vocabulary mostly. I'm using the SKOS standard to give structure to the several thesauri (concept schemes) in my project, and making use of the SKOS properties to explicit hierarchical and some semantic relations within the concepts. I'm using OWL to define classes on the same domain and explicit relations between them, in another project. Here are my questions :

How can I apply a class from my OWL ontology to a skos:concept? They are in two different projects.
How does inheritance of classes and their properties work in VocBench?

Thank you everyone for your time and precious insight. I hope you all have a great day,

Isabelle Bastien
Information science specialist




Roland Wingerter

unread,
Aug 24, 2021, 4:46:05 PM8/24/21
to vocbench-user
Hi Isabelle,

Welcome to VocBench!

Trying to answer your first question ("How can I apply a class from my OWL ontology to a skos:Concept? They are in two different projects", I can think of two possible scenarios:

1. One project is a SKOS thesaurus and you want to enhance its structure by adding (importing) an OWL ontology (with additional classes and relations/properties).
("Applying a class to a skos:Concept" is a wording that I vaguely remember from PoolParty, like in this video: 2.9 Extending Your Taxonomy With Custom Schemes & Ontologies).

2. You need to create links between a SKOS thesaurus and an Ontology to exploit both resources. 

Which scenario describes your use case?

Kind regards
Roland

Armando Stellato

unread,
Aug 25, 2021, 4:22:42 AM8/25/21
to Isabelle Bastien, vocbench-user

Dear Isabelle,

 

a few words more to what was already brought by Roland:

 

on the first question. Projects are for developing a resource (an ontology, a thesaurus, a lexicon, mere data…whatever)..then you can use it. So yes, you will export the ontology you just created in the ontology project and then owl:import it into the project holding your SKOS thesaurus.

You can get more info here: http://vocbench.uniroma2.it/doc/user/namespaces_imports.jsf#imports

Note that this is just a good policy, because you have separated spaces for developing your ontology and your thesaurus, and periodically, when you feel that your ontology has reached a new stable version, you can export it and then owl:import the new exported version into your thesaurus. However, VB does not enforce any method. You can, for instance, maintain your thesaurus and related ontology in the same project (all SKOS projects have all OWL functionalities, they just add support for SKOS) and let them evolve as one resource. However, having a clean and small project dedicated to the ontology is surely a good idea.

Just a minor note: possibly in a next version of VB, we will implement a more “live” functionality for importing an ontology directly from a project, so if you want your data to evolve directly with your ontology and yet keep them in separated projects, you can keep two different projects and yet, with a simple click, feed the ontology directly from the ontology project to the thesaurus project (or data project, in general).

 

Not sure about this question. I mean, on the one side, I can say: “it works as it works in OWL, VB just follow the specs and use common technologies that do the same”. However, there are a few things I can say:

  1. In order to see all the consequences of inheritance, you should enable a reasoner. All stores supported by VB offer some kind of reasoning. You can get some general info and pointers to proper documentation here: http://vocbench.uniroma2.it/doc/user/projects.jsf#repository_configuration
  2. We implemented however some trivial reasoning performed for providing better support on operations. E.g. if you want to add a triple to a certain resource, the classes of that resource (and of all the superclasses of the classes of that resource) are computed, and all the properties that have domain on one of those classes are presented initially to the user for being valued. So, whether a reasoner is configured or not, VB takes into account inheritance in this and in many other similar cases in the UX
  3. Not directly related to inheritance as it merely touches inverse and symmetric properties, however, since it is related to reasoning I dare to mention it :-)
    since version 8.0 of VB3 we provide a trivial reasoning option. It’s a small reasoner we developed that works differently from the typical reasoners as it involves writing. Standards reasoners infer new triples from the explicit ones and show them in a dedicated space. The “eye” button in the resource view toggles in between showing and not showing the inferred triples. Our trivial reasoner will automatically write these inferred triples to the explicit knowledge (and will delete them accordingly, if deletion is inferred). This comes very handy as editors would like very simple facts (as we said, trivially inferable) to be asserted automatically. E.g. if I assert that Tom is the sibling of Jack, I’d like to see immediately that Jack is the sibling of Tom.

 

Kind Regards,

 

Armando

 

 

 

--
You received this message because you are subscribed to the Google Groups "vocbench-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vocbench-use...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/vocbench-user/e00aa9b1-6b1c-437c-8740-7691ae18d64cn%40googlegroups.com.

Isabelle Bastien

unread,
Aug 25, 2021, 4:24:44 PM8/25/21
to vocbench-user
Hello everyone!

Thank you so much Roland and Armando for taking the time to answer so elaborately. 

1) Regarding what I meant by "applying a class to a skos:concept", it is in fact very much the first assumption that Roland made : One project is a SKOS thesaurus and you want to enhance its structure by adding (importing) an OWL ontology (with additional classes and relations/properties). And maybe the use of the verb "applying" in this case is caused by the fact that it is integrated in the UI with the taxonomy management software I was using before, in the right-click menu :)

A concrete simple example would be that I have a node in my SKOS thesaurus for 'medical disciplines' and one for 'medical occupations', and I would like to have corresponding classes in my ontology so that i could implement an objectProperty named something like "is_specialist_in" that as the 'medicalOccupation' class as a domain and the 'medicalDiscipline' class as range. Then, all the children of my 'medical occupations' node in my SKOS thesaurus could have a relation with any discipline under the node 'medicalDiscipline', i.e. 'nephrologist' is_specialist_in 'nephrology'.

Our DevOps engineer has enabled the reasoner, as Armando suggested, and we started seeing some inheritence properties!

-----------------------------------
Testing the VocBench tool (v. 9.1.0) for reasoner after reading your comments (thank you), using one skos project:
  1. I create an owl:medicalEntity class Under owl:thing
  2. I create a "anatomy" skos concept scheme
  3. I create a "urinary system" skos top concept
  4. I give the "urinary system" skos concept the :medicalEntity class under rdf:type
This gives me access in the UI to inheritence properties, and  I can see that "urinary system" has the medicalEntity class. Then I create a node under "urinary system", the node "bladder", and I cannot see that it has the medicalEntity class in the UI or in the history of validation at creation.
--------------------------------------

We are very pleased so far by the tool, and we'd like to have more guidance in order to parameter the tool to fit our data migration and ontology creation.
After discussing with the team, I'll reach out to Armando to ask for consultation time to answer our most urgent matters.

See you all soon!
Thank you again!

Isabelle Bastien

Roland Wingerter

unread,
Aug 26, 2021, 5:56:55 AM8/26/21
to vocbench-user
Hi Isabelle,

I like your example, it makes things very clear. You are looking for a way to implement facets, like the facets in the Getty AAT Thesaurus.

Here are two ways to model it.

1. Create ‘MedicalOccupations’ and “Medical Discipline’ as skos:ConceptSchemes. You can do it in your ontology or in the thesaurus. When you do it in the thesaurus, it is easier to add new concept schemes.  

When adding a new concept, the entry form will present the ConceptSchemes currently enabled in the Scheme section. When a concept is selected in the structure view, try out the rightmost icon (downward pointing arrowhead). There is an option “Add selected concept's subtree to scheme...”. Isn’t it a nice equivalent to PoolParty’s “Apply Class to Concept“?

2. Create 'MedicalOccupation' and 'MedicalDiscipline' as subclasses of skos:Concept in your ontology and use them as Domain and Range for the object Property 'isSpecialistIn'.

When you owl:import your ontology into a thesaurus with existing concepts, you would have to change their class as appropriate.
You may also want to try out what this means for adding narrower concepts in VB3. I don’t think the class would be inherited from the broader.

Hope this helps.

Kind regards
Roland
Reply all
Reply to author
Forward
0 new messages