diff --git a/schemas/products/interface.schema.tpl.json b/schemas/products/interface.schema.tpl.json new file mode 100644 index 00000000..1be7314a --- /dev/null +++ b/schemas/products/interface.schema.tpl.json @@ -0,0 +1,73 @@ +{ + "_type": "core:Interface", + "required": [ + "communicationProtocol", + "definition", + "name", + "type", + "versionIdentifier" + ], + "properties": { + "communicationProtocol": { + "_instruction": "Enter the communication protocol used by this interface.", + "_linkedTypes": [ + "controlledTerms:CommunicationProtocol" + ] + }, + "custodian": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "_instruction": "Add all parties that fulfill the role of a custodian for the definition of this interface.", + "_linkedCategories": [ + "legalPerson" + ] + }, + "definition": { + "_instruction": "Enter a web resource that defines this interface, e.g., an OpenAPI.json document.", + "_linkedTypes": [ + "core.WebResource" + ] + }, + "description": { + "type": "string", + "_instruction": "Enter a description of this interface." + }, + "developer": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "_instruction": "Add all parties that developed this interface definition.", + "_linkedCategories": [ + "legalPerson" + ] + }, + "name": { + "type": "string", + "_instruction": "Enter the name of this interface." + }, + "type": { + "_instruction": "Enter the type of this interface.", + "_linkedTypes": [ + "controlledTerms:InterfaceType" + ] + }, + "userDocumentation": { + "_instruction": "Add the publication or file that acts as the full documentation of this interface.", + "_linkedTypes": [ + "core:DOI", + "core:File", + "core:ISBN", + "core:WebResource" + ] + }, + "versionIdentifier": { + "type": "string", + "_instruction": "Enter the version identifier of this interface version." + }, + "versionInnovation": { + "type": "string", + "_instruction": "Enter a short description (or summary) of the novelties/peculiarities of this interface version in comparison to its preceding versions." + } + } +} diff --git a/schemas/products/interfaceDependency.schema.tpl.json b/schemas/products/interfaceDependency.schema.tpl.json new file mode 100644 index 00000000..d739c615 --- /dev/null +++ b/schemas/products/interfaceDependency.schema.tpl.json @@ -0,0 +1,21 @@ +{ + "_type": "core:InterfaceDependency", + "required": [ + "failureImpact", + "fulfilledBy" + ], + "properties": { + "failureImpact": { + "_instruction": "Add the impact(s) on the software if the service interface is unavailable.", + "_linkedTypes": [ + "controlledTerms.Impact" + ] + }, + "fulfilledBy": { + "_instruction": "Add the service interface that fulfills this dependency.", + "_linkedTypes": [ + "core.Interface" + ] + } + } +} diff --git a/schemas/products/service.schema.tpl.json b/schemas/products/service.schema.tpl.json new file mode 100644 index 00000000..e6eb840d --- /dev/null +++ b/schemas/products/service.schema.tpl.json @@ -0,0 +1,118 @@ +{ + "_type": "core:Service", + "required": [ + "fullDocumentation", + "fullName", + "shortName", + "type" + ], + "properties": { + "custodian": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "_instruction": "Add all parties that fulfill the role of a custodian for the service, typically an organization.", + "_linkedCategories": [ + "legalPerson" + ] + }, + "deploymentProtocol": { + "_instruction": "Add the protocol or workflow recipe that should be used to deploy this service.", + "_linkedTypes": [ + "core:Protocol", + "computation:WorkflowRecipe" + ] + }, + "description": { + "type": "string", + "_instruction": "Enter a description (or abstract) of this service." + }, + "feature": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "_instruction": "Add the main features of this service.", + "_linkedTypes": [ + "controlledTerms:SoftwareFeature" + ] + }, + "fullDocumentation": { + "_instruction": "Add the publication or file that acts as the full documentation of this service.", + "_linkedTypes": [ + "core:DOI", + "core:File", + "core:ISBN", + "core:WebResource" + ] + }, + "fullName": { + "type": "string", + "_instruction": "Enter a descriptive full name (or title) for this service." + }, + "funding": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "_instruction": "Add all funding information of this service.", + "_linkedTypes": [ + "core:Funding" + ] + }, + "howToCite": { + "type": "string", + "_instruction": "Enter the preferred citation text for this service." + }, + "keyword": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "_instruction": "Add all relevant keywords to this service, either by adding controlled terms or by suggesting new terms.", + "_linkedCategories": [ + "keyword" + ] + }, + "relatedPublication": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "_instruction": "Add all further publications besides the full documentation that provide the original context for the production of this service (e.g., an original research article describing the service).", + "_linkedCategories": [ + "publicationReference" + ] + }, + "scope": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "_instruction": "Add the scope of this service, i.e., what analysis methods does it perform, what kinds of experimental data is it intended for.", + "_linkedTypes": [ + "controlledTerms:AnalysisTechnique", + "controlledTerms:ExperimentalApproach", + "controlledTerms:Technique" + ] + }, + "shortName": { + "type": "string", + "_instruction": "Enter a short name (or alias) for this service that could be used as a shortened display title." + }, + "supportChannel": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "_instruction": "Enter all channels through which a user can receive support for using this service.", + "items": { + "type": "string", + "_formats": [ + "email", + "iri" + ] + } + }, + "type": { + "_instruction": "Add the service type.", + "_linkedTypes": [ + "controlledTerms:ServiceType" + ] + } + } +} diff --git a/schemas/products/softwareVersion.schema.tpl.json b/schemas/products/softwareVersion.schema.tpl.json index 4fa6f98f..d180c958 100644 --- a/schemas/products/softwareVersion.schema.tpl.json +++ b/schemas/products/softwareVersion.schema.tpl.json @@ -23,6 +23,19 @@ "controlledTerms:SoftwareApplicationCategory" ] }, + "dependency": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "_instruction": "Add all dependencies of this software version.", + "_embeddedTypes": [ + "core:InterfaceDependency" + ], + "_linkedTypes": [ + "core:Interface", + "core:SoftwareVersion" + ] + }, "developer": { "type": "array", "minItems": 1, @@ -70,6 +83,15 @@ "sands:CommonCoordinateSpaceVersion" ] }, + "implements": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "_instruction": "Add all interfaces that are implemented by this software version.", + "_linkedTypes": [ + "core:Interface" + ] + }, "inputFormat": { "type": "array", "minItems": 1, @@ -138,12 +160,12 @@ "_linkedTypes": [ "controlledTerms:ProgrammingLanguage" ] - }, + }, "requirement": { "type": "array", "minItems": 1, "uniqueItems": true, - "_instruction": "Enter all requirements of this software version.", + "_instruction": "Enter any requirements of this software version that are not listed under the 'dependency' property.", "items": { "type": "string" } diff --git a/schemas/products/webService.schema.tpl.json b/schemas/products/webService.schema.tpl.json deleted file mode 100644 index 5ae96f81..00000000 --- a/schemas/products/webService.schema.tpl.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "_type": "core:WebService", - "_extends": "products/researchProduct.schema.tpl.json", - "required": [ - "developer" - ], - "properties": { - "developer": { - "type": "array", - "minItems": 1, - "uniqueItems": true, - "_instruction": "Add all parties that developed this web service.", - "_linkedCategories": [ - "legalPerson" - ] - }, - "hasVersion": { - "type": "array", - "minItems": 1, - "uniqueItems": true, - "_instruction": "Add all versions of this web service.", - "_linkedTypes": [ - "core:WebServiceVersion" - ] - } - } -} diff --git a/schemas/products/webServiceVersion.schema.tpl.json b/schemas/products/webServiceVersion.schema.tpl.json deleted file mode 100644 index feb5fa8d..00000000 --- a/schemas/products/webServiceVersion.schema.tpl.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "_type": "core:WebServiceVersion", - "_extends": "products/researchProductVersion.schema.tpl.json", - "properties": { - "developer": { - "type": "array", - "minItems": 1, - "uniqueItems": true, - "_instruction": "Add all parties that developed this web service version. Note that these developers will overwrite the developer list provided for the overarching web service.", - "_linkedCategories": [ - "legalPerson" - ] - }, - "hasPart": { - "type": "array", - "minItems": 1, - "uniqueItems": true, - "_instruction": "Add all software versions that are components of this web service version.", - "_linkedTypes": [ - "core:SoftwareVersion" - ] - }, - "inputFormat": { - "type": "array", - "minItems": 1, - "uniqueItems": true, - "_instruction": "Add all content types that can be used as input by this web service version.", - "_linkedTypes": [ - "core:ContentType" - ] - }, - "isAlternativeVersionOf": { - "type": "array", - "minItems": 1, - "uniqueItems": true, - "_instruction": "Add all web service versions that can be used alternatively to this web service version.", - "_linkedTypes": [ - "core:WebServiceVersion" - ] - }, - "isNewVersionOf": { - "_instruction": "Add the web service version preceding this web service version.", - "_linkedTypes": [ - "core:WebServiceVersion" - ] - }, - "outputFormat": { - "type": "array", - "minItems": 1, - "uniqueItems": true, - "_instruction": "Add all content types that can be generated as output by this web service version.", - "_linkedTypes": [ - "core:ContentType" - ] - } - } -}