# SoftwareDescription-schema.json

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id": "../Documentation/Implementation/data_model/Json/",
    "title": "SoftwareDescription",
    "description": "SoftwareDescription schema",
    "dataTypes": [
        "software"
    ],
    "type": "object",
    "properties": {
        "title": {
            "type": "string",
            "description": "Full name of the software"
        },
        "shortName": {
            "type": "string",
            "description": "Short name of the software"
        },
        "description": {
            "type": "string",
            "description": "Description of the software produced during the project"
        },
        "type": {
            "type": "string",
            "description": "Type of the generated research output"
        },
        "webSiteUrl": {
            "type": "string",
            "description": "URL of the software (or project) presentation site"
        },
        "creationDate": {
            "type": "string",
            "format": "date",
            "description": "Date of creation: Year development began"
        },
        "releasedDate": {
            "type": "string",
            "format": "date",
            "description": "Year of the first version put into production"
        },
        "applicationField": {
            "type": "array",
            "items": {
                "type": "string"
            },
            "description": "Main fields of application"
        },
        "uncontrolledApplicationField": {
            "type": "array",
            "items": {
                "type": "string"
            },
            "description": "Others application fields (free text)"
        },
        "controlledKeyword": {
            "type": "array",
            "items": {
                "type": "object",
                "$comment": "class=ControlledKeyword",
                "properties": {
                    "dbid": {
                        "type": "number"
                    }
                },
                "required": [
                    "dbid"
                ]
            },
            "description": "Keywords from controlled vocabularies (thesauri, subject indexing schemes, ontology, taxonomies, other knowledge organization systems)"
        },
        "version": {
            "type": "string",
            "description": "Version number"
        },
        "typology": {
            "type": "array",
            "items": {
                "type": "string"
            },
            "description": "Software categories"
        },
        "relatedOutput": {
            "type": "array",
            "items": {
                "type": "string"
            },
            "description": "Links to other research objects (datasets, software, ...) that  are required to test, use the software"
        },
        "cost": {
            "type": "array",
            "items": {
                "type": "object",
                "$comment": "class=Cost",
                "properties": {
                    "dbid": {
                        "type": "number"
                    }
                },
                "required": [
                    "dbid"
                ]
            },
            "description": "Costs associated with software development"
        },
        "contact": {
            "type": "array",
            "items": {
                "type": "object",
                "$comment": "class=Contributor",
                "properties": {
                    "dbid": {
                        "type": "number"
                    }
                },
                "required": [
                    "dbid"
                ]
            },
            "description": "Contact point for the software"
        }
    },
    "required": [
        "title",
        "description",
        "type",
        "creationDate",
        "applicationField",
        "controlledKeyword",
        "typology",
        "contact"
    ]
}