Module nafparserpy.layers.srl
Expand source code
from dataclasses import dataclass, field
from typing import List
from nafparserpy.layers.utils import AttributeGetter, create_node, ExternalReferenceHolder, IdrefGetter
from nafparserpy.layers.elements import Span, ExternalReferences
@dataclass
class Role(AttributeGetter, IdrefGetter, ExternalReferenceHolder):
"""Represents a predicate argument"""
id: str
span: Span
external_references: ExternalReferences = ExternalReferences([])
"""optional external references"""
attrs: dict = field(default_factory=dict)
"""optional attributes ('confidence' and 'status')"""
def __post_init__(self):
"""Copy compulsory attributes to `attrs` field"""
self.attrs.update({'id': self.id})
def node(self):
"""Create etree node from object"""
children = [self.span]
if self.external_references.items:
children.append(self.external_references)
return create_node('role', None, children, self.attrs)
@staticmethod
def object(node):
"""Create object from etree node"""
return Role(node.get('id'),
Span.object(node.find('span')),
ExternalReferences(ExternalReferences.object(node.find('externalReferences'))),
node.attrib)
@dataclass
class Predicate(AttributeGetter, IdrefGetter, ExternalReferenceHolder):
"""Represents a predicate"""
id: str
span: Span
external_references: ExternalReferences = ExternalReferences([])
"""optional external references"""
roles: List[Role] = field(default_factory=list)
"""optional list of predicate arguments"""
attrs: dict = field(default_factory=dict)
"""optional attributes ('confidence', 'status')"""
def __post_init__(self):
"""Copy compulsory attributes to `attrs` field"""
self.attrs.update({'id': self.id})
def node(self):
"""Create etree node from object"""
children = [self.span]
if self.external_references.items:
children.append(self.external_references)
if self.roles:
children.extend(self.roles)
return create_node('predicate', None, children, self.attrs)
@staticmethod
def object(node):
"""Create object from etree node"""
return Predicate(node.get('id'),
Span.object(node.find('span')),
ExternalReferences(ExternalReferences.object(node.find('externalReferences'))),
[Role.object(n) for n in node.findall('role')],
node.attrib)
@dataclass
class Srl:
"""SRL layer class"""
items: List[Predicate]
"""list of predicates"""
def node(self):
"""Create etree node from object"""
return create_node('srl', None, self.items, {})
@staticmethod
def object(node):
"""Create object from etree node"""
return [Predicate.object(n) for n in node]
Classes
class Predicate (id: str, span: Span, external_references: ExternalReferences = ExternalReferences(items=[]), roles: List[Role] = <factory>, attrs: dict = <factory>)
-
Represents a predicate
Expand source code
@dataclass class Predicate(AttributeGetter, IdrefGetter, ExternalReferenceHolder): """Represents a predicate""" id: str span: Span external_references: ExternalReferences = ExternalReferences([]) """optional external references""" roles: List[Role] = field(default_factory=list) """optional list of predicate arguments""" attrs: dict = field(default_factory=dict) """optional attributes ('confidence', 'status')""" def __post_init__(self): """Copy compulsory attributes to `attrs` field""" self.attrs.update({'id': self.id}) def node(self): """Create etree node from object""" children = [self.span] if self.external_references.items: children.append(self.external_references) if self.roles: children.extend(self.roles) return create_node('predicate', None, children, self.attrs) @staticmethod def object(node): """Create object from etree node""" return Predicate(node.get('id'), Span.object(node.find('span')), ExternalReferences(ExternalReferences.object(node.find('externalReferences'))), [Role.object(n) for n in node.findall('role')], node.attrib)
Ancestors
Class variables
var attrs : dict
-
optional attributes ('confidence', 'status')
var external_references : ExternalReferences
-
optional external references
var id : str
var roles : List[Role]
-
optional list of predicate arguments
var span : Span
Static methods
def object(node)
-
Create object from etree node
Expand source code
@staticmethod def object(node): """Create object from etree node""" return Predicate(node.get('id'), Span.object(node.find('span')), ExternalReferences(ExternalReferences.object(node.find('externalReferences'))), [Role.object(n) for n in node.findall('role')], node.attrib)
Methods
def node(self)
-
Create etree node from object
Expand source code
def node(self): """Create etree node from object""" children = [self.span] if self.external_references.items: children.append(self.external_references) if self.roles: children.extend(self.roles) return create_node('predicate', None, children, self.attrs)
Inherited members
class Role (id: str, span: Span, external_references: ExternalReferences = ExternalReferences(items=[]), attrs: dict = <factory>)
-
Represents a predicate argument
Expand source code
@dataclass class Role(AttributeGetter, IdrefGetter, ExternalReferenceHolder): """Represents a predicate argument""" id: str span: Span external_references: ExternalReferences = ExternalReferences([]) """optional external references""" attrs: dict = field(default_factory=dict) """optional attributes ('confidence' and 'status')""" def __post_init__(self): """Copy compulsory attributes to `attrs` field""" self.attrs.update({'id': self.id}) def node(self): """Create etree node from object""" children = [self.span] if self.external_references.items: children.append(self.external_references) return create_node('role', None, children, self.attrs) @staticmethod def object(node): """Create object from etree node""" return Role(node.get('id'), Span.object(node.find('span')), ExternalReferences(ExternalReferences.object(node.find('externalReferences'))), node.attrib)
Ancestors
Class variables
var attrs : dict
-
optional attributes ('confidence' and 'status')
var external_references : ExternalReferences
-
optional external references
var id : str
var span : Span
Static methods
def object(node)
-
Create object from etree node
Expand source code
@staticmethod def object(node): """Create object from etree node""" return Role(node.get('id'), Span.object(node.find('span')), ExternalReferences(ExternalReferences.object(node.find('externalReferences'))), node.attrib)
Methods
def node(self)
-
Create etree node from object
Expand source code
def node(self): """Create etree node from object""" children = [self.span] if self.external_references.items: children.append(self.external_references) return create_node('role', None, children, self.attrs)
Inherited members
class Srl (items: List[Predicate])
-
SRL layer class
Expand source code
@dataclass class Srl: """SRL layer class""" items: List[Predicate] """list of predicates""" def node(self): """Create etree node from object""" return create_node('srl', None, self.items, {}) @staticmethod def object(node): """Create object from etree node""" return [Predicate.object(n) for n in node]
Class variables
var items : List[Predicate]
-
list of predicates
Static methods
def object(node)
-
Create object from etree node
Expand source code
@staticmethod def object(node): """Create object from etree node""" return [Predicate.object(n) for n in node]
Methods
def node(self)
-
Create etree node from object
Expand source code
def node(self): """Create etree node from object""" return create_node('srl', None, self.items, {})