Source code for kif_lib.model.annotation_record
# Copyright (C) 2023-2024 IBM Corp.
# SPDX-License-Identifier: Apache-2.0
from typing import Optional
from .kif_object import KIF_Object
from .rank import Normal, Rank
from .reference_record_set import ReferenceRecordSet, TReferenceRecordSet
from .snak_set import SnakSet, TSnakSet
[docs]
class AnnotationRecord(KIF_Object):
"""Annotation record (qualifiers, references, and rank).
Parameters:
arg1: Qualifiers.
arg2: References.
arg3: Rank.
"""
[docs]
def __init__(
self,
arg1: Optional[TSnakSet] = None,
arg2: Optional[TReferenceRecordSet] = None,
arg3: Optional[Rank] = None
):
super().__init__(arg1, arg2, arg3)
def _preprocess_arg(self, arg, i):
if i == 1:
return self._preprocess_optional_arg_snak_set(arg, i, SnakSet())
elif i == 2:
return self._preprocess_optional_arg_reference_record_set(
arg, i, ReferenceRecordSet())
elif i == 3:
return self._preprocess_optional_arg_rank(arg, i, Normal)
else:
return self._should_not_get_here()
@property
def qualifiers(self) -> SnakSet:
"""Annotated qualifiers."""
return self.get_qualifiers()
[docs]
def get_qualifiers(self) -> SnakSet:
"""Gets annotated qualifiers.
Returns:
Annotated qualifiers.
"""
return self.args[0]
@property
def references(self) -> ReferenceRecordSet:
"""Annotated references."""
return self.get_references()
[docs]
def get_references(self) -> ReferenceRecordSet:
"""Gets annotated references.
Returns:
Annotated references.
"""
return self.args[1]
@property
def rank(self) -> Rank:
"""Annotated rank."""
return self.get_rank()
[docs]
def get_rank(self) -> Rank:
"""Gets annotated rank.
Returns:
Annotated rank.
"""
return self.args[2]