{
    "id": "http://trec-kba.org/schemas/v1.0/filter-topics.json",
    "description": "Describes the topic entities for a KBA filtering task.",
    "type": "object",
    "$schema": "http://json-schema.org/draft-03/schema#",
    "properties": {
        "$schema": {
            "description": "URI of this JSON schema document.",
            "type": "string",
            "enum": ["http://trec-kba.org/schemas/v1.0/filter-topics.json"],
            "required": false,
            "default": "http://trec-kba.org/schemas/v1.0/filter-topics.json"
            },
        "topic_set_id": {
            "description": "Unique string that identifies this set of topic entities",
            "type": "string",
            "required": true
            },
        "topic_names": {
            "description": "Array of strings that uniquely identify the topics within 'kb'.",
            "type": "array",
            "required": true,
	    "items": {"type": "string"}
            },
        "kb": {
            "description": "Object describing the knowledge base containing the topic entities",
            "type": "object",
            "required": true,
            "properties": {
                "name": {
                    "description": "Unique name of the KB",
                    "type": "string",
                    "required": true
                    },
                "URL": {
                    "description": "URL to front door of KB",
                    "type": "string",
                    "required": false
                    },
                "snapshot_time": {
                    "description": "Date of a snapshot of the KB",
                    "type": "object",
                    "required": false,
                    "properties": {
                        "epoch_ticks": {
                            "description": "Seconds (and milliseconds) since the epoch January 1, 1970.",
                            "type": "float"
                            },
                        "zulu_timestamp": {
                            "description": "Calculated from epoch_ticks in format %Y-%m-%dT%H:%M:%S.%fZ",
                            "type": "string",
                            "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{6}Z$"
                            }
                        }
                    },
                "description": {
                    "description": "Human readable description of the KB, possibly including instructions for querying kb with strings from topic_names",
                    "type": "string",
                    "required": true
                    }
                }
            }
        }
    }
