class Token(dr.Ann): raw = dr.Text() norm = dr.Text() pos = dr.Field() lemma = dr.Field() span = dr.Slice() tidx = dr.Field()
class Token(dr.Ann): span = dr.Slice() raw = dr.Field() norm = dr.Field() def __repr__(self): return 'Token(norm={0!r}, span={1}:{2})'.format( self.norm, self.span.start, self.span.stop)
class WikiDoc(dr.Doc): id = dr.Field() name = dr.Field() tokens = dr.Store(Token) links = dr.Store(Link) sections = dr.Store(Section) sentences = dr.Store(Sentence) paragraphs = dr.Store(Paragraph)
class MyDoc(dr.Doc): b = dr.Field() a = dr.Field() _c = dr.Field(serial='c') sl = dr.Slice() anns = dr.Store(MyAnn) more_anns = dr.Store(MyAnn) specialised_repr_anns = dr.Store(SpecialisedReprAnn)
class Entity(dr.Ann): token_span = dr.Slice(Token) type = dr.Field() def __repr__(self): return 'Entity(type={0!r}, token_span={1}:{2})'.format( self.type, self.token_span.start, self.token_span.stop)
class Node(dr.Ann): label = dr.Field() parent = dr.SelfPointer() other = dr.Pointer('Node', store='nodes2') def __repr__(self): return 'Node({0})'.format(self.label) class Meta: name = 'Node'
class SliceAnnot(dr.Ann): span = dr.Slice('MyAnnot') name = dr.Field() def __repr__(self): return '{}(span={}, name={})'.format(self.__class__.__name__, self.span, self.name) class Meta: name = 'SliceAnnot'
class MyAnnot(dr.Ann): field = dr.Field() children = dr.Pointers('MyAnnot') child = dr.Pointer('MyAnnot') def __repr__(self): return '{}(field={}, children={}, child={})'.format( self.__class__.__name__, self.field, self.children, self.child) class Meta: name = 'MyAnnot'
def __call__(self): attr = self.args.field_name evaluator = self.evaluator reader, writer = self.stream_reader_writer for i, doc in enumerate(reader): if attr not in doc._dr_s2p: # TODO: externalise reflection methods doc._dr_s2p[attr] = attr doc._dr_fields[attr] = dr.Field(serial=attr) setattr(doc, attr, evaluator(doc, i)) writer.write(doc)
class DocWithField(dr.Doc): name = dr.Field() class Meta: serial = 'writer.DocWithField'
class Node(dr.Ann): label = dr.Field()
class X(dr.Ann): foo = dr.Field(serial='chicken') bar = dr.Field()
class Section(dr.Ann): title = dr.Field() span = dr.Slice(Token)
class NamedEntity(dr.Ann): span = dr.Slice(Token) label = dr.Field()
class Sent(dr.Ann): span = dr.Slice(Token) number = dr.Field()
class Z(dr.Ann): p = dr.Pointer(A, serial='zp') value = dr.Field() class Meta: serial = 'writer.Z'
class Foo(dr.Ann): val = dr.Field()
class Doc1(dr.Doc): name = dr.Field(serial='filename') xs = dr.Store(X)
class Doc2(dr.Doc): filename = dr.Field() xs = dr.Store(X)
class Event(dr.Ann): name = dr.Field() date = dr.DateTime()
class SchwaDoc(dr.Doc): doc_id = dr.Field() tokens = dr.Store(Token) named_entities = dr.Store(NamedEntity)
class DocWithFieldWithSerial(dr.Doc): name = dr.Field(serial='filename') class Meta: serial = 'writer.DocWithFieldWithSerial'
class A(dr.Ann): value = dr.Field() class Meta: serial = 'writer.A'
class Node(dr.Ann): label = dr.Field() children = dr.Store('Node') class Meta: name = 'Node'
class Token(dr.Ann): raw = dr.Field()
class Link(dr.Ann): span = dr.Slice(Token) anchor = dr.Field() target = dr.Field()
class Token(dr.Ann): span = dr.Slice() raw = dr.Field()
class X(dr.Ann): name = dr.Field()
class Bar(dr.Ann): val = dr.Field()
class MyAnn(dr.Ann): foo = dr.Field() others = dr.SelfPointers() prev = dr.SelfPointer()