# Data Format You can pass SpanFinder any formats of data, as long as you implement a dataset reader inherited from SpanReader. We also provide a Concrete dataset reader. Besides them, SpanFinder comes with its own JSON data format, which enables richer features for training and modeling. The minimal example of the JSON is ```JSON { "meta": { "fully_annotated": true }, "tokens": ["Bob", "attacks", "the", "building", "."], "annotations": [ { "span": [1, 1], "label": "Attack", "children": [ { "span": [0, 0], "label": "Assailant", "children": [] }, { "span": [2, 3], "label": "Victim", "children": [] } ] }, { "span": [3, 3], "label": "Buildings", "children": [ { "span": [3, 3], "label": "Building", "children": [] } ] } ] } ``` You can have nested spans with unlimited depth. ## Meta-info for Semantic Role Labeling (SRL) ```JSON { "ontology": { "event": ["Violence-Attack"], "argument": ["Agent", "Patient"], "link": [[0, 0], [0, 1]] }, "ontology_mapping": { "event": { "Attack": ["Violence-Attack", 0.8] }, "argument": { "Assault": ["Agent", 0.95], "Victim": ["patient", 0.9] } } } ``` TODO: Guanghui needs to doc this.