From b98759b2e737d80e4ebf1e2f60e143d6b62bfa6a Mon Sep 17 00:00:00 2001 From: francescalb Date: Sun, 20 Nov 2022 22:12:26 +0100 Subject: [PATCH 1/3] New concepts allowed even if name alrady exists in imported ontologies --- ontopy/excelparser.py | 34 +++++++++------------ tests/test_excelparser/fromexcelonto.ttl | 6 +++- tests/test_excelparser/onto.xlsx | Bin 19381 -> 22265 bytes tests/test_excelparser/test_excelparser.py | 6 ++-- 4 files changed, 23 insertions(+), 23 deletions(-) diff --git a/ontopy/excelparser.py b/ontopy/excelparser.py index 6cc8e99f3..3c8fdd5f4 100755 --- a/ontopy/excelparser.py +++ b/ontopy/excelparser.py @@ -170,10 +170,6 @@ def create_ontology_from_pandas( # pylint:disable=too-many-locals,too-many-bran onto, catalog = get_metadata_from_dataframe( metadata, base_iri, imports=imports ) - # Get a set of imported concepts - imported_concepts = { - concept.prefLabel.first() for concept in onto.get_entities() - } # Set given or default base_iri if base_iri_from_metadata is False. if not base_iri_from_metadata: @@ -206,20 +202,21 @@ def create_ontology_from_pandas( # pylint:disable=too-many-locals,too-many-bran name = row["prefLabel"] try: onto.get_by_label(name) - if not force: - raise ExcelError( - f'Concept "{name}" already in ontology' + if any( + item.iri.startswith(onto.base_iri) + for item in onto.get_by_label_all(name) + ): + if not force: + raise ExcelError( + f'Concept "{name}" already in ontology' + ) + warnings.warn( + f'Ignoring concept "{name}" since it is already in ' + "the ontology." ) - warnings.warn( - f'Ignoring concept "{name}" since it is already in ' - "the ontology." - ) - concepts_with_errors["already_defined"].append(name) - # What to do if we want to add info to this concept? - # Should that be not allowed? - # If it should be allowed the index has to be added to - # added_rows - continue + concepts_with_errors["already_defined"].append(name) + continue + concepts_with_errors["in_imported_ontologies"].append(name) except (ValueError, TypeError) as err: warnings.warn( f'Ignoring concept "{name}". ' @@ -389,9 +386,6 @@ def create_ontology_from_pandas( # pylint:disable=too-many-locals,too-many-bran concepts_with_errors = { key: set(value) for key, value in concepts_with_errors.items() } - concepts_with_errors["in_imported_ontologies"] = concepts_with_errors[ - "already_defined" - ].intersection(imported_concepts) return onto, catalog, concepts_with_errors diff --git a/tests/test_excelparser/fromexcelonto.ttl b/tests/test_excelparser/fromexcelonto.ttl index 304994288..5ded0b43f 100644 --- a/tests/test_excelparser/fromexcelonto.ttl +++ b/tests/test_excelparser/fromexcelonto.ttl @@ -77,7 +77,7 @@ rdfs:comment "Used for our own special purpose"@en ; rdfs:subClassOf [ a owl:Restriction ; owl:onProperty emmo:EMMO_17e27c22_37e1_468c_9dd7_95e137f73e7f ; - owl:someValuesFrom emmo:EMMO_eb77076b_a104_42ac_a065_798b2d2809ad ], + owl:someValuesFrom :EMMO_8b758694-7dd3-547a-8589-a835c15a0fb2 ], emmo:EMMO_3397f270_dfc1_4500_8f6f_4d0d85ac5f71 ; core:prefLabel "SpecialMolecule"@en . @@ -104,6 +104,10 @@ rdfs:subClassOf :EMMO_9fa9ca88-2891-538a-a8dd-ccb8a08b9890 ; core:prefLabel "SpatialPattern"@en . +:EMMO_8b758694-7dd3-547a-8589-a835c15a0fb2 a owl:Class ; + rdfs:subClassOf emmo:EMMO_eb77076b_a104_42ac_a065_798b2d2809ad ; + core:prefLabel "Atom"@en . + :EMMO_1b2bfe71-5da9-5c46-b137-be45c3e3f9c3 a owl:Class ; emmo:EMMO_967080e5_2f42_4eb2_a3a9_c58143e835f9 "NEED elucidation"@en ; rdfs:subClassOf emmo:EMMO_649bf97b_4397_4005_90d9_219755d92e34 ; diff --git a/tests/test_excelparser/onto.xlsx b/tests/test_excelparser/onto.xlsx index 10bbfc52718c1cefe7790c48ae4ae308fefcd738..3ff88b99403bbab6d9ddecb4eb6b5d83b061f245 100755 GIT binary patch delta 12938 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 delta 10177 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 CPC)|z diff --git a/tests/test_excelparser/test_excelparser.py b/tests/test_excelparser/test_excelparser.py index 00e526a2a..34c069d4b 100644 --- a/tests/test_excelparser/test_excelparser.py +++ b/tests/test_excelparser/test_excelparser.py @@ -15,9 +15,10 @@ def test_excelparser(repo_dir: "Path") -> None: onto = get_ontology(str(ontopath)).load() xlspath = repo_dir / "tests" / "test_excelparser" / "onto.xlsx" ontology, catalog, errors = create_ontology_from_excel(xlspath, force=True) + assert onto == ontology - assert errors["already_defined"] == {"Atom", "Pattern"} + assert errors["already_defined"] == {"Pattern"} assert errors["in_imported_ontologies"] == {"Atom"} assert errors["wrongly_defined"] == {"Temporal Boundary"} assert errors["missing_parents"] == {"SpatioTemporalBoundary"} @@ -27,7 +28,8 @@ def test_excelparser(repo_dir: "Path") -> None: "SubgrainBoundary", } assert errors["nonadded_concepts"] == { - "Atom", "Pattern", "Temporal Boundary", } + + assert len(ontology.get_by_label_all("Atom")) == 2 From 1f96c1d514b75b7e7836b97703a402ce32d6b516 Mon Sep 17 00:00:00 2001 From: francescalb Date: Sun, 20 Nov 2022 22:22:35 +0100 Subject: [PATCH 2/3] Updated docstring --- ontopy/excelparser.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ontopy/excelparser.py b/ontopy/excelparser.py index 3c8fdd5f4..d0077ba1b 100755 --- a/ontopy/excelparser.py +++ b/ontopy/excelparser.py @@ -82,12 +82,12 @@ def create_ontology_from_excel( # pylint: disable=too-many-arguments following keys: - "already_defined": These are concepts that are already in the - ontology, either because they were already added in a + ontology, because they were already added in a previous line of the excelfile/pandas dataframe, or because - it is already defined in the imported ontologies. + it is already defined in an imported ontology with the same + base_iri as the newly created ontology. - "in_imported_ontologies": Concepts that are defined in the excel, but already exist in the imported ontologies. - This is a subset of the 'already_defined'. - "wrongly_defined": Concepts that are given an invalid prefLabel (e.g. with a space in the name). - "missing_parents": Concepts that are missing parents. From 50ebd64f7ff0d1cb704ff5bf1ca206ddebfaf7fc Mon Sep 17 00:00:00 2001 From: francescalb Date: Wed, 23 Nov 2022 09:45:52 +0100 Subject: [PATCH 3/3] Changed to check if that specific enity exists, not that the is starts with a given base_iri --- ontopy/excelparser.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/ontopy/excelparser.py b/ontopy/excelparser.py index d0077ba1b..5e7288844 100755 --- a/ontopy/excelparser.py +++ b/ontopy/excelparser.py @@ -202,10 +202,7 @@ def create_ontology_from_pandas( # pylint:disable=too-many-locals,too-many-bran name = row["prefLabel"] try: onto.get_by_label(name) - if any( - item.iri.startswith(onto.base_iri) - for item in onto.get_by_label_all(name) - ): + if onto.world[onto.base_iri + name]: if not force: raise ExcelError( f'Concept "{name}" already in ontology'