Generating ontology suggestions

Here's how to use Lettria's suggestion engine to enrich an existing ontology attached to a project.

  1. Access your ontology
  2. Click on Manage suggestions
  3. Click on Generate suggestions
  • If your ontology is not attached to a project, it will only generate generic suggestions
  • If your ontology is attached to a project, it will also analyze datasets from the project you most recently used to generate suggestions

If you want to generate suggestions from datasets, you need to attach one or more dataset to a project) where your ontology is attached.

How do we generate suggestions?​

Jump to

  1. Synonyms
  2. Search for new words: Ngrams
  3. Lettria Ontology
  4. Structuration
  5. Abbreviation
  6. Search for new attributes/relationships

Synonyms

Goal Generate synonyms for a class with the existing labels
Type Generic suggestion
Input
  • Tokens added to the labels of a class in your ontology
Process
  • Call ML with all labels of a class (pref + alt + hidden)
  • Sort/Filter ML prediction
  • Suggest alt label ONLY for this class
Output
  • Alt labels suggestions
  • Hidden labels suggestions
Metrics
  • The list of labels used to generate the suggestion
  • Occurrences in your dataset

Example

You have a class 'dog' with:

  • Pref label 'dog'
  • Alt label 'canine'

We could suggest you 'pup', 'puppy' or 'cur' as alt label

Search for new words: Ngrams​

Goal

Detect words or composed words in your datasets that are not in your ontology

Type

Dataset based suggestions

Input
  • Datasets attached to your project
  • Your ontology
Process
  • Search for ngrams using NLP (comprehension and structuration)
  • Call ML abbreviation to check if its an abbreviation of existing class.
    • If so, suggest an alt label in the class
    • If not, suggest a new class
Output
  • Words and composed words for:

    • Pref labels for New classes
    • Alt labels
Metrics
  • The list of the tokens in your dataset that generated the suggestion

Example (EN)

"The apple pie is one of our famous pies, because it is cooked in old-fashioned stone oven. Find the recipe in the cook book page 4. "

apple pie
pie
famous pie
old-fashioned stone oven
stone oven
oven
cook book
book
page 4
page

Example (FR)

"La veine fémorale profonde fait partie des veines profondes de la jambe."

veine
veine fémorale
veine fémorale profonde
veine profonde
veine profonde de la jambe

Lettria Ontology

Goal

Compare your ontology and Lettria's ontology to deduce suggestions from our existing knowledge

Type

Generic suggestion

Input
  • Your ontology
  • Lettria ontology
Process
  • Analyse your class labels
  • Check if the labels have a parent class in Lettria's ontology
  • If more than half of the labels have a common class in Lettria's ontology, we consider that it may be the same class
  • Suggest other children of the parrent class has suggestion of new class
Output
  • New classes suggestions
Metrics
  • The list of labels used to generate the suggestion
  • The name of the class in Lettria's ontology used to generate the suggestion
    • Ocurrences of the class
    • List of meanings of this class

Example

You have added 'red' and 'blue' classes to your ontology. In Lettria we have different classes for these two words, but "color" is a class that appears for 100% of the labels you added.

Within our 'color' class, there are other narrower classes such as 'pink', 'yellow' or 'green'.

These narrower classes will be added as new class suggestions in your ontology.

Structuration

Goal

The goal is to map all the multiple variations of a single word or concept, so that it can be identified by text comprehension, regardless of the form in which it appears in the data.

Type

Dataset based suggestions

Input
  • Datasets attached to your project
  • Your ontology
Process

Uses text structuration of your datasets to find other ways to call something.

Output
  • Alt labels suggestions
Metrics
  • The list of the tokens in your dataset that generated the suggestion

Example (EN)

"The Kaliningrad K-5 ( NATO reporting name : AA-1 Alkali ), also called RS-1U or product ShM, was an early Soviet air-to-air missile."

Kaliningrad K-5 -> AA-1 Alkali
Kaliningrad K-5 -> RS-1U
Kaliningrad K-5 -> product ShM

graph LR
A((Kaliningrad)) -- Status --> F[Call]
A -- Status --> C[Call]
C --> E((product))
E -- Attribute --> B[Shm]
A -- Attribute --> D[K-5]
F --> G((RS-1U))

Example (FR)

"La veine saphène interne ou 'grande saphène' : La veine saphène interne, ou veine grande saphène, se trouve sur la face interne de la jambe."

veine saphène interne -> grande saphène
veine saphène interne -> veine grande saphène

Abbreviation

Goal

Detect if a word is an abbreviation of an existing label

Type

Dataset based suggestions

Input
  • Ngrams generated from the datasets attached to your project
  • Your ontology
Process
  • Take ngrams generated by ngram suggestions
  • Call ML
  • Suggest alt label on the classes
Output
  • Alt labels suggestions
Metrics
  • Confidence score

Example

We have exacted 'NY' as an ngram from your dataset. You have 'New York' in your ontology so we can suggest 'NY' as alt label of 'New York'

Search for new attribute or relationship

Goal

Detect new property rules for your classes

Type

Dataset based suggestions

Input
  • Sample of text from datasets attached to your project
  • Your existing ontology
Process

Uses text structuration of your datasets. The actual taxonomy used to hierarchize classes, is checked to propose new attribute/relationship to several classes at once, depending on their parent/children relation.

Output
  • New attribute for your ontology classes
  • New relationship for your ontology classes

Example

If all the words: desk, table, door, shelf, ... have a size property (after processing the structuring of the text), we can suggest that their common parent class has a size property.

Example (EN)

"This wooden desk is made in Italy "

Class Desk -> new property : hasMatter -> "wood"
Class Desk -> new relationship : hasCountryOfOrigin > Class Italy

Example (FR)

"La France a une population d'environ 67 millions d'habitants. Celle de la Suisse, avoisine les 8,5 millions."

Class France -> new property : hasPopulationNumber -> 67 000 000
Class Suisse -> new property : hasPopulationNumber -> 8 500 000
Class Country -> new property : hasPopulationNumber -> number > Class

Find where to insert new information​

This last part attempts to insert the new information into the existing ontology, by defining the target class to which it will be attached.

Ultimately, new suggestions can be categorised into these different types:

  1. New child class (with class name and class parent)
  2. New pref label for a class (with label language)
  3. New alt label for a class (with label language)
  4. New hidden label for a class (with label language)
  5. New property for a class (with property name , type and value)
  6. New relationship between two classes (with relationship name, class owner and class target)