modos.codes#

Utilities to automatically find / recommend terminology codes from text.

Attributes#

Classes#

Code

CodeMatcher

Base class for protocol classes.

LocalCodeMatcher

Find ontology codes for a given text by running a local term matcher.

RemoteCodeMatcher

Find ontology codes for a given text relying on a remote term matcher.

Functions#

get_slot_matcher(slot[, endpoint])

Instantiates a code matcher based on input slot name.

get_slot_matchers([endpoint])

Instantiates a code matcher for each slot. If the endpoint is provided, remote matchers are used.

Module Contents#

modos.codes.SLOT_TERMINOLOGIES[source]#
class modos.codes.Code[source]#
label: str[source]#
uri: str[source]#
class modos.codes.CodeMatcher[source]#

Bases: Protocol

Base class for protocol classes.

Protocol classes are defined as:

class Proto(Protocol):
    def meth(self) -> int:
        ...

Such classes are primarily used with static type checkers that recognize structural subtyping (static duck-typing).

For example:

class C:
    def meth(self) -> int:
        return 0

def func(x: Proto) -> int:
    return x.meth()

func(C())  # Passes static type check

See PEP 544 for details. Protocol classes decorated with @typing.runtime_checkable act as simple-minded runtime protocols that check only the presence of given attributes, ignoring their type signatures. Protocol classes can be generic, they are defined as:

class GenProto[T](Protocol):
    def meth(self) -> T:
        ...
endpoint: str | None[source]#
slot: str[source]#
top: int[source]#
find_codes(query)[source]#
Parameters:

query (str)

Return type:

list[Code]

class modos.codes.LocalCodeMatcher(slot, top=50)[source]#

Bases: CodeMatcher

Find ontology codes for a given text by running a local term matcher.

Parameters:
endpoint = None[source]#
slot[source]#
top[source]#
find_codes(query)[source]#
Parameters:

query (str)

Return type:

list[Code]

class modos.codes.RemoteCodeMatcher(slot, endpoint, top=50)[source]#

Bases: CodeMatcher

Find ontology codes for a given text relying on a remote term matcher.

Parameters:
endpoint[source]#
slot[source]#
top[source]#
find_codes(query)[source]#
Parameters:

query (str)

Return type:

list[Code]

modos.codes.get_slot_matcher(slot, endpoint=None)[source]#

Instantiates a code matcher based on input slot name.

Parameters:
  • slot (str)

  • endpoint (Optional[str])

Return type:

CodeMatcher

modos.codes.get_slot_matchers(endpoint=None)[source]#

Instantiates a code matcher for each slot. If the endpoint is provided, remote matchers are used.

Parameters:

endpoint (Optional[str])

Return type:

dict[str, CodeMatcher]