Filter

class Filter(subject: TFingerprint | None = None, property: TFingerprint | None = None, value: TFingerprint | None = None, snak_mask: TSnakMask | None = None, subject_mask: TDatatypeMask | None = None, property_mask: TDatatypeMask | None = None, value_mask: TDatatypeMask | None = None, rank_mask: TRankMask | None = None, language: TTextLanguage | None = None, annotated: bool | None = None)[source]

Bases: KIF_Object

Criterion for matching statements.

A statement matches a filter if:

  • Its subject matches the filter subject.

  • Its property matches the filter property.

  • Its value (if any) matches the filter value.

  • Its snak type matches the filter snak_mask.

  • Its subject type matches the filter subject_mask.

  • Its property type matches the filter property_mask

  • Its value type (if any) matches the filter value_mask.

  • Its rank (if any) matches the filter rank_mask.

  • Its value language (if any) matches the filter language.

Parameters:
  • subject – Subject fingerprint.

  • property – Property fingerprint.

  • value – Value fingerprint.

  • snak_mask – Snak mask.

  • subject_mask – Datatype mask.

  • property_mask – Datatype mask.

  • value_mask – Datatype mask.

  • rank_mask – Rank mask.

  • language – Language.

  • annotated – Annotated flag.

class DatatypeMask(*values)[source]

Bases: Flags

Mask for concrete datatype classes.

ITEM = 1

Mask for ItemDatatype.

PROPERTY = 2

Mask for PropertyDatatype.

LEXEME = 4

Mask for LexemeDatatype.

IRI = 8

Mask for IRI_Datatype.

TEXT = 16

Mask for TextDatatype.

STRING = 32

Mask for StringDatatype.

EXTERNAL_ID = 64

Mask for ExternalIdDatatype.

QUANTITY = 128

Mask for QuantityDatatype.

TIME = 256

Mask for TimeDatatype.

VALUE = 511

Mask for all datatype classes.

ENTITY = 7

Mask for entity datatype classes.

DATA_VALUE = 504

Mask for data-value datatype classes.

SHALLOW_DATA_VALUE = 120

Mask for shallow data-value datatype classes.

DEEP_DATA_VALUE = 384

Mask for deep data-value datatype classes.

ALL = 511

Mask for all datatype classes.

classmethod check(arg: Any, function: Callable[[...], Any] | str | None = None, name: str | None = None, position: int | None = None) DatatypeMask[source]

Coerces arg into an instance of this class.

If arg cannot be coerced, raises an error.

Parameters:
  • arg – Value.

  • function – Function or function name.

  • name – Argument name.

  • position – Argument position.

Returns:

Flags.

match(datatype: Datatype | type[Datatype] | type[Value]) bool[source]

Tests whether datatype mask matches datatype.

Parameters:

datatype – Datatype.

Returns:

True if successful; False otherwise.

VALUE: Final[DatatypeMask] = 511

Mask for value datatypes.

ENTITY: Final[DatatypeMask] = 7

Mask for entity datatypes.

ITEM: Final[DatatypeMask] = 1

Mask for ItemDatatype.

PROPERTY: Final[DatatypeMask] = 2

Mask for PropertyDatatype.

LEXEME: Final[DatatypeMask] = 4

Mask for LexemeDatatype.

DATA_VALUE: Final[DatatypeMask] = 504

Mask for data-value datatypes.

SHALLOW_DATA_VALUE: Final[DatatypeMask] = 120

Mask for shallow-data-value datatypes.

IRI: Final[DatatypeMask] = 8

Mask for IRI_Datatype.

TEXT: Final[DatatypeMask] = 16

Mask for TextDatatype.

STRING: Final[DatatypeMask] = 32

Mask for StringDatatype.

EXTERNAL_ID: Final[DatatypeMask] = 64

Mask for ExternalIdDatatype.

DEEP_DATA_VALUE: Final[DatatypeMask] = 384

Mask for deep-data-value datatypes.

QUANTITY: Final[DatatypeMask] = 128

Mask for QuantityDatatype.

TIME: Final[DatatypeMask] = 256

Mask for TimeDatatype.

TDatatypeMask

Type alias of DatatypeMask.

alias of DatatypeMask | Datatype | type[Datatype] | type[Value] | int

class RankMask(*values)[source]

Bases: Flags

Mask for concrete rank classes.

PREFERRED = 1

Mask for PreferredRank.

NORMAL = 2

Mask for NormalRank.

DEPRECATED = 4

Mask for DeprecatedRank.

ALL = 7

Mask for all rank classes.

classmethod check(arg: Any, function: Callable[[...], Any] | str | None = None, name: str | None = None, position: int | None = None) RankMask[source]

Coerces arg into an instance of this class.

If arg cannot be coerced, raises an error.

Parameters:
  • arg – Value.

  • function – Function or function name.

  • name – Argument name.

  • position – Argument position.

Returns:

Flags.

match(rank: Rank | type[Rank]) bool[source]

Tests whether rank mask matches rank.

Parameters:

rank – Rank.

Returns:

True if successful; False otherwise.

PREFERRED: Final[RankMask] = 1

Mask for PreferredRank.

NORMAL: Final[RankMask] = 2

Mask for NormalRank.

DEPRECATED: Final[RankMask] = 4

Mask for DeprecatedRank.

TRankMask

Type alias of RankMask.

alias of RankMask | Rank | type[Rank] | int

class SnakMask(*values)[source]

Bases: Flags

Mask for concrete snak classes.

VALUE_SNAK = 1

Mask for ValueSnak.

SOME_VALUE_SNAK = 2

Mask for SomeValueSnak.

NO_VALUE_SNAK = 4

Mask for NoValueSnak.

ALL = 7

Mask for all snak classes.

