Difference between revisions of "LOOM"

From NCBO Wiki
Jump to navigation Jump to search
m
 
(4 intermediate revisions by 2 users not shown)
Line 3: Line 3:
 
Lexical OWL Ontology Matcher (LOOM) is a freely available tool for ontology alignment.  LOOM takes two ontologies represented in OWL and produces pairs of related concepts from the ontologies.  In order to identify the corresponding concepts, LOOM compares the preferred names and synonyms of the concepts in both ontologies.  It identifies two concepts from different ontologies as similar, if and only if their preferred names or synonyms are equivalent based on a modified string-comparison function. Our string-comparison function first removes all delimiters from both strings (e.g., spaces, underscores, parentheses, etc.). It then uses an approximate matching technique to compare the strings, allowing for a mismatch of at most one character in strings with length greater than four and no mismatches for shorter strings.
 
Lexical OWL Ontology Matcher (LOOM) is a freely available tool for ontology alignment.  LOOM takes two ontologies represented in OWL and produces pairs of related concepts from the ontologies.  In order to identify the corresponding concepts, LOOM compares the preferred names and synonyms of the concepts in both ontologies.  It identifies two concepts from different ontologies as similar, if and only if their preferred names or synonyms are equivalent based on a modified string-comparison function. Our string-comparison function first removes all delimiters from both strings (e.g., spaces, underscores, parentheses, etc.). It then uses an approximate matching technique to compare the strings, allowing for a mismatch of at most one character in strings with length greater than four and no mismatches for shorter strings.
  
More information about LOOM can be found in the [https://bmir.stanford.edu/publications/view.php/creating_mappings_for_ontologies_in_biomedicine_simple_methods_work technical report]
+
More information about LOOM can be found in the [https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2815474/ technical report]
  
 
== Obtaining LOOM ==
 
== Obtaining LOOM ==
  
LOOM can currently be obtained [http://www.stanford.edu/~amirg/Loom.jar.zip here]
+
LOOM can currently be obtained [https://github.com/ncbo/bioportal_mappings here]
 +
<!-- Old, broken link to the LOOM JAR file -->
 +
<!-- LOOM can currently be obtained [http://www.stanford.edu/~amirg/Loom.jar.zip here] -->
  
 
== Using LOOM ==
 
== Using LOOM ==
  
 
LOOM can be executed with a command of the following form: <br>
 
LOOM can be executed with a command of the following form: <br>
''java -jar [-Xmx1500m] Loom.jar source.pprj target.pprj SourceSynonymSlotURI TargetSynonymSlotURI''
+
% java -jar [-Xmx1500m] Loom.jar source.pprj target.pprj SourceSynonymSlotURI TargetSynonymSlotURI
  
 
In this command, source.pprj is the protege project file for the OWL source ontology to be mapped.  target.pprj is the protege project file for the target ontology.  SourceSynonymSlotURI is the full URI for the slot in which the source ontology stores synonym names.  TargetSynonymSlotURI is the full URI for the slot containing synonyms in the target ontology.  These URIs are quite often annotation properties in the ontologies.
 
In this command, source.pprj is the protege project file for the OWL source ontology to be mapped.  target.pprj is the protege project file for the target ontology.  SourceSynonymSlotURI is the full URI for the slot in which the source ontology stores synonym names.  TargetSynonymSlotURI is the full URI for the slot containing synonyms in the target ontology.  These URIs are quite often annotation properties in the ontologies.
  
Note that the [] designates an optional flag for allocating additional virtual memory to LOOM.
+
NOTE: The [] designates an optional flag for allocating additional virtual memory to LOOM.  
 +
For example, if you were to try to use LOOM to map Mouse Adult Gross Anatomy to Zebrafish Anatomy and Development, you would use the following command:<br>
 +
% java -jar -Xmx1500m Loom.jar mouse.pprj zebrafish.pprj http://www.geneontology.org/formats/oboInOwl#hasRelatedSynonym http://www.geneontology.org/formats/oboInOwl#hasExactSynonym
  
For example, if you were to try to use LOOM to map Mouse Adult Gross Anatomy to Zebrafish Anatomy and Development, you would use the following command:<br>
+
NOTE: LOOM can be used with ontologies in OBO format by loading the file into Protege 4 (http://protege.stanford.edu).  
''java -jar -Xmx1500m Loom.jar mouse.pprj zebrafish.pprj http://www.geneontology.org/formats/oboInOwl#hasRelatedSynonym http://www.geneontology.org/formats/oboInOwl#hasExactSynonym
 
''
 
  
 
A few additional important tips:
 
A few additional important tips:

Latest revision as of 10:04, 10 July 2023

About LOOM

Lexical OWL Ontology Matcher (LOOM) is a freely available tool for ontology alignment. LOOM takes two ontologies represented in OWL and produces pairs of related concepts from the ontologies. In order to identify the corresponding concepts, LOOM compares the preferred names and synonyms of the concepts in both ontologies. It identifies two concepts from different ontologies as similar, if and only if their preferred names or synonyms are equivalent based on a modified string-comparison function. Our string-comparison function first removes all delimiters from both strings (e.g., spaces, underscores, parentheses, etc.). It then uses an approximate matching technique to compare the strings, allowing for a mismatch of at most one character in strings with length greater than four and no mismatches for shorter strings.

More information about LOOM can be found in the technical report

Obtaining LOOM

LOOM can currently be obtained here

Using LOOM

LOOM can be executed with a command of the following form:
% java -jar [-Xmx1500m] Loom.jar source.pprj target.pprj SourceSynonymSlotURI TargetSynonymSlotURI

In this command, source.pprj is the protege project file for the OWL source ontology to be mapped. target.pprj is the protege project file for the target ontology. SourceSynonymSlotURI is the full URI for the slot in which the source ontology stores synonym names. TargetSynonymSlotURI is the full URI for the slot containing synonyms in the target ontology. These URIs are quite often annotation properties in the ontologies.

NOTE: The [] designates an optional flag for allocating additional virtual memory to LOOM. For example, if you were to try to use LOOM to map Mouse Adult Gross Anatomy to Zebrafish Anatomy and Development, you would use the following command:
% java -jar -Xmx1500m Loom.jar mouse.pprj zebrafish.pprj http://www.geneontology.org/formats/oboInOwl#hasRelatedSynonym http://www.geneontology.org/formats/oboInOwl#hasExactSynonym

NOTE: LOOM can be used with ontologies in OBO format by loading the file into Protege 4 (http://protege.stanford.edu).

A few additional important tips:

  1. You should keep the .owl and .pprj files in the same folder as LOOM.
  2. Your project should be configured so that the preferred name of the concepts and synonyms are set as the browser text (instructions on how to do this are below).
  3. LOOM makes use of thread synchronization and so its speed is significantly improved with additional memory allocation. We strongly advise allocating additional virtual memory with the command -Xmx1500m (or however memory you choose to allocate).

Notes

How to configure your protege project so concepts have preferred name as browser text:

  1. Go to OWL -> Preferences. Under the visibility tab, put a check by owl:Class. Close preferences.
  2. In the main screen, go to the individuals tab. Select owl:Class from the class hierarchy browser. Now, in the individual browser, select the downward-pointing arrow (menu button) near the top. Then choose Set Display Slot and select the slot that you want to display as browser text (in most cases this will be rdfs:label).
  3. You should repeat this process to ensure that your synonym slot also displays the preferred name.