{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "title": "Claim",
    "description": "Claim provided by a service",
    "type": "object",
    "properties": {
        "claimant": {
            "description": "Short name of the service used for subscription",
            "value": "string"
        },
        "subject": {
            "description": "subject of the predicate (claim)",
            "type": "object",
            "properties": {
                "type": {
                    "description": "Type of persistent identifier (e.g. INSPIRE_RECORD_ID)",
                    "type": "string"
                },
                "value": {
                    "description": "Actual value of the identifier",
                    "type": "string"
                }
            },
            "required": [
                "type",
                "value"
            ],
            "additionalProperties": false
        },
        "claim": {
            "description": "type of claim",
            "type": "object",
            "properties": {
                "predicate": {
                    "description": "predicate of the claim",
                    "type": "string",
                    "enum": [
                        "is_same_as",
                        "is_different_than",
                        "is_erratum_of",
                        "is_superseded_by",
                        "is_cited_by",
                        "is_software_for",
                        "is_dataset_for"
                    ]
                },
                "datetime": {
                    "description": "#TODO: which date time is this?",
                    "type": "string"
                },
                "certainty": {
                    "description": "certainty of the claim",
                    "type": "number",
                    "minimum": 0,
                    "maximum": 100
                },
                "arguments": {
                    "description": "arguments supporting the certainty",
                    "type": "object",
                    "properties": {
                        "human": {
                            "description": "the claim was done by a human or an algorithm",
                            "type": "string",
                            "enum": [
                                "True",
                                "False"
                            ]
                        },
                        "actor": {
                            "description": "who assessed the certainty",
                            "type": "string"
                        },
                        "role": {
                            "description": "role of the actor",
                            "type": "string"
                        }
                    }
                }
            },
            "required": [
                "predicate",
                "certainty"
            ]
        },
        "object": {
            "description": "object of the predicate (claim)",
            "type": "object",
            "properties": {
                "type": {
                    "description": "Type of persistent identifier (e.g. INSPIRE_RECORD_ID)",
                    "type": "string"
                },
                "value": {
                    "description": "Actual value of the identifier",
                    "type": "string"
                }
            },
            "required": [
                "type",
                "value"
            ],
            "additionalProperties": false
        }
    },
    "required": [
        "claimant",
        "subject",
        "claim",
        "object"
    ],
    "additionalProperties": false
}