classmethod check(arg: Any, function: Callable[[...], Any] | str | None = None, name: str | None = None, position: int | None = None) SnakMask[source]

Coerces arg into an instance of this class.

If arg cannot be coerced, raises an error.

Parameters:
  • arg – Value.

  • function – Function or function name.

  • name – Argument name.

  • position – Argument position.

Returns:

Flags.

match(snak: TSnak) bool[source]

Tests whether snak mask matches snak.

Parameters:

snak – Snak.

Returns:

True if successful; False otherwise.

VALUE_SNAK: Final[SnakMask] = 1

Mask for ValueSnak.

SOME_VALUE_SNAK: Final[SnakMask] = 2

Mask for SomeValueSnak.

NO_VALUE_SNAK: Final[SnakMask] = 4

Mask for NoValueSnak.

TSnakMask

Type alias of SnakMask.

alias of SnakMask | type[Snak] | Snak | TValueSnak | int

classmethod from_snak(subject: TFingerprint | None = None, snak: Snak | None = None) Filter[source]

Creates filter from snak.

Parameters:
  • subject – Entity fingerprint.

  • snak – Snak.

Returns:

Filter.

classmethod from_statement(stmt: Statement) Filter[source]

Creates filter from statement.

Parameters:

stmt – Statement.

Returns:

Filter.

__init__(subject: TFingerprint | None = None, property: TFingerprint | None = None, value: TFingerprint | None = None, snak_mask: TSnakMask | None = None, subject_mask: TDatatypeMask | None = None, property_mask: TDatatypeMask | None = None, value_mask: TDatatypeMask | None = None, rank_mask: TRankMask | None = None, language: TTextLanguage | None = None, annotated: bool | None = None) None[source]
replace(subject: TFingerprint | KObj.TKEEP | None = <kif_lib.model.object.Object.KeepType object>, property: TFingerprint | KObj.TKEEP | None = <kif_lib.model.object.Object.KeepType object>, value: TFingerprint | KObj.TKEEP | None = <kif_lib.model.object.Object.KeepType object>, snak_mask: TSnakMask | KObj.TKEEP | None = <kif_lib.model.object.Object.KeepType object>, subject_mask: TDatatypeMask | KObj.TKEEP | None = <kif_lib.model.object.Object.KeepType object>, property_mask: TDatatypeMask | KObj.TKEEP | None = <kif_lib.model.object.Object.KeepType object>, value_mask: TDatatypeMask | KObj.TKEEP | None = <kif_lib.model.object.Object.KeepType object>, rank_mask: TRankMask | KObj.TKEEP | None = <kif_lib.model.object.Object.KeepType object>, language: TTextLanguage | KObj.TKEEP | None = <kif_lib.model.object.Object.KeepType object>, annotated: bool | KObj.TKEEP | None = <kif_lib.model.object.Object.KeepType object>) Self[source]

Shallow-copies object overwriting its arguments.

If argument is Object.KEEP in args, keeps the value of the corresponding argument in the resulting object.

Parameters:
  • args – Arguments.

  • kwargs – Keyword arguments (ignored).

Returns:

A shallow copy of object.

property subject: Fingerprint

The subject criterion of filter.

get_subject() Fingerprint[source]

Gets the subject criterion of filter.

Returns:

Fingerprint.

property property: Fingerprint

The property criterion of filter.

get_property() Fingerprint[source]

Gets the property criterion of filter.

Returns:

Fingerprint.

property value: Fingerprint

The value criterion of filter.

get_value() Fingerprint[source]

Gets the value criterion of filter.

Returns:

Fingerprint.

property snak_mask: SnakMask

The snak mask of filter.

get_snak_mask() SnakMask[source]

Gets the snak mask of filter.

Returns:

Snak mask.

property subject_mask: DatatypeMask

The subject mask of filter.

get_subject_mask() DatatypeMask[source]

Gets the subject mask of filter.

Returns:

Datatype mask.

property property_mask: DatatypeMask

The property mask of filter.

get_property_mask() DatatypeMask[source]

Gets the property mask of filter.

Returns:

Property mask.

property value_mask: DatatypeMask

The value mask of filter.

get_value_mask() DatatypeMask[source]

Gets the value mask of filter.

Returns:

Value mask.

property rank_mask: RankMask

The rank mask of filter.

get_rank_mask() RankMask[source]

Gets the rank mask of filter.

Returns:

Rank mask.

property language: str | None

The language criterion of filter.

get_language() str | None[source]

Gets the language criterion of filter.

Returns:

Language.

property annotated: bool

The annotated flag of filter.

get_annotated() bool[source]

Gets the annotated flag of filter.

This flag determines whether to fetch statement annotations.

Returns:

Annotated flag.

is_full() bool[source]

Tests whether filter is full.

A full filter matches anything.

Returns:

True if successful; False otherwise.

is_nonfull() bool[source]

Tests whether filter is non-full.

Returns:

True if successful; False otherwise.

is_empty() bool[source]

Tests whether filter is empty.

An empty filter matches nothing.

Returns:

True if successful; False otherwise.

is_nonempty() bool[source]

Tests whether filter is non-empty.

Returns:

True if successful; False otherwise.

combine(*others: Filter, operator: Literal['and', 'or'] = 'and') Filter[source]

Combines filter with others.

The operator (“and” or “or”) determines the logical operator to be used to combine the filters.

Parameters:
  • others – Filters.

  • operator – Logical operator.

Returns:

Filter.

match(stmt: TStatement) bool[source]

Tests whether filter shallow-matches statement.

Parameters:

stmt – Statement.

Returns:

True if successful; False otherwise.

normalize() Filter[source]

Reduces filter to a normal form.

Normalizes the fingerprint expressions in filter.

Returns:

Filter.