diff --git a/src/oaklib/implementations/funowl/funowl_implementation.py b/src/oaklib/implementations/funowl/funowl_implementation.py index f54499e83..8d8cbb556 100644 --- a/src/oaklib/implementations/funowl/funowl_implementation.py +++ b/src/oaklib/implementations/funowl/funowl_implementation.py @@ -1,6 +1,6 @@ import logging from dataclasses import dataclass -from typing import Any, Iterable, List, Mapping, Optional +from typing import Any, Iterable, List, Mapping, Optional, Union import rdflib from funowl import ( @@ -27,7 +27,7 @@ from oaklib.interfaces.basic_ontology_interface import LANGUAGE_TAG from oaklib.interfaces.owl_interface import OwlInterface, ReasonerConfiguration from oaklib.interfaces.patcher_interface import PatcherInterface -from oaklib.types import CURIE, PRED_CURIE +from oaklib.types import CURIE, PRED_CURIE, URI @dataclass @@ -97,7 +97,7 @@ def label(self, curie: CURIE, lang: Optional[LANGUAGE_TAG] = None) -> str: else: raise ValueError(f"Label must be literal, not {label}") - def entities(self, filter_obsoletes=True, owl_type=None) -> Iterable[CURIE]: + def entities(self, filter_obsoletes=True, owl_type=None) -> Iterable[Union[URI, CURIE]]: for ax in self._ontology.axioms: if isinstance(ax, Declaration): uri = ax.v.full_uri(self.functional_writer.g) diff --git a/src/oaklib/implementations/kgx/kgx_implementation.py b/src/oaklib/implementations/kgx/kgx_implementation.py index 77049c5f4..78344a145 100644 --- a/src/oaklib/implementations/kgx/kgx_implementation.py +++ b/src/oaklib/implementations/kgx/kgx_implementation.py @@ -4,7 +4,7 @@ from collections import defaultdict from dataclasses import dataclass, field from pathlib import Path -from typing import Any, Dict, Iterable, Iterator, List, Optional, Tuple, Type +from typing import Any, Dict, Iterable, Iterator, List, Optional, Tuple, Type, Union import rdflib import sqlalchemy.orm @@ -63,7 +63,7 @@ from oaklib.interfaces.semsim_interface import SemanticSimilarityInterface from oaklib.interfaces.summary_statistics_interface import SummaryStatisticsInterface from oaklib.interfaces.validator_interface import ValidatorInterface -from oaklib.types import CATEGORY_CURIE, CURIE, SUBSET_CURIE +from oaklib.types import CATEGORY_CURIE, CURIE, SUBSET_CURIE, URI from oaklib.utilities.identifier_utils import synonym_type_code_from_curie from oaklib.utilities.iterator_utils import chunk @@ -347,7 +347,7 @@ def is_postgres(self): # TODO return False - def entities(self, filter_obsoletes=True, owl_type=None) -> Iterable[CURIE]: + def entities(self, filter_obsoletes=True, owl_type=None) -> Iterable[Union[URI, CURIE]]: q = self.session.query(Node.id) logging.debug(f"Entities Query: {q}") for row in q: diff --git a/src/oaklib/implementations/obograph/obograph_implementation.py b/src/oaklib/implementations/obograph/obograph_implementation.py index 285dce3b5..dc8de3d55 100644 --- a/src/oaklib/implementations/obograph/obograph_implementation.py +++ b/src/oaklib/implementations/obograph/obograph_implementation.py @@ -151,7 +151,7 @@ def _all_relationships(self) -> Iterator[RELATIONSHIP]: # directionality is lost in OboGraph representation yield self._tuple_to_curies((n1, EQUIVALENT_CLASS, n2)) - def entities(self, filter_obsoletes=True, owl_type=None) -> Iterable[CURIE]: + def entities(self, filter_obsoletes=True, owl_type=None) -> Iterable[Union[URI, CURIE]]: od = self.obograph_document for g in od.graphs: for n in g.nodes: diff --git a/src/oaklib/implementations/pronto/pronto_implementation.py b/src/oaklib/implementations/pronto/pronto_implementation.py index f4da44b7d..82a342975 100644 --- a/src/oaklib/implementations/pronto/pronto_implementation.py +++ b/src/oaklib/implementations/pronto/pronto_implementation.py @@ -74,7 +74,7 @@ from oaklib.interfaces.taxon_constraint_interface import TaxonConstraintInterface from oaklib.interfaces.validator_interface import ValidatorInterface from oaklib.resource import OntologyResource -from oaklib.types import CURIE, SUBSET_CURIE +from oaklib.types import CURIE, SUBSET_CURIE, URI from oaklib.utilities.axioms.logical_definition_utilities import ( logical_definition_matches, ) @@ -293,7 +293,7 @@ def _create_pred(self, curie: CURIE, exist_ok=True): else: return self.wrapped_ontology.create_relationship(curie) - def entities(self, filter_obsoletes=True, owl_type=None) -> Iterable[CURIE]: + def entities(self, filter_obsoletes=True, owl_type=None) -> Iterable[Union[URI, CURIE]]: for t in self.wrapped_ontology.terms(): if filter_obsoletes and t.obsolete: continue diff --git a/src/oaklib/implementations/simpleobo/simple_obo_implementation.py b/src/oaklib/implementations/simpleobo/simple_obo_implementation.py index 61b48f461..91b46dc4b 100644 --- a/src/oaklib/implementations/simpleobo/simple_obo_implementation.py +++ b/src/oaklib/implementations/simpleobo/simple_obo_implementation.py @@ -120,7 +120,7 @@ from oaklib.interfaces.taxon_constraint_interface import TaxonConstraintInterface from oaklib.interfaces.validator_interface import ValidatorInterface from oaklib.resource import OntologyResource -from oaklib.types import CURIE, PRED_CURIE, SUBSET_CURIE +from oaklib.types import CURIE, PRED_CURIE, SUBSET_CURIE, URI from oaklib.utilities.axioms.logical_definition_utilities import ( logical_definition_matches, ) @@ -255,7 +255,7 @@ def _all_entailed_relationships(self): reasoner = RelationGraphReasoner(self) yield from reasoner.entailed_edges() - def entities(self, filter_obsoletes=True, owl_type=None) -> Iterable[CURIE]: + def entities(self, filter_obsoletes=True, owl_type=None) -> Iterable[Union[URI, CURIE]]: od = self.obo_document for s_id, s in od.stanzas.items(): if filter_obsoletes: diff --git a/src/oaklib/implementations/sparql/abstract_sparql_implementation.py b/src/oaklib/implementations/sparql/abstract_sparql_implementation.py index 743917a73..b29185ed3 100644 --- a/src/oaklib/implementations/sparql/abstract_sparql_implementation.py +++ b/src/oaklib/implementations/sparql/abstract_sparql_implementation.py @@ -213,7 +213,7 @@ def uri_to_curie(self, uri: URI, strict=True) -> Optional[CURIE]: return uri.replace("_", ":") return uri - def entities(self, filter_obsoletes=True, owl_type=None) -> Iterable[CURIE]: + def entities(self, filter_obsoletes=True, owl_type=None) -> Iterable[Union[URI, CURIE]]: query = SparqlQuery(select=["?s"], distinct=True, where=["?s a ?cls", "FILTER (isIRI(?s))"]) if owl_type: query.where.append(f"?s a {self.curie_to_sparql(owl_type)}") diff --git a/src/oaklib/implementations/sqldb/sql_implementation.py b/src/oaklib/implementations/sqldb/sql_implementation.py index 1838a2aa0..53e41f159 100644 --- a/src/oaklib/implementations/sqldb/sql_implementation.py +++ b/src/oaklib/implementations/sqldb/sql_implementation.py @@ -30,7 +30,7 @@ from linkml_runtime.utils.metamodelcore import URIorCURIE from semsql.sqla.semsql import ( # HasMappingStatement, AnnotationPropertyNode, - Base, + Base,URIorCURIE ClassNode, DeprecatedNode, Edge, @@ -150,7 +150,7 @@ from oaklib.interfaces.summary_statistics_interface import SummaryStatisticsInterface from oaklib.interfaces.taxon_constraint_interface import TaxonConstraintInterface from oaklib.interfaces.validator_interface import ValidatorInterface -from oaklib.types import CATEGORY_CURIE, CURIE, SUBSET_CURIE +from oaklib.types import CATEGORY_CURIE, CURIE, SUBSET_CURIE, URI from oaklib.utilities.axioms.logical_definition_utilities import ( logical_definition_matches, ) @@ -169,6 +169,7 @@ from oaklib.utilities.iterator_utils import chunk from oaklib.utilities.mapping.sssom_utils import inject_mapping_sources + SUBJECT_REL_KEY = Tuple[CURIE, Optional[List[PRED_CURIE]], Tuple] @@ -407,7 +408,7 @@ def languages(self) -> Iterable[LANGUAGE_TAG]: if row.language: yield row.language - def entities(self, filter_obsoletes=True, owl_type=None) -> Iterable[CURIE]: + def entities(self, filter_obsoletes=True, owl_type=None) -> Iterable[Union[URI, CURIE]]: # TODO: figure out how to pass through ESCAPE at SQL Alchemy level # s = text('SELECT id FROM class_node WHERE id NOT LIKE "\_:%" ESCAPE "\\"') # noqa W605 q = self.session.query(Node) diff --git a/src/oaklib/interfaces/basic_ontology_interface.py b/src/oaklib/interfaces/basic_ontology_interface.py index 1f45a82e5..872ef9861 100644 --- a/src/oaklib/interfaces/basic_ontology_interface.py +++ b/src/oaklib/interfaces/basic_ontology_interface.py @@ -603,7 +603,7 @@ def ontology_metadata_map(self, ontology: CURIE) -> METADATA_MAP: f"ontology_metadata_map() method not implemented for {self.__class__.__name__}" ) - def entities(self, filter_obsoletes=True, owl_type=None) -> Iterable[CURIE]: + def entities(self, filter_obsoletes=True, owl_type=None) -> Iterable[Union[URI, CURIE]]: """ Yields all known entity CURIEs.