Code Monkey home page Code Monkey logo

snomed-owl-toolkit's Introduction

Snomed OWL Toolkit Build Status codecov

An Open Source Toolkit to make SNOMED CT to OWL conversion and classification simple.

This toolkit is used within the SNOMED International Authoring Environment. It is backward compatible with all past RF2 releases and will be forward compatible with all future releases. New versions of this tool will be produced as new description logic features are added to SNOMED CT.

A classification REST API using this toolkit is available, see the Classification Service.

Java Library Capabilities

  • Convert Snomed RF2 to an OWL Ontology
    • Works on the command line
    • Uses MRCM Attribute Domain Reference Set for grouping information
    • Uses OWL Axiom Reference Set
    • Includes all descriptions:
      • Fully Specified Names as rdfs:label
      • Preferred Synonyms as skos:prefLabel
      • Other Synonyms as skos:altLabel
      • Text Definitions as skos:definition
      • Language and dialect markup
    • Support for Snomed Editions and Extensions
    • For Java integration see RF2ToOWLService.java
  • Classify Snomed
    • Uses RF2 to OWL conversion
      • Optionally load an RF2 Delta archive on top of the Snapshot
    • RF2 delta output of relationship changes (no identifier generation)
    • Any OWL API Reasoner supported (default is ELK)
    • See SnomedReasonerService.java
  • Authoring Environment UI Support
    • Convert relationships to axioms
    • Convert axioms to relationships
    • Support for General Concept Axioms
    • See AxiomRelationshipConversionService.java

Stated Relationships and Axioms

The toolkit is capable of working with stated relationships and/or axioms from the OWL Axiom reference set.

These should only be used when modelling concepts. The inferred relationships should nearly always be used in SNOMED CT implementations. The inferred relationships contain the attributes of any stated relationships or axioms present.

Concept model information will be loaded from all active relationships and all active axioms. Either format can be used or both in combination. All the stated relationships of a single concept will form a single new axiom. If there are any axioms in the reference set for the same concept these will be treated as additional axioms. Stated relationships are never merged into an axiom from the reference set.

If there are only axioms in the International Edition and only stated relationships in an extension then classification or conversion to the OWL file will still work. The extension can add modelling for its own concepts using stated relationships or axioms. If the extension wants to override the modelling of an International Axiom then a new state of that entire axiom must be in the extension using the same OWL Axiom reference set member id.

Documentation

Command Line Use

This toolkit has been developed for use in other Java applications as a library but some functionality can be used via the command line.

The 'executable' jar file is available on the latest release page for use on the command line.

This library is tested against Java 11. It will work with Java 17 and later versions but the following arguments must be added directly after the java command: --add-opens java.base/java.lang=ALL-UNNAMED. This permits a feature that is required by the OWL reasoner, otherwise there will be an InvocationTargetException.

Command line options:

Usage:
 -help                                  Print this help message.

 -classify                              Run classification process.
                                        Results are written to an RF2 delta archive.

 -rf2-to-owl                            (Default mode) Convert RF2 to OWL Functional Syntax.
                                        Results are written to an .owl file.

 -rf2-stated-to-complete-owl            Convert RF2 snapshot stated relationships to complete OWL Axiom reference set preview.
                                        Stated relationships are converted to OWL Axiom reference set entries.
                                        Existing stated relationships are marked as inactive.
                                        Results are written to a zip file containing:
                                         - OWL Axiom reference set delta of all axioms which were previously stated relationships
                                         - Stated relationship delta with all relationships which were previously active marked as inactive.

 -rf2-snapshot-archives <path>          Comma separated paths of zip files containing RF2 Snapshot files to be loaded.
                                        At least one Snapshot archive is required.

 -rf2-authoring-delta-archive <path>    (Optional) Path to a zip file containing RF2 Delta files to be applied on top
                                        of the Snapshots. This is helpful during an authoring cycle.

 -debug                                 Additional output for debugging.


Optional parameters for OWL conversion:
 -uri <uri>                             (Optional) URI for the ontology identifier.
                                        Defaults to the id within the header entry of the OWL Ontology reference set.
                                        If no entry found defaults to http://snomed.info/sct/900000000000207008.

 -version <version>                     (Optional) Date for the ontology version e.g. 20180731.
                                        Defaults to today's date.

 -without-annotations                   (Optional) Flag to omit description annotations from the ontology
                                        resulting in a smaller file size.

Snomed RF2 to OWL File Conversion

Convert Snomed RF2 files to an OWL ontology file with functional syntax.

Using the executable jar supply a zip file which contains RF2 snapshot files as an argument.

java -Xms4g -jar snomed-owl-toolkit*executable.jar -rf2-to-owl -rf2-snapshot-archives SnomedCT_InternationalRF2.zip

After about a minute the OWL ontology file will be written to ontology-xxxx.owl including a timestamp in the name.

Description dialects will be set for language reference sets included in the language-refset-dialect-map.properties file. The jar file will need rebuilding in order for changes to that file to be included. Feel free to raise a pull request to add your language reference sets to this project.

Snomed RF2 Classification

Run the classification process.

Using the executable jar supply a zip file which contains RF2 snapshot files as an argument.

java -Xms4g -jar snomed-owl-toolkit*executable.jar -classify -rf2-snapshot-archives SnomedCT_InternationalRF2.zip

After about one and a half minutes an RF2 delta archive will be written to classification-results-xxxx.zip including a timestamp in the name.

This archive contains a relationship file with active rows for new inferences and inactive rows for redundant relationships.

The archive also has a reference set containing any sets of concepts which the reasoner found to be logically equivalent. This refset should be empty.

snomed-owl-toolkit's People

Contributors

astro-snail avatar codermchu avatar dependabot[bot] avatar dionmcm avatar dmcgihtsdo avatar hm-huyle avatar jimcornmell avatar kaicode avatar lawley avatar nagyo avatar pgwilliams avatar quyenly87 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

snomed-owl-toolkit's Issues

Second RF2 release archive silently ignored when space in arguments

I'm just received feedback from a SNOMED extension maintainer in the US who was trying to load the international edition and her extension into the toolkit. The extension was not being loaded and there was no error. This is because in the -rf2-snapshot-archives parameter on the command line there was a space between the international and extension release archives. This caused the extension archive to be silently ignored!

Not grouped attribute list incomplete when using complete OWL International release

The MRCM Attribute Domain Reference Set is used to lookup the set of attributes which should not be self grouped when converting stated relationships to axiom during the classification process. This is failing to work correctly when classifying an extension using the July International Edition release.
The reason is because stated relationships within the International Edition are used to lookup the SNOMED content type but these are no longer present.

I met a problem in parsing the owl file generated by snomed-owl-toolkit

Dear author,
I have successfully converted snomed ct RF2 production into OWL format, thank you! However, I found common owl parsers like owlready2, pronto, ontospy, can not parse the snomed owl file. For example,
the error message from owlready 2 is "OwlReadyOntologyParsingError: NTriples parsing error (or unrecognized file format) in sct.owl, line 1."
the error message from pronto is "ValueError: could not find a parser to parse 'sct.owl'";

 Would you please give me some suggestions for parsing snomed.ct owl file? Thank you very much.
 Best Regards,

Group 0 inferred relationships are not being reused when self grouped

Background

The conversion of stated relationships to the OWL axiom reference set will remove part of the long running group 0 issue. Attributes which were recorded as in group 0 in the stated relationships and marked as grouped in the MRCM will be represented as self grouped in the OWL axioms. This self grouping will also be reflected in the inferred form so many relationships which were in group 0 will now move to another role group number, one which is not yet used in that concept in the inferred form.

Problem

The problem is that when the complete set of OWL axioms are classified those self grouped inferred relationship records should be updated, changing group 0 to a new role group number. However the OWL toolkit is instead making the relationships inactive and creating new relationships.

Spanish dialect

I run this command for aSNOMED CT in Spanish released on October 2020

java -jar snomed-owl-toolkit-2.9.0-executable.jar -rf2-to-owl -rf2-snapshot-archives SnomedCT_SpanishRelease-es_PRODUCTION_20201031T120000Z.zip

And I got this error:

