Next, we would like to discuss how to add specific information to a resource or statement using properties. A requirement with name and description will serve as an example.
Again, let’s start with the new elements of a SpecIF data-set.
{
"dataTypes": [{
"id": "DT-Text",
"title": "Plain or formatted Text",
"description": "A text string, plain, or formatted with XHTML or markdown",
"type": "xs:string",
"changedAt": "2021-02-14T08:59:00+02:00"
}],
"propertyClasses": [{
"id": "PC-Description",
"title": "dcterms:description",
"description": "An account of the resource (source: http://dublincore.org/documents/dcmi-terms/). Descriptive text represented in plain or rich text using XHTML or Markdown. SHOULD include only content that is valid and suitable inside an XHTML <div> element (source: http://open-services.net/).",
"dataType": "DT-Text",
"changedAt": "2016-05-26T08:59:00+02:00"
}],
}
Some explanations may help to understand the principles:
{
"resourceClasses": [{
"id": "RC-Requirement",
"title": "IREB:Requirement",
"description": "A 'Requirement' is a singular documented physical and functional need that a particular design, product or process must be able to perform.",
"icon": "↯",
"propertyClasses": [ "PC-Name", "PC-Description" ],
"changedAt": "2016-05-26T08:59:00+02:00"
}],
"resources": [{
"id": "Req-5ba3512b0000bca",
"title": "Minimum button size",
"class": "RC-Requirement",
"properties": [{
"class": "PC-Description",
"value": "<p>The <i>button size</i> MUST not be less than 2 cm in diameter.</p>"
}],
"changedAt": "2017-06-19T20:13:08+02:00"
}],
}
Some more explanations:
Let us have a look at the full example, now:
{
"$schema": "https://specif.de/v1.0/schema.json",
"id": "P-Requirement-with-Properties",
"title": "Requirements Template",
"dataTypes": [{
"id": "DT-ShortString",
"title": "String[96]",
"description": "String with max. length 96.",
"type": "xs:string",
"maxLength": 96,
"changedAt": "2016-05-26T08:59:00+02:00"
},{
"id": "DT-Text",
"title": "Plain or formatted Text",
"description": "A text string, plain, or formatted with XHTML or markdown",
"type": "xs:string",
"changedAt": "2021-02-14T08:59:00+02:00"
}],
"propertyClasses": [{
"id": "PC-Name",
"title": "dcterms:title",
"description": "A name given to the resource.",
"dataType": "DT-ShortString",
"changedAt": "2016-05-26T08:59:00+02:00"
},{
"id": "PC-Description",
"title": "dcterms:description",
"description": "An account of the resource (source: http://dublincore.org/documents/dcmi-terms/). Descriptive text represented in plain or rich text using XHTML or Markdown. SHOULD include only content that is valid and suitable inside an XHTML <div> element (source: http://open-services.net/).",
"dataType": "DT-FormattedText",
"changedAt": "2021-02-23T08:59:00+02:00"
}],
"resourceClasses": [{
"id": "RC-Requirement",
"title": "IREB:Requirement",
"description": "A 'Requirement' is a singular documented physical and functional need that a particular design, product or process must be able to perform.",
"icon": "↯",
"propertyClasses": [ "PC-Name", "PC-Description" ],
"changedAt": "2016-05-26T08:59:00+02:00"
}],
"statementClasses": [],
"resources": [{
"id": "Req-5ba3512b0000bca",
"title": "Minimum button size",
"class": "RC-Requirement",
"properties": [{
"class": "PC-Name",
"value": "Minimum button size"
},{
"class": "PC-Description",
"value": "<p>The <i>button size</i> MUST not be less than 2 cm in diameter.</p>"
}],
"changedAt": "2017-06-19T20:13:08+02:00"
}],
"statements": [],
"hierarchies": [{
"id": "N-bca801377e3d1525",
"resource": "Req-5ba3512b0000bca",
"changedAt": "2019-05-29T13:19:28.546Z"
}]
}
Some more explanations:
You may also view/download the example Requirement with Properties or display it using the SpecIF Viewer.