2020-12-12 17:47:15,978 [WARN ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 450828004 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.

is it because a language-refset-dialect-map.properties in Spanish need to be added? Could you please help me

Belgian official release: missing language reference set 701000172104 and 711000172101

Running the latest version of the jar file over the latest release of the Belgian Snomed release, I find:
$ java -Xms4g -jar snomed-owl-toolkit-3.0.3-executable.jar -rf2-to-owl -rf2-snapshot-archives /path/to/SnomedCT_BelgiumExtensionRF2_PRODUCTION_20210915T120000Z.zip

gives a set of errors about the absence of language sets 701000172104 and 711000172101
2021-10-05 14:58:50,582 [WARN ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 701000172104 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.

The relevant properties file (in your repository; I've not dug into the jar file) contains:

# 21000172104 | Belgian French language reference set (foundation metadata concept) |
# Combined as: fr-be
21000172104=be

# 31000172101 | Belgian Dutch language reference set (foundation metadata concept) |
# Combined as: nl-be
31000172101=be

which match the missing codes -- apart from the prefixes 21 and 31 being replaced by 701 and 711.

Full output:

Creating Ontology using the following options:
  Snapshot archives: [/data/username/Snomedfiles/SnomedCT_BelgiumExtensionRF2_PRODUCTION_20210915T120000Z.zip]
  Delta archive: -none-
  Ontology URI: http://snomed.info/sct/900000000000207008
  Ontology Version: 20211005
  Include Description Annotations: true

2021-10-05 15:00:48,704 [INFO  ] [main] org.snomed.otf.owltoolkit.conversion.RF2ToOWLService - Loading RF2 files
2021-10-05 15:00:50,098 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Unzipping file to /tmp/temp-rf2-unzip5425965882864713307/1/der2_cRefset_AssociationReferenceSnapshot_BE1000172_20210915.txt
2021-10-05 15:00:50,098 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Unzipping file to /tmp/temp-rf2-unzip5425965882864713307/1/der2_cRefset_AttributeValueSnapshot_BE1000172_20210915.txt
2021-10-05 15:00:50,103 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Unzipping file to /tmp/temp-rf2-unzip5425965882864713307/1/der2_Refset_SimpleSnapshot_BE1000172_20210915.txt
2021-10-05 15:00:50,104 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Unzipping file to /tmp/temp-rf2-unzip5425965882864713307/1/der2_Refset_TranslatedAnimalMaterialsSimpleRefsetSnapshot_BE1000172_20210915.txt
2021-10-05 15:00:50,104 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Unzipping file to /tmp/temp-rf2-unzip5425965882864713307/1/der2_Refset_TranslatedEdibleSubstancesSimpleRefsetSnapshot_BE1000172_20210915.txt
2021-10-05 15:00:50,106 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Unzipping file to /tmp/temp-rf2-unzip5425965882864713307/1/der2_Refset_TranslatedPlantMaterialsSimpleRefsetSnapshot_BE1000172_20210915.txt
2021-10-05 15:00:50,106 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Unzipping file to /tmp/temp-rf2-unzip5425965882864713307/1/der2_Refset_GPSubsetSimpleRefsetSnapshot_BE1000172_20210915.txt
2021-10-05 15:00:50,109 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Unzipping file to /tmp/temp-rf2-unzip5425965882864713307/1/der2_Refset_SubsetForPocFhirCausativeAgentNoDrugSimpleRefsetSnapshot_BE1000172_20210915.txt
2021-10-05 15:00:50,109 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Unzipping file to /tmp/temp-rf2-unzip5425965882864713307/1/der2_Refset_SubsetForPocFhirManifestationSimpleRefsetSnapshot_BE1000172_20210915.txt
2021-10-05 15:00:50,109 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Unzipping file to /tmp/temp-rf2-unzip5425965882864713307/1/der2_Refset_SubsetForPocFhirNoAllergySimpleRefsetSnapshot_BE1000172_20210915.txt
2021-10-05 15:00:50,110 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Unzipping file to /tmp/temp-rf2-unzip5425965882864713307/1/der2_cRefset_LanguageSnapshot-en_BE1000172_20210915.txt
2021-10-05 15:00:50,110 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Unzipping file to /tmp/temp-rf2-unzip5425965882864713307/1/der2_cRefset_LanguageSnapshot-fr_BE1000172_20210915.txt
2021-10-05 15:00:50,192 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Unzipping file to /tmp/temp-rf2-unzip5425965882864713307/1/der2_cRefset_LanguageSnapshot-nl_BE1000172_20210915.txt
2021-10-05 15:00:50,264 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Unzipping file to /tmp/temp-rf2-unzip5425965882864713307/1/der2_cRefset_LanguageSnapshot-fr-be-gp_BE1000172_20210915.txt
2021-10-05 15:00:50,266 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Unzipping file to /tmp/temp-rf2-unzip5425965882864713307/1/der2_cRefset_LanguageSnapshot-nl-be-gp_BE1000172_20210915.txt
2021-10-05 15:00:50,269 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Unzipping file to /tmp/temp-rf2-unzip5425965882864713307/1/der2_cciRefset_RefsetDescriptorSnapshot_BE1000172_20210915.txt
2021-10-05 15:00:50,269 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Unzipping file to /tmp/temp-rf2-unzip5425965882864713307/1/der2_ciRefset_DescriptionTypeSnapshot_BE1000172_20210915.txt
2021-10-05 15:00:50,269 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Unzipping file to /tmp/temp-rf2-unzip5425965882864713307/1/der2_ssRefset_ModuleDependencySnapshot_BE1000172_20210915.txt
2021-10-05 15:00:50,269 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Unzipping file to /tmp/temp-rf2-unzip5425965882864713307/1/der2_iisssccRefset_ExtendedMapSnapshot_BE1000172_20210915.txt
2021-10-05 15:00:50,270 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Unzipping file to /tmp/temp-rf2-unzip5425965882864713307/1/sct2_Concept_Snapshot_BE1000172_20210915.txt
2021-10-05 15:00:50,270 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Unzipping file to /tmp/temp-rf2-unzip5425965882864713307/1/sct2_Description_Snapshot-en_BE1000172_20210915.txt
2021-10-05 15:00:50,270 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Unzipping file to /tmp/temp-rf2-unzip5425965882864713307/1/sct2_Description_Snapshot-fr_BE1000172_20210915.txt
2021-10-05 15:00:50,338 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Unzipping file to /tmp/temp-rf2-unzip5425965882864713307/1/sct2_Description_Snapshot-nl_BE1000172_20210915.txt
2021-10-05 15:00:50,403 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Unzipping file to /tmp/temp-rf2-unzip5425965882864713307/1/sct2_Identifier_Snapshot_BE1000172_20210915.txt
2021-10-05 15:00:50,404 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Unzipping file to /tmp/temp-rf2-unzip5425965882864713307/1/sct2_Relationship_Snapshot_BE1000172_20210915.txt
2021-10-05 15:00:50,404 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Unzipping file to /tmp/temp-rf2-unzip5425965882864713307/1/sct2_RelationshipConcreteValues_Snapshot_BE1000172_20210915.txt
2021-10-05 15:00:50,404 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Unzipping file to /tmp/temp-rf2-unzip5425965882864713307/1/sct2_StatedRelationship_Snapshot_BE1000172_20210915.txt
2021-10-05 15:00:50,404 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Unzipping file to /tmp/temp-rf2-unzip5425965882864713307/1/sct2_TextDefinition_Snapshot-en_BE1000172_20210915.txt
2021-10-05 15:00:50,404 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Unzipping file to /tmp/temp-rf2-unzip5425965882864713307/1/sct2_TextDefinition_Snapshot-fr_BE1000172_20210915.txt
2021-10-05 15:00:50,405 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Unzipping file to /tmp/temp-rf2-unzip5425965882864713307/1/sct2_TextDefinition_Snapshot-nl_BE1000172_20210915.txt
2021-10-05 15:00:50,405 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Unzipping file to /tmp/temp-rf2-unzip5425965882864713307/1/sct2_sRefset_OWLExpressionSnapshot_BE1000172_20210915.txt
2021-10-05 15:00:50,423 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - RF2 release filename not recognised 'sct2_Identifier_Snapshot_BE1000172_20210915.txt'. This file will not be loaded.
2021-10-05 15:00:50,425 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Loading SNAPSHOT release files ReleaseFiles{conceptPaths=[/tmp/temp-rf2-unzip5425965882864713307/1/sct2_Concept_Snapshot_BE1000172_20210915.txt], descriptionPaths=[/tmp/temp-rf2-unzip5425965882864713307/1/sct2_Description_Snapshot-en_BE1000172_20210915.txt, /tmp/temp-rf2-unzip5425965882864713307/1/sct2_Description_Snapshot-fr_BE1000172_20210915.txt, /tmp/temp-rf2-unzip5425965882864713307/1/sct2_Description_Snapshot-nl_BE1000172_20210915.txt], textDefinitionPaths=[/tmp/temp-rf2-unzip5425965882864713307/1/sct2_TextDefinition_Snapshot-en_BE1000172_20210915.txt, /tmp/temp-rf2-unzip5425965882864713307/1/sct2_TextDefinition_Snapshot-fr_BE1000172_20210915.txt, /tmp/temp-rf2-unzip5425965882864713307/1/sct2_TextDefinition_Snapshot-nl_BE1000172_20210915.txt], relationshipPaths=[/tmp/temp-rf2-unzip5425965882864713307/1/sct2_Relationship_Snapshot_BE1000172_20210915.txt], concreteRelationshipPaths=[/tmp/temp-rf2-unzip5425965882864713307/1/sct2_RelationshipConcreteValues_Snapshot_BE1000172_20210915.txt], statedRelationshipPaths=[/tmp/temp-rf2-unzip5425965882864713307/1/sct2_StatedRelationship_Snapshot_BE1000172_20210915.txt], refsetPaths=[/tmp/temp-rf2-unzip5425965882864713307/1/der2_cRefset_AssociationReferenceSnapshot_BE1000172_20210915.txt, /tmp/temp-rf2-unzip5425965882864713307/1/der2_cRefset_AttributeValueSnapshot_BE1000172_20210915.txt, /tmp/temp-rf2-unzip5425965882864713307/1/der2_Refset_SimpleSnapshot_BE1000172_20210915.txt, /tmp/temp-rf2-unzip5425965882864713307/1/der2_Refset_TranslatedAnimalMaterialsSimpleRefsetSnapshot_BE1000172_20210915.txt, /tmp/temp-rf2-unzip5425965882864713307/1/der2_Refset_TranslatedEdibleSubstancesSimpleRefsetSnapshot_BE1000172_20210915.txt, /tmp/temp-rf2-unzip5425965882864713307/1/der2_Refset_TranslatedPlantMaterialsSimpleRefsetSnapshot_BE1000172_20210915.txt, /tmp/temp-rf2-unzip5425965882864713307/1/der2_Refset_GPSubsetSimpleRefsetSnapshot_BE1000172_20210915.txt, /tmp/temp-rf2-unzip5425965882864713307/1/der2_Refset_SubsetForPocFhirCausativeAgentNoDrugSimpleRefsetSnapshot_BE1000172_20210915.txt, /tmp/temp-rf2-unzip5425965882864713307/1/der2_Refset_SubsetForPocFhirManifestationSimpleRefsetSnapshot_BE1000172_20210915.txt, /tmp/temp-rf2-unzip5425965882864713307/1/der2_Refset_SubsetForPocFhirNoAllergySimpleRefsetSnapshot_BE1000172_20210915.txt, /tmp/temp-rf2-unzip5425965882864713307/1/der2_cRefset_LanguageSnapshot-en_BE1000172_20210915.txt, /tmp/temp-rf2-unzip5425965882864713307/1/der2_cRefset_LanguageSnapshot-fr_BE1000172_20210915.txt, /tmp/temp-rf2-unzip5425965882864713307/1/der2_cRefset_LanguageSnapshot-nl_BE1000172_20210915.txt, /tmp/temp-rf2-unzip5425965882864713307/1/der2_cRefset_LanguageSnapshot-fr-be-gp_BE1000172_20210915.txt, /tmp/temp-rf2-unzip5425965882864713307/1/der2_cRefset_LanguageSnapshot-nl-be-gp_BE1000172_20210915.txt, /tmp/temp-rf2-unzip5425965882864713307/1/der2_cciRefset_RefsetDescriptorSnapshot_BE1000172_20210915.txt, /tmp/temp-rf2-unzip5425965882864713307/1/der2_ciRefset_DescriptionTypeSnapshot_BE1000172_20210915.txt, /tmp/temp-rf2-unzip5425965882864713307/1/der2_ssRefset_ModuleDependencySnapshot_BE1000172_20210915.txt, /tmp/temp-rf2-unzip5425965882864713307/1/der2_iisssccRefset_ExtendedMapSnapshot_BE1000172_20210915.txt, /tmp/temp-rf2-unzip5425965882864713307/1/sct2_sRefset_OWLExpressionSnapshot_BE1000172_20210915.txt]}
2021-10-05 15:00:50,425 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Gathering effective dates for effective component filtering.
2021-10-05 15:00:50,431 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Reading concepts
2021-10-05 15:00:50,442 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - 47 concepts read from sct2_Concept_Snapshot_BE1000172_20210915.txt
2021-10-05 15:00:50,444 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - includedReferenceSetPathPatterns: [der2_cRefset_Language.*, .*_sRefset_OWL.*, .*_cissccRefset_MRCMAttributeDomain.*]
2021-10-05 15:00:50,445 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - refset 'der2_cRefset_LanguageSnapshot-en_BE1000172_20210915.txt' matches pattern 'der2_cRefset_Language.*'
2021-10-05 15:00:50,447 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - refset 'der2_cRefset_LanguageSnapshot-fr_BE1000172_20210915.txt' matches pattern 'der2_cRefset_Language.*'
2021-10-05 15:00:50,447 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - refset 'der2_cRefset_LanguageSnapshot-nl_BE1000172_20210915.txt' matches pattern 'der2_cRefset_Language.*'
2021-10-05 15:00:50,447 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - refset 'der2_cRefset_LanguageSnapshot-fr-be-gp_BE1000172_20210915.txt' matches pattern 'der2_cRefset_Language.*'
2021-10-05 15:00:50,447 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - refset 'der2_cRefset_LanguageSnapshot-nl-be-gp_BE1000172_20210915.txt' matches pattern 'der2_cRefset_Language.*'
2021-10-05 15:00:50,447 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - refset 'sct2_sRefset_OWLExpressionSnapshot_BE1000172_20210915.txt' matches pattern '.*_sRefset_OWL.*'
2021-10-05 15:00:50,447 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Reading relationships
2021-10-05 15:00:50,459 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - 311 relationships read from sct2_Relationship_Snapshot_BE1000172_20210915.txt
2021-10-05 15:00:50,459 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Reading concrete relationships
2021-10-05 15:00:50,459 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - 3 concrete relationships read from sct2_RelationshipConcreteValues_Snapshot_BE1000172_20210915.txt
2021-10-05 15:00:50,459 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Reading relationships
2021-10-05 15:00:50,460 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - 4 relationships read from sct2_StatedRelationship_Snapshot_BE1000172_20210915.txt
2021-10-05 15:00:50,460 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Reading descriptions
2021-10-05 15:00:50,462 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - 97 descriptions read from sct2_Description_Snapshot-en_BE1000172_20210915.txt
2021-10-05 15:00:50,860 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - 94581 descriptions read from sct2_Description_Snapshot-fr_BE1000172_20210915.txt
2021-10-05 15:00:51,147 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - 90286 descriptions read from sct2_Description_Snapshot-nl_BE1000172_20210915.txt
2021-10-05 15:00:51,147 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Reading descriptions
2021-10-05 15:00:51,147 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - -1 descriptions read from sct2_TextDefinition_Snapshot-en_BE1000172_20210915.txt
2021-10-05 15:00:51,147 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - -1 descriptions read from sct2_TextDefinition_Snapshot-fr_BE1000172_20210915.txt
2021-10-05 15:00:51,147 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - -1 descriptions read from sct2_TextDefinition_Snapshot-nl_BE1000172_20210915.txt
2021-10-05 15:00:51,147 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Reading reference set members
2021-10-05 15:00:51,149 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - 97 reference set members read from der2_cRefset_LanguageSnapshot-en_BE1000172_20210915.txt
2021-10-05 15:00:51,149 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Reading reference set members
2021-10-05 15:00:51,373 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - 92416 reference set members read from der2_cRefset_LanguageSnapshot-fr_BE1000172_20210915.txt
2021-10-05 15:00:51,373 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Reading reference set members
2021-10-05 15:00:51,588 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - 87968 reference set members read from der2_cRefset_LanguageSnapshot-nl_BE1000172_20210915.txt
2021-10-05 15:00:51,588 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Reading reference set members
2021-10-05 15:00:51,595 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - 2593 reference set members read from der2_cRefset_LanguageSnapshot-fr-be-gp_BE1000172_20210915.txt
2021-10-05 15:00:51,595 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Reading reference set members
2021-10-05 15:00:51,602 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - 2702 reference set members read from der2_cRefset_LanguageSnapshot-nl-be-gp_BE1000172_20210915.txt
2021-10-05 15:00:51,602 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Reading reference set members
2021-10-05 15:00:51,602 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - 49 reference set members read from sct2_sRefset_OWLExpressionSnapshot_BE1000172_20210915.txt
2021-10-05 15:00:51,603 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Reading concepts
2021-10-05 15:00:51,605 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - 47 concepts read from sct2_Concept_Snapshot_BE1000172_20210915.txt
2021-10-05 15:00:51,605 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - includedReferenceSetPathPatterns: [der2_cRefset_Language.*, .*_sRefset_OWL.*, .*_cissccRefset_MRCMAttributeDomain.*]
2021-10-05 15:00:51,605 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - refset 'der2_cRefset_LanguageSnapshot-en_BE1000172_20210915.txt' matches pattern 'der2_cRefset_Language.*'
2021-10-05 15:00:51,606 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - refset 'der2_cRefset_LanguageSnapshot-fr_BE1000172_20210915.txt' matches pattern 'der2_cRefset_Language.*'
2021-10-05 15:00:51,606 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - refset 'der2_cRefset_LanguageSnapshot-nl_BE1000172_20210915.txt' matches pattern 'der2_cRefset_Language.*'
2021-10-05 15:00:51,606 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - refset 'der2_cRefset_LanguageSnapshot-fr-be-gp_BE1000172_20210915.txt' matches pattern 'der2_cRefset_Language.*'
2021-10-05 15:00:51,606 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - refset 'der2_cRefset_LanguageSnapshot-nl-be-gp_BE1000172_20210915.txt' matches pattern 'der2_cRefset_Language.*'
2021-10-05 15:00:51,606 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - refset 'sct2_sRefset_OWLExpressionSnapshot_BE1000172_20210915.txt' matches pattern '.*_sRefset_OWL.*'
2021-10-05 15:00:51,614 [INFO  ] [pool-1-thread-1] org.ihtsdo.otf.snomedboot.ReleaseImporter - Reading relationships
2021-10-05 15:00:51,614 [INFO  ] [pool-1-thread-2] org.ihtsdo.otf.snomedboot.ReleaseImporter - Reading concrete relationships
2021-10-05 15:00:51,617 [INFO  ] [pool-1-thread-3] org.ihtsdo.otf.snomedboot.ReleaseImporter - Reading relationships
2021-10-05 15:00:51,617 [INFO  ] [pool-1-thread-3] org.ihtsdo.otf.snomedboot.ReleaseImporter - 4 relationships read from sct2_StatedRelationship_Snapshot_BE1000172_20210915.txt
2021-10-05 15:00:51,618 [INFO  ] [pool-1-thread-2] org.ihtsdo.otf.snomedboot.ReleaseImporter - 3 concrete relationships read from sct2_RelationshipConcreteValues_Snapshot_BE1000172_20210915.txt
2021-10-05 15:00:51,618 [INFO  ] [pool-1-thread-2] org.ihtsdo.otf.snomedboot.ReleaseImporter - Reading descriptions
2021-10-05 15:00:51,618 [INFO  ] [pool-1-thread-4] org.ihtsdo.otf.snomedboot.ReleaseImporter - Reading descriptions
2021-10-05 15:00:51,619 [INFO  ] [pool-1-thread-2] org.ihtsdo.otf.snomedboot.ReleaseImporter - -1 descriptions read from sct2_TextDefinition_Snapshot-en_BE1000172_20210915.txt
2021-10-05 15:00:51,619 [INFO  ] [pool-1-thread-2] org.ihtsdo.otf.snomedboot.ReleaseImporter - -1 descriptions read from sct2_TextDefinition_Snapshot-fr_BE1000172_20210915.txt
2021-10-05 15:00:51,619 [INFO  ] [pool-1-thread-2] org.ihtsdo.otf.snomedboot.ReleaseImporter - -1 descriptions read from sct2_TextDefinition_Snapshot-nl_BE1000172_20210915.txt
2021-10-05 15:00:51,621 [INFO  ] [pool-1-thread-4] org.ihtsdo.otf.snomedboot.ReleaseImporter - 97 descriptions read from sct2_Description_Snapshot-en_BE1000172_20210915.txt
2021-10-05 15:00:51,622 [INFO  ] [pool-1-thread-1] org.ihtsdo.otf.snomedboot.ReleaseImporter - 311 relationships read from sct2_Relationship_Snapshot_BE1000172_20210915.txt
2021-10-05 15:00:52,060 [INFO  ] [pool-1-thread-4] org.ihtsdo.otf.snomedboot.ReleaseImporter - 94581 descriptions read from sct2_Description_Snapshot-fr_BE1000172_20210915.txt
2021-10-05 15:00:52,414 [INFO  ] [pool-1-thread-4] org.ihtsdo.otf.snomedboot.ReleaseImporter - 90286 descriptions read from sct2_Description_Snapshot-nl_BE1000172_20210915.txt
2021-10-05 15:00:52,415 [INFO  ] [pool-1-thread-4] org.ihtsdo.otf.snomedboot.ReleaseImporter - Reading reference set members
2021-10-05 15:00:52,415 [INFO  ] [pool-1-thread-2] org.ihtsdo.otf.snomedboot.ReleaseImporter - Reading reference set members
2021-10-05 15:00:52,415 [INFO  ] [pool-1-thread-3] org.ihtsdo.otf.snomedboot.ReleaseImporter - Reading reference set members
2021-10-05 15:00:52,415 [INFO  ] [pool-1-thread-1] org.ihtsdo.otf.snomedboot.ReleaseImporter - Reading reference set members
2021-10-05 15:00:52,415 [INFO  ] [pool-1-thread-5] org.ihtsdo.otf.snomedboot.ReleaseImporter - Reading reference set members
2021-10-05 15:00:52,416 [INFO  ] [pool-1-thread-6] org.ihtsdo.otf.snomedboot.ReleaseImporter - Reading reference set members
2021-10-05 15:00:52,417 [INFO  ] [pool-1-thread-4] org.ihtsdo.otf.snomedboot.ReleaseImporter - 97 reference set members read from der2_cRefset_LanguageSnapshot-en_BE1000172_20210915.txt
2021-10-05 15:00:52,442 [INFO  ] [pool-1-thread-5] org.ihtsdo.otf.snomedboot.ReleaseImporter - 2702 reference set members read from der2_cRefset_LanguageSnapshot-nl-be-gp_BE1000172_20210915.txt
2021-10-05 15:00:52,451 [INFO  ] [pool-1-thread-3] org.ihtsdo.otf.snomedboot.ReleaseImporter - 2593 reference set members read from der2_cRefset_LanguageSnapshot-fr-be-gp_BE1000172_20210915.txt
2021-10-05 15:00:52,463 [INFO  ] [pool-1-thread-6] org.ihtsdo.otf.snomedboot.ReleaseImporter - 49 reference set members read from sct2_sRefset_OWLExpressionSnapshot_BE1000172_20210915.txt
2021-10-05 15:00:52,681 [INFO  ] [pool-1-thread-1] org.ihtsdo.otf.snomedboot.ReleaseImporter - 92416 reference set members read from der2_cRefset_LanguageSnapshot-fr_BE1000172_20210915.txt
2021-10-05 15:00:52,701 [INFO  ] [pool-1-thread-2] org.ihtsdo.otf.snomedboot.ReleaseImporter - 87968 reference set members read from der2_cRefset_LanguageSnapshot-nl_BE1000172_20210915.txt
2021-10-05 15:00:52,702 [INFO  ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Release files read. JVM total memory is approx 3,925 MB.
2021-10-05 15:00:52,721 [INFO  ] [main] org.snomed.otf.owltoolkit.taxonomy.SnomedTaxonomyBuilder - Loaded release snapshot
2021-10-05 15:00:52,721 [INFO  ] [main] org.snomed.otf.owltoolkit.taxonomy.SnomedTaxonomyBuilder - Time taken deserialising axioms 0.039s
2021-10-05 15:00:52,721 [INFO  ] [main] org.snomed.otf.owltoolkit.taxonomy.SnomedTaxonomyBuilder - Loading complete.
2021-10-05 15:00:52,722 [INFO  ] [main] org.snomed.otf.owltoolkit.taxonomy.SnomedTaxonomyBuilder - SnomedTaxonomy loaded in 4.012 seconds
2021-10-05 15:00:52,722 [INFO  ] [main] org.snomed.otf.owltoolkit.taxonomy.SnomedTaxonomyBuilder - 48 concepts loaded
2021-10-05 15:00:52,722 [INFO  ] [main] org.snomed.otf.owltoolkit.taxonomy.SnomedTaxonomyBuilder - 0 active stated relationships loaded
2021-10-05 15:00:52,726 [INFO  ] [main] org.snomed.otf.owltoolkit.taxonomy.SnomedTaxonomyBuilder - 48 active axioms loaded
2021-10-05 15:00:52,726 [INFO  ] [main] org.snomed.otf.owltoolkit.taxonomy.SnomedTaxonomy - No MRCM information found, falling back to legacy never grouped role list [411116001, 127489000, 272741003, 123005000]
2021-10-05 15:00:52,726 [INFO  ] [main] org.snomed.otf.owltoolkit.conversion.RF2ToOWLService - Building Ontology
2021-10-05 15:00:52,779 [WARN  ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 701000172104 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.
2021-10-05 15:00:52,783 [WARN  ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 711000172101 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.
2021-10-05 15:00:52,784 [WARN  ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 701000172104 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.
2021-10-05 15:00:52,784 [WARN  ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 711000172101 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.
2021-10-05 15:00:52,785 [WARN  ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 711000172101 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.
2021-10-05 15:00:52,785 [WARN  ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 701000172104 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.
2021-10-05 15:00:52,785 [WARN  ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 711000172101 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.
2021-10-05 15:00:52,785 [WARN  ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 701000172104 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.
2021-10-05 15:00:52,785 [WARN  ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 701000172104 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.
2021-10-05 15:00:52,785 [WARN  ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 711000172101 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.
2021-10-05 15:00:52,786 [WARN  ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 711000172101 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.
2021-10-05 15:00:52,786 [WARN  ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 701000172104 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.
2021-10-05 15:00:52,786 [WARN  ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 711000172101 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.
2021-10-05 15:00:52,786 [WARN  ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 701000172104 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.
2021-10-05 15:00:52,786 [WARN  ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 701000172104 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.
2021-10-05 15:00:52,786 [WARN  ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 711000172101 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.
2021-10-05 15:00:52,786 [WARN  ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 711000172101 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.
2021-10-05 15:00:52,787 [WARN  ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 701000172104 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.
2021-10-05 15:00:52,787 [WARN  ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 701000172104 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.
2021-10-05 15:00:52,791 [WARN  ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 711000172101 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.
2021-10-05 15:00:52,791 [WARN  ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 711000172101 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.
2021-10-05 15:00:52,791 [WARN  ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 701000172104 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.
2021-10-05 15:00:52,791 [WARN  ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 711000172101 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.
2021-10-05 15:00:52,791 [WARN  ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 701000172104 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.
2021-10-05 15:00:52,792 [WARN  ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 711000172101 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.
2021-10-05 15:00:52,792 [WARN  ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 701000172104 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.
2021-10-05 15:00:52,793 [WARN  ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 711000172101 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.
2021-10-05 15:00:52,793 [WARN  ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 701000172104 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.
2021-10-05 15:00:52,793 [WARN  ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 711000172101 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.
2021-10-05 15:00:52,793 [WARN  ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 701000172104 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.
2021-10-05 15:00:52,794 [WARN  ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 711000172101 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.
2021-10-05 15:00:52,795 [WARN  ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 701000172104 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.
2021-10-05 15:00:52,795 [WARN  ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 711000172101 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.
2021-10-05 15:00:52,795 [WARN  ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 701000172104 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.
2021-10-05 15:00:52,795 [WARN  ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 711000172101 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.
2021-10-05 15:00:52,795 [WARN  ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 701000172104 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.
2021-10-05 15:00:52,796 [WARN  ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 701000172104 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.
2021-10-05 15:00:52,796 [WARN  ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 711000172101 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.
2021-10-05 15:00:52,796 [WARN  ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 711000172101 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.
2021-10-05 15:00:52,796 [WARN  ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 701000172104 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.
2021-10-05 15:00:52,796 [WARN  ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 701000172104 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.
2021-10-05 15:00:52,796 [WARN  ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 711000172101 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.
2021-10-05 15:00:52,797 [WARN  ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 711000172101 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.
2021-10-05 15:00:52,797 [WARN  ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 701000172104 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.
2021-10-05 15:00:52,798 [WARN  ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 711000172101 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.
2021-10-05 15:00:52,798 [WARN  ] [main] org.snomed.otf.owltoolkit.ontology.OntologyService - Please add language reference set 701000172104 to language-refset-dialect-map.properties and recompile. The dialect ISO code could not be appended to the annotations because it was not found.
2021-10-05 15:00:52,839 [INFO  ] [main] org.snomed.otf.owltoolkit.conversion.RF2ToOWLService - RF2 to OWL Ontology conversion complete.
OWL Ontology file written to - ontology-2021-10-05_15-00-48.owl```

2.9.0 version with "An Ontology file can not be produced."

Hi @kaicode ,
I'm try to use 2.9.0 toolkit version, and I receive this problem (from log):

2020-01-07 21:29:53,973 [INFO ] [main] org.snomed.otf.owltoolkit.taxonomy.SnomedTaxonomyBuilder - 0 active axioms loaded
org.snomed.otf.owltoolkit.conversion.ConversionException: No Stated Relationships or Axioms were found. An Ontology file can not be produced.
at org.snomed.otf.owltoolkit.conversion.RF2ToOWLService.convertRF2ArchiveToOWL(RF2ToOWLService.java:51)
at org.snomed.otf.owltoolkit.Application.rf2ToOwl(Application.java:145)
at org.snomed.otf.owltoolkit.Application.run(Application.java:88)
at org.snomed.otf.owltoolkit.Application.main(Application.java:53)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:50)
at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51)

Can you try the RF2 conversion in your machine? The command line that I'm try to use, is: java -jar snomed-owl-toolkit-2.9.0-executable.jar -rf2-to-owl -rf2-snapshot-archives SnomedCT_InternationalRF2_PRODUCTION_20190731T120000Z.zip

Regards,

Classification of Post Coordinated Expressions

We are developing a EHR system with Snomed as it's core.

When a user want to store "Life threatening allergy to peanut", we created a postcoordinated expression

91935009 | Allergy to peanut |: 246112005 | Severity |= 442452003 | Life threatening severity |

an then calculated the normal form for the expression. We stored this in a expression repository.

Since the stated relationships have moved to use OWL, we now need to calculate the NNF instead.

We can see that there are functionality to calculate NFF in OWL Toolkit, but have not found any example (or method) that can be used to go from a postcoordinated expression to NFF.
There are some documentation here https://github.com/IHTSDO/snomed-owl-toolkit/blob/master/documentation/calculating-necessary-normal-form.md but it's use case (and code) seems to be when converting RF2 files.

Are there any example/code that describes how to convert a postcoordinated expression to NFF to be able to store it in a expression repository?

Any help would be much appreciated!

Role groups from separate axioms should not be merged in NNF?

When a concept has two axioms the relationships from each axiom should probably be in separate groups when converted into the necessary normal form (inferred relationships).
I would like to confirm this with the SNOMED Modeling Advisory Group before implementing the fix.

Hierarchy of concepts by RF2

Hi @kaicode ,

If you can give me a tip, it would be really useful. I'm trying to extract the hierarchical structure from the RF2 format, when choosing a certain term. The algorithm is working relatively well, with recursive calling and considering a hierarchy of any level.
But I came across an error situation. Even considering the static version.

My example was with the term "heart attack", my code considers the term to be a label and discovers the main concept (22298006) Myocardial infarction (disorder). OK.
Then I take all the axioms related to this concept and make a parse to find out which other concepts are "children" of this main concept.
image

However, in this example with 22298006 (Myocardial infarction (disorder)) as the main term, two concepts that appear in the OWL version and on the website (static) according to the images, were not recovered by the axiom. In fact the problem is only in one: 371068009 (Myocardial infarction with complication (disorder)), because if he is not considered, your hierarchical child will not be either.
image

I went looking for the specific axioms of this term and found the following statement:

EquivalentClasses (: 30277009 ObjectIntersectionOf (: 29889000: 371068009: 57054005 ObjectSomeValuesFrom (: 609 096 000 ObjectIntersectionOf (ObjectSomeValuesFrom (: 116 676 008: 125 671 007) ObjectSomeValuesFrom (: 363 698 007: 21814001))) ObjectSomeValuesFrom (: 609 096 000 ObjectIntersectionOf (ObjectSomeValuesFrom (: 116 676 008: 55470003) ObjectSomeValuesFrom (: 363698007: 74281007)))))

In other words, in the axiom, the concept 371068009 is not linked in 22298006, but in: 30277009. However, in both Browser and OWL, the structure is linked in 22298006.
I'm looking in the refset file, which has the axioms.

Do you have any suggestions for what can be done, or where am I going wrong?

Once again, thank you for your support.

Failed to build existing terminology - BOM marker in UTF-8 files not supported.

Dear programmers,

I am getting an error failed to build existing terminology . . .
Caused by ... : 'id' not found as first value in tab separated first line of sct_Concept_Delta_Int_20200309.txt

The first lines of the extracted file in C:\Users\thoma\AppData\Local\Temp\temp-rf2-unzip3860120724017919193/sct2_Concept_Delta_INT_20200309.txt
are

id effectivetime active moduleid definitionstatusid
100000011000232107 20190714 1 100000001000232109 900000000000074008
100000021000232102 20190517 1 100000001000232109 900000000000074008
100000341000232108 20190517 1 100000001000232109 900000000000074008
100000371000232103 20190517 1 100000001000232109 900000000000074008

file attached sct2_Concept_Delta_INT_20200309.txt

What am I doing wrong when exporting the file?

Your help is very much appreaciated.
Thank you
Thomas

Version ambiguity

The 'version' is represented as the date and time the conversion is run.

Would it be possible to comment the version/release of SNOMED in the OWL (e.g., January 2019 International, March 2019 US Edition, and so on)?

In \Full\Terminology, I think this could be represented from a .txt file name *_Full_VVV_YYYYMMDD.txt ?

How to generate NNF from SNOMED CT international Download to TXT File

Hi,

I am unfamiliar with your software, and I would like to generate the NNF relationships to a txt file from the Snomed CT international download. As suggested from your readme, I ran the following command but had returned with two empty txt files. I would appreciate the help if it isn't an inconvenience.
java -Xms4g -jar snomed-owl-toolkit*executable.jar -classify -rf2-snapshot-archives SnomedCT_InternationalRF2_PRODUCTION_20200309T120000Z.zip

Thanks!

No results when using international release of SNOMED CT

I am attempting to understand the reasoner and following the documentation and running the reasoner with the following command:
java -Xmx3800m -Xms3800m -XX:+UseParallelGC -XX:ParallelGCThreads=2 -jar snomed-owl-toolkit-2.0.1-executable.jar -classify -rf2-snapshot-archives SnomedCT_InternationalRF2_PRODUCTION_20180731T120000Z.zip

I modified the international release file, so it only contains the snapshot folder. The reasoner seems to run without error but the resulting zip file contains the two files with only a header and no results. I expected the reasoner would used the stated relationship file in the release to create the inferred relations in the resulting zip file. I am attaching a log file of the output in the terminal and the zip file created.

I am using Ubuntu 18.04 and java version:
java version "1.8.0_74"
Java(TM) SE Runtime Environment (build 1.8.0_74-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.74-b02, mixed mode)

I am stumped as to why I can not get the expected results. Any comments are appreciated.

classification-results-2018-11-04_20-30-28.zip
logfile.txt

Ability to ignore components based on module

The UK Edition is skipping their drug extension from the classification (determined by module). Would it be possible to support this within the toolkit, so it could be used for the UK Edition as well?

Can it be made to work with a Full release?

I run into scenarios where I have a Full release but not a Snapshot release, and it would be nice to obtain an OWL file for the implicit Snapshot version of the release.

Isn't it true that a Snapshot version of a RF2 file can be implied/computed from a Full version of the file by only processing the SNOMED identifiers with the most recent effectiveTime value and ignoring the retained historical versions of an identifier? I believe this is true in the Concept, Description, Relationship and StatedRelationship files.

Could a -rf2-full-release option be added that does this type of processing as an additional option to the snapshot option?

Perhaps a different tool for converting a Full release to a Snapshot release would make sense instead of trying to add this kind of logic to individual program. Perhaps it could be named snomed-full-to-snapshot or similar. I have python code which does this type of processing which I could share.

Netherlands Edition Release : Question

Not sure if this is the right place for my question:

It seems the toolkit doesn't handle the Netherlands Edition release quite well.
I tried for the 3 most recent Snomed CT releases (Sept 30 2021, Mar 31 2021 and Sept 30 2020)
Not quite sure what goes wrong, performance is inconsistent as well: sometimes an .owl file gets created containing just a few random entities, sometimes it says an owll file cannot be produced.

`$ java -jar snomed-owl-toolkit-3.0.3-executable.jar -rf2-to-owl -rf2-snapshot-ar chives SnomedCT_Netherlands_EditionRelease_PRODUCTION_20200930T120000Z.zip

Creating Ontology using the following options:
Snapshot archives: [SnomedCT_Netherlands_EditionRelease_PRODUCTION_20200930T12 0000Z.zip]
Delta archive: -none-
Ontology URI: http://snomed.info/sct/900000000000207008
Ontology Version: 20211021
Include Description Annotations: true

2021-10-21 16:57:31,481 [INFO ] [main] org.snomed.otf.owltoolkit.conversion.RF2 ToOWLService - Loading RF2 files
2021-10-21 16:57:44,220 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - Unzipping file to C:\Users\j_ent\AppData\Local\Temp\temp-rf2-unzip5198274632 394087275\1\der2_cRefset_AssociationSnapshot_NL_20200930.txt
2021-10-21 16:57:44,402 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - Unzipping file to C:\Users\j_ent\AppData\Local\Temp\temp-rf2-unzip5198274632 394087275\1\der2_cRefset_AttributeValueSnapshot_NL_20200930.txt
2021-10-21 16:57:44,938 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - Unzipping file to C:\Users\j_ent\AppData\Local\Temp\temp-rf2-unzip5198274632 394087275\1\der2_Refset_SimpleSnapshot_NL_20200930.txt
2021-10-21 16:57:44,974 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - Unzipping file to C:\Users\j_ent\AppData\Local\Temp\temp-rf2-unzip5198274632 394087275\1\der2_cRefset_LanguageSnapshot_NL_20200930.txt
2021-10-21 16:57:48,581 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - Unzipping file to C:\Users\j_ent\AppData\Local\Temp\temp-rf2-unzip5198274632 394087275\1\der2_iisssccRefset_ExtendedMapSnapshot_NL_20200930.txt
2021-10-21 16:57:48,834 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - Unzipping file to C:\Users\j_ent\AppData\Local\Temp\temp-rf2-unzip5198274632 394087275\1\der2_sccRefset_CorrelatedExtendedMapTypeReferenceSetSnapshot_NL_2020 0930.txt
2021-10-21 16:57:48,835 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - Unzipping file to C:\Users\j_ent\AppData\Local\Temp\temp-rf2-unzip5198274632 394087275\1\der2_scRefset_CorrelatedMapTypeReferenceSetSnapshot_NL_20200930.txt
2021-10-21 16:57:48,836 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - Unzipping file to C:\Users\j_ent\AppData\Local\Temp\temp-rf2-unzip5198274632 394087275\1\der2_sRefset_SimpleMapSnapshot_NL_20200930.txt
2021-10-21 16:57:49,360 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - Unzipping file to C:\Users\j_ent\AppData\Local\Temp\temp-rf2-unzip5198274632 394087275\1\der2_cciRefset_RefsetDescriptorSnapshot_NL_20200930.txt
2021-10-21 16:57:49,374 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - Unzipping file to C:\Users\j_ent\AppData\Local\Temp\temp-rf2-unzip5198274632 394087275\1\der2_ciRefset_DescriptionTypeSnapshot_NL_20200930.txt
2021-10-21 16:57:49,377 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - Unzipping file to C:\Users\j_ent\AppData\Local\Temp\temp-rf2-unzip5198274632 394087275\1\der2_cissccRefset_MRCMAttributeDomainSnapshot_NL_20200930.txt
2021-10-21 16:57:49,388 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - Unzipping file to C:\Users\j_ent\AppData\Local\Temp\temp-rf2-unzip5198274632 394087275\1\der2_cRefset_MRCMModuleScopeSnapshot_NL_20200930.txt
2021-10-21 16:57:49,389 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - Unzipping file to C:\Users\j_ent\AppData\Local\Temp\temp-rf2-unzip5198274632 394087275\1\der2_ssccRefset_MRCMAttributeRangeSnapshot_NL_20200930.txt
2021-10-21 16:57:49,401 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - Unzipping file to C:\Users\j_ent\AppData\Local\Temp\temp-rf2-unzip5198274632 394087275\1\der2_ssRefset_ModuleDependencySnapshot_NL_20200930.txt
2021-10-21 16:57:49,402 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - Unzipping file to C:\Users\j_ent\AppData\Local\Temp\temp-rf2-unzip5198274632 394087275\1\der2_sssssssRefset_MRCMDomainSnapshot_NL_20200930.txt
2021-10-21 16:57:49,403 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - Unzipping file to C:\Users\j_ent\AppData\Local\Temp\temp-rf2-unzip5198274632 394087275\1\sct2_Concept_Snapshot_NL_20200930.txt
2021-10-21 16:57:49,524 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - Unzipping file to C:\Users\j_ent\AppData\Local\Temp\temp-rf2-unzip5198274632 394087275\1\sct2_Description_Snapshot_NL_20200930.txt
2021-10-21 16:57:51,230 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - Unzipping file to C:\Users\j_ent\AppData\Local\Temp\temp-rf2-unzip5198274632 394087275\1\sct2_Identifier_Snapshot_NL_20200930.txt
2021-10-21 16:57:51,231 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - Unzipping file to C:\Users\j_ent\AppData\Local\Temp\temp-rf2-unzip5198274632 394087275\1\sct2_Relationship_Snapshot_NL_20200930.txt
2021-10-21 16:57:52,985 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - Unzipping file to C:\Users\j_ent\AppData\Local\Temp\temp-rf2-unzip5198274632 394087275\1\sct2_sRefset_OWLExpressionSnapshot_NL_20200930.txt
2021-10-21 16:57:53,586 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - Unzipping file to C:\Users\j_ent\AppData\Local\Temp\temp-rf2-unzip5198274632 394087275\1\sct2_StatedRelationship_Snapshot_NL_20200930.txt
2021-10-21 16:57:54,167 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - Unzipping file to C:\Users\j_ent\AppData\Local\Temp\temp-rf2-unzip5198274632 394087275\1\sct2_TextDefinition_Snapshot_NL_20200930.txt
2021-10-21 16:57:54,234 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - RF2 release filename not recognised 'sct2_Identifier_Snapshot_NL_20200930.tx t'. This file will not be loaded.
2021-10-21 16:57:54,235 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - Loading SNAPSHOT release files ReleaseFiles{conceptPaths=[C:\Users\j_ent\App Data\Local\Temp\temp-rf2-unzip5198274632394087275\1\sct2_Concept_Snapshot_NL_202 00930.txt], descriptionPaths=[C:\Users\j_ent\AppData\Local\Temp\temp-rf2-unzip51 98274632394087275\1\sct2_Description_Snapshot_NL_20200930.txt], textDefinitionPa ths=[C:\Users\j_ent\AppData\Local\Temp\temp-rf2-unzip5198274632394087275\1\sct2_ TextDefinition_Snapshot_NL_20200930.txt], relationshipPaths=[C:\Users\j_ent\AppD ata\Local\Temp\temp-rf2-unzip5198274632394087275\1\sct2_Relationship_Snapshot_NL _20200930.txt], concreteRelationshipPaths=[], statedRelationshipPaths=[C:\Users\ j_ent\AppData\Local\Temp\temp-rf2-unzip5198274632394087275\1\sct2_StatedRelation ship_Snapshot_NL_20200930.txt], refsetPaths=[C:\Users\j_ent\AppData\Local\Temp\t emp-rf2-unzip5198274632394087275\1\der2_cciRefset_RefsetDescriptorSnapshot_NL_20 200930.txt, C:\Users\j_ent\AppData\Local\Temp\temp-rf2-unzip5198274632394087275\ 1\der2_ciRefset_DescriptionTypeSnapshot_NL_20200930.txt, C:\Users\j_ent\AppData\ Local\Temp\temp-rf2-unzip5198274632394087275\1\der2_cissccRefset_MRCMAttributeDo mainSnapshot_NL_20200930.txt, C:\Users\j_ent\AppData\Local\Temp\temp-rf2-unzip51 98274632394087275\1\der2_cRefset_AssociationSnapshot_NL_20200930.txt, C:\Users\j _ent\AppData\Local\Temp\temp-rf2-unzip5198274632394087275\1\der2_cRefset_Attribu teValueSnapshot_NL_20200930.txt, C:\Users\j_ent\AppData\Local\Temp\temp-rf2-unzi p5198274632394087275\1\der2_cRefset_LanguageSnapshot_NL_20200930.txt, C:\Users\j _ent\AppData\Local\Temp\temp-rf2-unzip5198274632394087275\1\der2_cRefset_MRCMMod uleScopeSnapshot_NL_20200930.txt, C:\Users\j_ent\AppData\Local\Temp\temp-rf2-unz ip5198274632394087275\1\der2_iisssccRefset_ExtendedMapSnapshot_NL_20200930.txt, C:\Users\j_ent\AppData\Local\Temp\temp-rf2-unzip5198274632394087275\1\der2_Refse t_SimpleSnapshot_NL_20200930.txt, C:\Users\j_ent\AppData\Local\Temp\temp-rf2-unz ip5198274632394087275\1\der2_sccRefset_CorrelatedExtendedMapTypeReferenceSetSnap shot_NL_20200930.txt, C:\Users\j_ent\AppData\Local\Temp\temp-rf2-unzip5198274632 394087275\1\der2_scRefset_CorrelatedMapTypeReferenceSetSnapshot_NL_20200930.txt, C:\Users\j_ent\AppData\Local\Temp\temp-rf2-unzip5198274632394087275\1\der2_sRef set_SimpleMapSnapshot_NL_20200930.txt, C:\Users\j_ent\AppData\Local\Temp\temp-rf 2-unzip5198274632394087275\1\der2_ssccRefset_MRCMAttributeRangeSnapshot_NL_20200 930.txt, C:\Users\j_ent\AppData\Local\Temp\temp-rf2-unzip5198274632394087275\1\d er2_ssRefset_ModuleDependencySnapshot_NL_20200930.txt, C:\Users\j_ent\AppData\Lo cal\Temp\temp-rf2-unzip5198274632394087275\1\der2_sssssssRefset_MRCMDomainSnapsh ot_NL_20200930.txt, C:\Users\j_ent\AppData\Local\Temp\temp-rf2-unzip519827463239 4087275\1\sct2_sRefset_OWLExpressionSnapshot_NL_20200930.txt]}
2021-10-21 16:57:54,235 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - Gathering effective dates for effective component filtering.
2021-10-21 16:57:54,254 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - Reading concepts
2021-10-21 16:57:54,823 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - 489842 concepts read from sct2_Concept_Snapshot_NL_20200930.txt
2021-10-21 16:57:54,826 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - includedReferenceSetPathPatterns: [der2_cRefset_Language., ._sRefset_OWL.* , ._cissccRefset_MRCMAttributeDomain.]
2021-10-21 16:57:54,826 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - refset 'der2_cissccRefset_MRCMAttributeDomainSnapshot_NL_20200930.txt' match es pattern '._cissccRefset_MRCMAttributeDomain.'
2021-10-21 16:57:54,828 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - refset 'der2_cRefset_LanguageSnapshot_NL_20200930.txt' matches pattern 'der2 _cRefset_Language.'
2021-10-21 16:57:54,829 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - refset 'sct2_sRefset_OWLExpressionSnapshot_NL_20200930.txt' matches pattern '.
_sRefset_OWL.'
2021-10-21 16:57:54,829 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - Reading relationships
2021-10-21 16:57:59,416 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - 3119637 relationships read from sct2_Relationship_Snapshot_NL_20200930.txt
2021-10-21 16:57:59,416 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - Reading concrete relationships
2021-10-21 16:57:59,416 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - Reading relationships
2021-10-21 16:58:00,746 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - 1051757 relationships read from sct2_StatedRelationship_Snapshot_NL_20200930 .txt
2021-10-21 16:58:00,746 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - Reading descriptions
2021-10-21 16:58:04,572 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - 2263139 descriptions read from sct2_Description_Snapshot_NL_20200930.txt
2021-10-21 16:58:04,572 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - Reading descriptions
2021-10-21 16:58:04,610 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - 10138 descriptions read from sct2_TextDefinition_Snapshot_NL_20200930.txt
2021-10-21 16:58:04,610 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - Reading reference set members
2021-10-21 16:58:04,612 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - 146 reference set members read from der2_cissccRefset_MRCMAttributeDomainSna pshot_NL_20200930.txt
2021-10-21 16:58:04,613 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - Reading reference set members
2021-10-21 16:58:12,166 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - 3703602 reference set members read from der2_cRefset_LanguageSnapshot_NL_202 00930.txt
2021-10-21 16:58:12,168 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - Reading reference set members
2021-10-21 16:58:13,788 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - 370929 reference set members read from sct2_sRefset_OWLExpressionSnapshot_NL _20200930.txt
2021-10-21 16:58:13,798 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - Reading concepts
2021-10-21 16:58:14,588 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - 489842 concepts read from sct2_Concept_Snapshot_NL_20200930.txt
2021-10-21 16:58:14,588 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - includedReferenceSetPathPatterns: [der2_cRefset_Language.
, ._sRefset_OWL. , ._cissccRefset_MRCMAttributeDomain.]
2021-10-21 16:58:14,588 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - refset 'der2_cissccRefset_MRCMAttributeDomainSnapshot_NL_20200930.txt' match es pattern '._cissccRefset_MRCMAttributeDomain.'
2021-10-21 16:58:14,588 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - refset 'der2_cRefset_LanguageSnapshot_NL_20200930.txt' matches pattern 'der2 _cRefset_Language.'
2021-10-21 16:58:14,589 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporte r - refset 'sct2_sRefset_OWLExpressionSnapshot_NL_20200930.txt' matches pattern '.
sRefset_OWL.*'
2021-10-21 16:58:14,599 [INFO ] [pool-1-thread-3] org.ihtsdo.otf.snomedboot.Rel easeImporter - Reading relationships
2021-10-21 16:58:14,599 [INFO ] [pool-1-thread-2] org.ihtsdo.otf.snomedboot.Rel easeImporter - Reading concrete relationships
2021-10-21 16:58:14,599 [INFO ] [pool-1-thread-4] org.ihtsdo.otf.snomedboot.Rel easeImporter - Reading descriptions
2021-10-21 16:58:14,599 [INFO ] [pool-1-thread-5] org.ihtsdo.otf.snomedboot.Rel easeImporter - Reading descriptions
2021-10-21 16:58:14,599 [INFO ] [pool-1-thread-1] org.ihtsdo.otf.snomedboot.Rel easeImporter - Reading relationships
2021-10-21 16:58:14,762 [INFO ] [pool-1-thread-5] org.ihtsdo.otf.snomedboot.Rel easeImporter - 10138 descriptions read from sct2_TextDefinition_Snapshot_NL_2020 0930.txt
2021-10-21 16:58:19,911 [INFO ] [pool-1-thread-3] org.ihtsdo.otf.snomedboot.Rel easeImporter - 1051757 relationships read from sct2_StatedRelationship_Snapshot
NL_20200930.txt
2021-10-21 17:12:46,380 [INFO ] [pool-1-thread-4] org.ihtsdo.otf.snomedboot.ReleaseImporter - Reading reference set members
2021-10-21 17:12:46,380 [INFO ] [pool-1-thread-1] org.ihtsdo.otf.snomedboot.ReleaseImporter - Reading reference set members
2021-10-21 17:12:47,560 [INFO ] [pool-1-thread-6] org.ihtsdo.otf.snomedboot.ReleaseImporter - Reading reference set members
2021-10-21 17:13:07,384 [WARN ] [pool-1-thread-4] org.snomed.otf.owltoolkit.taxonomy.SnomedTaxonomy - Reference set 900000000000508004 r eferences description 751600014 which is not active or does not exist.
2021-10-21 17:15:39,282 [INFO ] [pool-1-thread-1] org.ihtsdo.otf.snomedboot.ReleaseImporter - 146 reference set members read from der2_c issccRefset_MRCMAttributeDomainSnapshot_NL_20200930.txt
2021-10-21 17:15:52,889 [INFO ] [main] org.ihtsdo.otf.snomedboot.ReleaseImporter - Release files read. JVM total memory is approx 1.829 MB.
2021-10-21 17:15:53,600 [INFO ] [main] org.snomed.otf.owltoolkit.taxonomy.SnomedTaxonomyBuilder - Loaded release snapshot
2021-10-21 17:15:53,601 [INFO ] [main] org.snomed.otf.owltoolkit.taxonomy.SnomedTaxonomyBuilder - Time taken deserialising axioms 0.0s
2021-10-21 17:15:53,601 [INFO ] [main] org.snomed.otf.owltoolkit.taxonomy.SnomedTaxonomyBuilder - Loading complete.
2021-10-21 17:15:53,602 [INFO ] [main] org.snomed.otf.owltoolkit.taxonomy.SnomedTaxonomyBuilder - SnomedTaxonomy loaded in 1102.11 secon ds
2021-10-21 17:15:53,602 [INFO ] [main] org.snomed.otf.owltoolkit.taxonomy.SnomedTaxonomyBuilder - 365905 concepts loaded
2021-10-21 17:15:53,602 [INFO ] [main] org.snomed.otf.owltoolkit.taxonomy.SnomedTaxonomyBuilder - 0 active stated relationships loaded
2021-10-21 17:15:53,609 [INFO ] [main] org.snomed.otf.owltoolkit.taxonomy.SnomedTaxonomyBuilder - 0 active axioms loaded
org.snomed.otf.owltoolkit.conversion.ConversionException: No Stated Relationships or Axioms were found. An Ontology file can not be produced.
at org.snomed.otf.owltoolkit.conversion.RF2ToOWLService.convertRF2ArchiveToOWL(RF2ToOWLService.java:51)
at org.snomed.otf.owltoolkit.Application.rf2ToOwl(Application.java:145)
at org.snomed.otf.owltoolkit.Application.run(Application.java:88)
at org.snomed.otf.owltoolkit.Application.main(Application.java:53)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:50)
at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51)`

Am I supposed to see all relationships in the owl file?

I'm not seeing the relationships in the resulting OWL file that I see in the relationship files in the Snomed zip. For instance, I don't see the use of 116680003 (which is the Is a attribute) anywhere in the resulting OWL file. Am I supposed to not see any of that stuff in there? I'm very new to this toolkit and am not entirely sure that I'm even using the tool correctly.

Silenced out of memory error

Hi all, the last week I created an issue because I was not able to generate the owl ontology file for the last version of Snomed (#37). The generated owl showed an incorrect hierarchy of concepts, where most of them were outside the Snomed root concept. This was provoked because there was an out of memory error, which was silenced in the process.

I am doing experiments with the different versions of snomed along the time, and I repeated the process by assigning 4GB of memory. Then, I noticed that the owl files generated with 2GB of memory were, in general, different to the files generated with 4GB. For example, the following figure shows the snomed 2019-01-31 owl file generated with 2Gb and with 2GB:
imagen

As you can see, annotations are created incorrectly, but they could be legit so I did not detect the error.

Would it be possible to show this out of memory error, at least in the log?

Classifying International Edition gives empty results

Hi,

I've tried to run the taxonomy classification with the last international version as follows:

java -jar snomed-owl-toolkit-2.8.0-executable.jar -classify -rf2-snapshot-archives SnomedCT_International_Edition.zip

Aunque se crea el archivo comprimido classification-results-2019-12-16_14-17-29.zip, todos los archivos contenidos están vacíos.

  • der2_sRefset_EquivalentConceptSimpleMapDelta_Classification_20191216.txt
  • sct2_Relationship_Delta_Classification_20191216.txt

Am I doing anything wrong?

Not all SNOMED attributes are represented as OWL properties

It seems that all attributes that are children of Concept model object attribute are correctly converted to be OWL properties. However, all other attributes are only created as OWL classes. I would expect that at least everything that is a subclass/sub-property/sub-attribute of one of the subclasses of Attribute would be an OWL property of some kind after conversion is complete (including Is a, which is a direct child of Attribute, but doesn't have any children itself and seems like it should be a property...that, or a sub-property of either rdf:type or rdfs:subClassOf).

(The same could probably be argued for everything under Link assertion as well.)

Not all rows loaded from user created file. (Originally: Not all stated relationships taken into account)

Dear providers,

I am trying to classify a Snomed extension with the toolkit commandline.

(java -jar "C:\Users\thoma\Documents\PuffinPathology\Classifier\snomed-owl-toolkit-2.6.0-executable.jar" -classify -rf2-snapshot-archives "C:\Users\thoma\Documents\PuffinPathology\Classifier\SnomedCT_InternationalRF2_PRODUCTION_20190131T120000Z.zip" -rf2-authoring-delta-archive "C:\Users\thoma\Documents\PuffinPathology\Classifier\TR_Delta\SnomedCT_InternationalRF2_PRODUCTION_20190131T120000Z.zip")

The input is provided by the "-rf2-authoring-delta-archive " parameter. There are no other relevant files in the archive.
For a reason, that I cannot understand, the last of the stated attribute relationships does not appear in the inferred relationsships and appropriate is-A relationships from this last grouped attribute relationship are not inferred.
If I change the order of the attribute relationships, always the last one seems not to be taken into account.
What am I doing wrong?

5 rf2-files attached (3 input, 2 output)

Best regards
Thomas

sct2_Concept_Delta_INT_20190131.txt
sct2_StatedRelationship_Delta_INT_20190131.txt
sct2_TextDefinition_Delta-en_INT_20190131.txt

Synonyms for the Dutch Patient Friendly terms

Hi @kaicode,

I'm trying to use the Dutch version of the Snomed ontology to search for synonyms.
Therefore I would also like to use the "Patient Friendly terms" as synonyms using skos:altLabel.

Here's an excerpt of the description file:

id	effectiveTime	active	moduleId	conceptId	languageCode	typeId	term	caseSignificanceId

126811000146112	20190331	1	15561000146104	473011001	nl	900000000000013009	allergieën	900000000000448009
126831000146117	20190331	0	15561000146104	363418001	nl	900000000000013009	alvleesklierkanker	900000000000020002
126931000146113	20190331	0	15561000146104	363354003	nl	900000000000013009	baarmoederhalskanker	900000000000020002
126941000146117	20190331	0	15561000146104	371973000	nl	900000000000013009	baarmoederkanker	900000000000020002

I used the newest version (2.8.0) of the owl toolkit to translate the rf2 files into owl.
To get the patient friendly synonyms I added 2 IDs to the language-refset-dialect-map.properties file:

15551000146102=nl
15561000146104=nl

Then I used the following command to run the program:
java -jar snomed-owl-toolkit-2.8.0-executable.jar -rf2-to-owl -rf2-snapshot-archives ./SnomedCT_Netherlands_PatientFriendlyExtensionRelease_PRODUCTION_20190331T120000Z.zip

The Programm reports that it has found 2 relationships and 611 descriptions:

2019-11-28 09:20:05,069 [INFO  ] [pool-1-thread-1] org.ihtsdo.otf.snomedboot.ReleaseImporter - 2 relationships read from sct2_Relationship_Snapshot_NL-PatientFriendly_20190331.txt
2019-11-28 09:20:05,084 [INFO  ] [pool-1-thread-3] org.ihtsdo.otf.snomedboot.ReleaseImporter - 611 descriptions read from sct2_Description_Snapshot_NL-PatientFriendly_20190331.txt

But the output file just consists of the 2 Class entries:

Prefix(:=<http://snomed.info/id/>)
Prefix(owl:=<http://www.w3.org/2002/07/owl#>)
Prefix(rdf:=<http://www.w3.org/1999/02/22-rdf-syntax-ns#>)
Prefix(xml:=<http://www.w3.org/XML/1998/namespace>)
Prefix(xsd:=<http://www.w3.org/2001/XMLSchema#>)
Prefix(rdfs:=<http://www.w3.org/2000/01/rdf-schema#>)
Prefix(skos:=<http://www.w3.org/2004/02/skos/core#>)


Ontology(<http://snomed.info/sct/900000000000207008>
<http://snomed.info/sct/900000000000207008/version/20191128>

Declaration(Class(:15551000146102))
Declaration(Class(:15561000146104))
Declaration(Class(:900000000000443000))
Declaration(Class(:900000000000506000))
Declaration(AnnotationProperty(skos:altLabel))


############################
#   Classes
############################

# Class: <http://snomed.info/id/15551000146102> (Patient-friendly Dutch language reference set (foundation metadata concept))

AnnotationAssertion(rdfs:label :15551000146102 "Patient-friendly Dutch language reference set (foundation metadata concept)"@nl)
AnnotationAssertion(skos:altLabel :15551000146102 "Patient-friendly Dutch language reference set"@nl)
SubClassOf(:15551000146102 :900000000000506000)

# Class: <http://snomed.info/id/15561000146104> (SNOMED CT Dutch module for patient-friendly descriptions (core metadata concept))

AnnotationAssertion(rdfs:label :15561000146104 "SNOMED CT Dutch module for patient-friendly descriptions (core metadata concept)"@nl)
AnnotationAssertion(skos:altLabel :15561000146104 "SNOMED CT Dutch module for patient-friendly descriptions"@nl)
SubClassOf(:15561000146104 :900000000000443000)

What needs to be done to receive the dutch friendly Terms as annotations?

Include altLabels and synonyms in OWL

Hi,
I'm trying to produce an OWL of SNOMED that includes all altLabels/synonyms, however when I run the .jar with:

java -jar snomed-owl-toolkit-2.2.0-executable.jar -rf2-to-owl -rf2-snapshot-archives path/to/SnomedCT_InternationalRF2_PRODUCTION_20190131T120000Z.zip

my resulting OWL file doesn't contain synonyms for any terms. For instance see the attached image of the term "Skin Graft Hematoma (Disorder)" in Protégé, whereas this term should have the synonyms shown here.

I'm guessing I'm using the executable improperly just not sure how.
Thanks in advance.

image

Relationship modifier

The toolkit don't seem to cater for the following constraint:

  • OWLObjectAllValuesFrom (universal restriction)

So extensions that are using both values for the modifier ID can not utilise the toolkit.

Ability to classify via the command line

It would be convenient to be able to use this tool directly on the command line to run the classification process, similar to the RF2 to OWL conversion feature.

Warnings when using java9

Using (on Windows 7):
java version "9.0.4"
Java(TM) SE Runtime Environment (build 9.0.4+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.4+11, mixed mode)

I get these warnings (which are absent when using Java8):
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.google.inject.internal.cglib.core.$ReflectUtils$2 (jar:file:/R:/SNOMED/20180131/snomed-owl-toolkit-1.3.1-executable.jar!/BOOT-INF/lib/guice-4.0.jar!/) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
WARNING: Please consider reporting this to the maintainers of com.google.inject.internal.cglib.core.$ReflectUtils$2
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

Include terms in the owl ontology

Hello, I'm trying to generate an ontology from SnomedCT International edition, the Spanish release and the Spanish extension from the Spanish Ministry. I'm using the following command:
java -jar snomed-owl-toolkit.jar -rf2-snapshot-archives SnomedCT_International_Edition.zip,SnomedCT_Spanish_Edition.zip,SnomedCT_Extension_Española_SNS.zip
This command generates an owl file, but it only includes labels (rdfs:label) in English that usually have the form "class label (super class label)", for example "Antichistosomal (disposition)".
I am wondering if it is possible to add preferred and synonyms terms to the ontology as I think this information exists in SnomedCT. Maybe the issue #14 is related with this one.

Thanks in advance,
Francisco Abad.

Error on running snomed-owl-toolkit

Downloaded jar file and tried running classifier following the instructions:

D:\snowowl>java -Xms4g -jar snomed-owl-toolkit-3.0.3.jar -classify -rf2-snapshot-archives SnomedCT_InternationalRF2_PRODUCTION_20210131T120000Z.zip
no main manifest attribute, in snomed-owl-toolkit-3.0.3.jar

Wondering if there is an error on my part or problem with jar file?

Concept model object attribute (762705008) included as class and as object property

Hi everyone.
First, I would like to thank you for making available this useful tool. I am writing this issue because I've found that the concept 762705008 | Concept model object attribute (attribute) | is being included as owl class as well as object property (tested on july 2020 international edition):
imagen

Although I can edit the ontology in Protege editor, and access programmatically through the owlapi, there are other tools that complain about having an entity annotated as class and object property at the same time. For example, owlready2 for python throws the following error:
TypeError: https//snomed.info/id762705008 belongs to more than one entity types (cannot be both a property and a class/an individual)
I am not sure if this is due to a modelling error at the RF2 side, or a conversion error at the snomed-owl-kit side.
Thanks in advance!

Problem obtaining owl file for Snomed International edition July 2019

Hi all, I am having troubles when converting Snomed CT International edition (July 2019) from RF2 to owl. I have downloaded the Snomed distribution from here, which points to the current version. I am executing the following command:

java -Xmx2g -Xms2g -jar snomed-owl-toolkit-2.9.0-executable.jar -rf2-to-owl -rf2-snapshot-archives SnomedCT_InternationalRF2_PRODUCTION_20190731T120000Z.zip

An owl file is generated. However, when I open it in Protege, the Snomed hierarchy is completely broken:
imagen

The Snomed root concept only has one subclass:
imagen

Moreover, I have configured protege to visualize the classes through rdfs:label property; however, there are several classes whose ID is appearing instead of their rdfs:labels. For example, the class 102283003 has a label, but this label is not shown in the tree component:
imagen

I am not very sure if something is wrong generating the ontology owl file from RF2 Snomed files, or if the Snomed files are not expressing the concept hierarchy properly. I am using Protege 5.2.0 and Snomed OWL Toolkit 2.9.0. Previous Snomed versions, downloaded from here, do not present this kind of issue.

Do you have any clue about this?
Thanks in advance!

Unable to run snomed-owl-toolkit-2.10.1-executable.jar

Hello,

I'm trying to run the RDF-to-OWL toolkit from command line but I keep getting a set of Exceptions. Can you provide advise on this?

Details:
Java version:

openjdk version "16.0.1" 2021-04-20
OpenJDK Runtime Environment (build 16.0.1+9-24)
OpenJDK 64-Bit Server VM (build 16.0.1+9-24, mixed mode, sharing)

I am trying to convert the following SNOMED releases. Both of them have Full, Snapshot and Delta folders. Both of them generate the same error.

  • SnomedCT_InternationalRF2_PRODUCTION_20200731T120000Z.zip
  • UK_SNOMEDCT2_30.0.0_20200805000001.zip (UK Clinical extension for the same period)

I set those files in the same folder as the .jar and run the following command line:
java -Xms4g -jar snomed-owl-toolkit-2.10.1-executable.jar -rf2-to-owl -rf2-snapshot-archives SnomedCT_InternationalRF2_PRODUCTION_20200731T120000Z.zip -version 20200731T12

Then I receive the following errors:

Creating Ontology using the following options:
  Snapshot archives: [SnomedCT_InternationalRF2_PRODUCTION_20200731T120000Z.zip]
  Delta archive: -none-
  Ontology URI: http://snomed.info/sct/900000000000207008
  Ontology Version: 20200731T12
  Include Description Annotations: true

2021-04-29 12:20:57,633 [INFO  ] [main] org.snomed.otf.owltoolkit.conversion.RF2ToOWLService - Loading RF2 files
Exception in thread "main" java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:567)
        at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)
        at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)
        at org.springframework.boot.loader.Launcher.launch(Launcher.java:50)
        at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51)
Caused by: java.lang.ExceptionInInitializerError
        at com.google.inject.internal.cglib.reflect.$FastClassEmitter.<init>(FastClassEmitter.java:67)
        at com.google.inject.internal.cglib.reflect.$FastClass$Generator.generateClass(FastClass.java:72)
        at com.google.inject.internal.cglib.core.$DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)
        at com.google.inject.internal.cglib.core.$AbstractClassGenerator.create(AbstractClassGenerator.java:216)
        at com.google.inject.internal.cglib.reflect.$FastClass$Generator.create(FastClass.java:64)
        at com.google.inject.internal.BytecodeGen.newFastClass(BytecodeGen.java:204)
        at com.google.inject.internal.ProviderMethod$FastClassProviderMethod.<init>(ProviderMethod.java:256)
        at com.google.inject.internal.ProviderMethod.create(ProviderMethod.java:71)
        at com.google.inject.internal.ProviderMethodsModule.createProviderMethod(ProviderMethodsModule.java:275)
        at com.google.inject.internal.ProviderMethodsModule.getProviderMethods(ProviderMethodsModule.java:144)
        at com.google.inject.internal.ProviderMethodsModule.configure(ProviderMethodsModule.java:123)
        at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:340)
        at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:349)
        at com.google.inject.spi.Elements.getElements(Elements.java:110)
        at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:138)
        at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:104)
        at com.google.inject.Guice.createInjector(Guice.java:96)
        at com.google.inject.Guice.createInjector(Guice.java:73)
        at com.google.inject.Guice.createInjector(Guice.java:62)
        at org.semanticweb.owlapi.apibinding.OWLManager.createInjector(OWLManager.java:89)
        at org.semanticweb.owlapi.apibinding.OWLManager.instatiateOWLOntologyManager(OWLManager.java:97)
        at org.semanticweb.owlapi.apibinding.OWLManager.createOWLOntologyManager(OWLManager.java:58)
        at org.snomed.otf.owltoolkit.taxonomy.AxiomDeserialiser.<init>(AxiomDeserialiser.java:33)
        at org.snomed.otf.owltoolkit.taxonomy.SnomedTaxonomyLoader.<init>(SnomedTaxonomyLoader.java:54)
        at org.snomed.otf.owltoolkit.taxonomy.SnomedTaxonomyLoader.<init>(SnomedTaxonomyLoader.java:63)
        at org.snomed.otf.owltoolkit.taxonomy.SnomedTaxonomyBuilder.build(SnomedTaxonomyBuilder.java:117)
        at org.snomed.otf.owltoolkit.taxonomy.SnomedTaxonomyBuilder.build(SnomedTaxonomyBuilder.java:81)
        at org.snomed.otf.owltoolkit.conversion.RF2ToOWLService.convertRF2ArchiveToOWL(RF2ToOWLService.java:45)
        at org.snomed.otf.owltoolkit.Application.rf2ToOwl(Application.java:145)
        at org.snomed.otf.owltoolkit.Application.run(Application.java:88)
        at org.snomed.otf.owltoolkit.Application.main(Application.java:53)
        ... 8 more
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain) throws java.lang.ClassFormatError accessible: module java.base does not "opens java.lang" to unnamed module @39ba5a14
        at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:357)
        at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
        at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:199)
        at java.base/java.lang.reflect.Method.setAccessible(Method.java:193)
        at com.google.inject.internal.cglib.core.$ReflectUtils$2.run(ReflectUtils.java:56)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:312)
        at com.google.inject.internal.cglib.core.$ReflectUtils.<clinit>(ReflectUtils.java:46)
        ... 39 more

Initially I thought the problem would be due trying to work with the UK Extension, but since the International release also presents problems, I'm lost in what I should do.

Thank you for your time,
Rafael

Transitive/Property Chain reduction should be limited by relationship type.

In the current implementation attributes with a transitive behaviour are being used to form alternate hierarchies. These hierarchies are being used for relationship subsumption testing during the NNF calculation. This issue is that these alternative hierarchies are being used to reduce relationships of any type. The use of these alternative hierarchies for reduction should be restricted to relationships whose type is transitive or the source of a property chain.

Ontology structure

When I use this tool I get an ontology which structure is not the same as the structure shown, for example, in the ontology repository BioPortal. Is there anything I could do to get the same structure?

Warn when no stated relationships present (e.g. Australian edition)

Some in some editions of SNOMED CT the release archive contains no stated relationships.
In this case running the OWL conversion process or classification should fail with an informative message because these processes require stated relationships or axioms in order to run.

Incorrect OWL expression conversion?

Hi,

We came across a concept definition and its corresponding axiom, where the OWL toolkit creates an interesting axiom conversion as a result.

In the SNOMED CT Canadian Extension the authors created a concept definition as follows:

27841000087102 | Antigen of non-live Human alphaherpesvirus 3 (substance)

This concept is more general than the existing SNOMED International core concepts, hence they tried to "inject" this concept into the vaccine hierarchy as a super type to existing core concepts. Their first attempt was to add a SubClassOf OWL axiom to:

844580005 | Antigen of inactivated whole Human alphaherpesvirus 3 (substance)

0199b0ce-50c0-cae8-b314-34c558501195 20200930 1 20621000087109 733073007 844580005 SubClassOf(:844580005 :27841000087102)

But given that modifying core content is not advised, they inactivated the above member and created a GCI axiom in the latest 2021-09-30 release:

3a6f0f27-adf8-50a6-af49-4488bf1884f7 20210930 1 20621000087109 733073007 27841000087102 SubClassOf(:844580005 :27841000087102)

The official SNOMED OWL Guide does not cover whether the referenced component selection for this case was correct or not, because it has the following statements:

  1. If an axiom is in the form of SubClassOf(C D) or EquivalentClasses(C D) where concept C is a precoordinated concept, the concept ID of C should be the referencedComponentId for this axiom.

  2. If an axiom is in the form of SubClassOf(C D) where concept C is NOT a precoordinated concept and D is a precoordinated concept. This is a General Concept Inclusion (GCI) axiom. Because concept C is a sufficient but not necessary condition for concept D, the concept ID of D should be the referencedComponentId for this axiom.

  3. If an axiom is in the form of SubClassOf(C D) or EquivalentClasses(C D) where both C and D are NOT precoordinated concepts, this is a GCI axiom and the referencedComponentId should be 733929006 |General concept inclusion axiom (metadata)|.

Case 1) was applicable for the old OWL axiom member, but not for the new GCI solution. Case 2) and 3) is also not applicable to this case because both concepts are precoordinated.

The reason why we are filing this issue here is because potentially there is a technical aspect of it. If someone wants to convert this OWL expression 27841000087102 SubClassOf(:844580005 :27841000087102) with the OWL Toolkit, the result will be a normal class axiom instead of a GCI:

if (leftNamedClass != null) {
// Normal axiom
representation.setLeftHandSideNamedConcept(leftNamedClass);
representation.setRightHandSideRelationships(rightNamedClass != null ? newSingleIsARelationship(rightNamedClass) : getRelationships(rightHandExpression));
} else {
// GCI
representation.setLeftHandSideRelationships(getRelationships(leftHandExpression));
if (rightNamedClass == null) {
throw new ConversionException("Axioms with expressions on both sides are not supported.");
}
representation.setRightHandSideNamedConcept(rightNamedClass);
}

This axiom will then be converted into a normal class axiom again in Snowstorm:

https://github.com/IHTSDO/snowstorm/blob/d5f717a8f82d288c7a4253d05d4c185ff3b1d9c4/src/main/java/org/snomed/snowstorm/core/data/services/ConceptService.java#L473-L481

which will eventually lead to an incorrect representation in the official SNOMED CT Browser:

image

and an invalid SNOMED CT Concept diagram:

image

because the OWL member is not represented as a GCI axiom in neither of the above.

We were able to find traces of a rule that an axiom is a GCI axiom only when the left hand side is an expression, i.e. there is at least an IS-A and another attribute, but we couldn't verify that with an official editorial guideline entry.

See here:
https://github.com/IHTSDO/snomed-drools-rules/blob/bf04075829cee4476a7670148d6f0dbac5d258bb/common-authoring/relationships/gci-axiom/GCIContainsParentAndAttribute.drl

and here:
9a234a9

Our questions are the following:

  • shouldn't it be the responsibility of the toolkit to raise awareness of such axioms instead of silently converting them to normal class axioms?
  • if it is rather the responsibility of third party implementers, then where can one find an official documentation about this rule regarding GCIs?

Any information regarding the topic is much appreciated!

Regards,

Gábor

NPE when registering acceptability of inactive/missing descriptions

In #30 (comment), @kaicode writes:

This line is causing the null pointer:
https://github.com/IHTSDO/snomed-owl-toolkit/blob/master/src/main/java/org/snomed/otf/owltoolkit/taxonomy/SnomedTaxonomy.java#L259

This indicates that there is an active language reference set entry for a description which
does not exist or is not active. [...] they may be referencing content which is active
January but no longer active in the July package you are using.

Could this be a "soft" error instead, that is reported with the UUID/effective time of the offending reference set member? It seems like in the current release, such exceptions result in dialect detection being broken for exported RDFS and SKOS labels (they still get tagged with the language code of the description, eg. "en", but not with eg. "en-us" if the US refset is the one having problems).

This can happen if users want to take a look at the OWL representation while doing an upgrade, where references to inactive components might not be fully cleaned up.

Concrete domain support?

It seems like there is no support for concrete domains, although it is used in a number of SNOMED CT extensions.

Please see this RF2 snippet from the SG extension as an example:

id	effectiveTime	active	moduleId	refsetId	referencedComponentId	uomId	operatorId	attributeName	dataValue	characteristicTypeId
8ff7f118-a423-4db8-b2c7-0fdcd3a18b27	20150519	1	195941000132101	20021000132103	73827721000133107		276136004	doseFormTradeSynonym	Jelly	900000000000227009

Feel free to reach out if you need more examples or information! Thank you!

Build issue - main jar includes dependencies.

The main jar file created by this project includes the classes of all the dependent jars. This is the output from the maven-assembly-plugin. The main project jar should not be replaced by this executable jar because it makes this project unsuitable for use as a dependency.

See build output:
[INFO] --- maven-assembly-plugin:2.6:single (default) @ snomed-owl-toolkit --- [INFO] Building jar: /Users/kai/c/snomed-owl-toolkit/target/snomed-owl-toolkit-1.3.0-executable.jar [WARNING] Configuration options: 'appendAssemblyId' is set to false, and 'classifier' is missing. Instead of attaching the assembly file: /Users/kai/c/snomed-owl-toolkit/target/snomed-owl-toolkit-1.3.0-executable.jar, it will become the file for main project artifact.

Contents of release-zipfile

Two questions:

Which are the constraints regarding contents of the Snapshot.zip?

I get a 0-byte owl-files, but seemingly no errors:

Creating Ontology using the following options:
Snapshot archives: [SnomedCT_InternationalRF2.zip]
Delta archive: -none-
Ontology URI: http://snomed.info/sct/900000000000207008
Ontology Version: 20180501
Include FSN Annotations: true

2018-05-01 14:51:15,037 [INFO ] [main] org.snomed.otf.owltoolkit.conversion.RF2ToOWLService - Loading RF2 files

I've tried both zipping the "Snapshot" folder from the release, as well as the "Terminology folder". Both gave the same result.

rf2-to-owl fails with July 2021 International Beta

Hi,

I'm not sure if this is a converter or data issue, but when I try to transform the Beta July 2021 Release RF2 to OWL with version 3.0.3 the following stacktrace is returned.

Should I try a different command, or possibly a previous version?

Thanks.

-bash-4.2$ java -jar snomed-owl-toolkit-3.0.3-executable.jar -rf2-to-owl -rf2-snapshot-archives xSnomedCT_InternationalRF2_BETA_20210731T120000Z.zip

Creating Ontology using the following options:
  Snapshot archives: [xSnomedCT_InternationalRF2_BETA_20210731T120000Z.zip]
  Delta archive: -none-
  Ontology URI: http://snomed.info/sct/900000000000207008
  Ontology Version: 20210611
  Include Description Annotations: true

2021-06-11 10:42:46,413 [INFO  ] [main] org.snomed.otf.owltoolkit.conversion.RF2ToOWLService - Loading RF2 files
java.lang.IllegalStateException: No Snapshot files found in archive: /tmp/temp-rf2-unzip745347076429886198/1/release.zip
        at org.ihtsdo.otf.snomedboot.ReleaseImporter.unzipRelease(ReleaseImporter.java:140)
        at org.ihtsdo.otf.snomedboot.ReleaseImporter.loadEffectiveSnapshotReleaseFileStreams(ReleaseImporter.java:83)
        at org.snomed.otf.owltoolkit.taxonomy.SnomedTaxonomyBuilder.build(SnomedTaxonomyBuilder.java:121)
        at org.snomed.otf.owltoolkit.taxonomy.SnomedTaxonomyBuilder.build(SnomedTaxonomyBuilder.java:82)
        at org.snomed.otf.owltoolkit.conversion.RF2ToOWLService.convertRF2ArchiveToOWL(RF2ToOWLService.java:45)
        at org.snomed.otf.owltoolkit.Application.rf2ToOwl(Application.java:145)
        at org.snomed.otf.owltoolkit.Application.run(Application.java:88)
        at org.snomed.otf.owltoolkit.Application.main(Application.java:53)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)
        at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)
        at org.springframework.boot.loader.Launcher.launch(Launcher.java:50)
        at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51)

Thank you! 15 minutes from access to licensed snapshot to a queryable database.

I just wanted to thank you for making SnoMed available in OWL. It is really nice to work with this tool, to go from really difficult to use files to one single ontology rdf file that can be used in minutes for real queries on difficult data.

I used your tool as documented and then converted into rdf/turtle using robot
robot convert --input ontology-2020-10-14_15-36-56.owl --format ttl --output ontology-2020-10-14_15-36-56.ttl

So lots of thanks!

Property chains are not used during normal form calculation.

In the current International Edition authoring cycle (July 2018) the attributes which take part in property chains also have transitive behaviour. This is masking the fact that the current normal form calculation uses transitive properties but does not use property chains for transitive reduction.
The normal form calculation should use property chains. Properties with the transitive behaviour should be considered as a property chain involving just that property.

Perpetual classification result due to inconsistent normalisation of transitive attributes

We have found an undesirable behaviour where in certain circumstances when using the new transitive properties the classification relationship normalisation process produces inconsistent results across multiple runs. This leads to relationships being created and retired again and again.

The issue seems to occur when a set of three inherited attributes can subsume each in a different way when using the class or transitive property hierarchies.

Extension relationships not made inactive when concept made inactive in dependant module

The classification service/snomed-owl-toolkit is making inferred relationships inactive when the source or destination concept becomes inactive but only if the concept inactivation is in the RF2 delta of the current authoring cycle. When classifying an extension if an international concept has been made inactive then the inactive state is in a snapshot so is not picked up by the classification service.

This could lead to active inferred relationships in an extension pointing to inactive international concepts.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.