Link Search Menu Expand Document

Identification of Virtues

Requirements

  • Be able to uniquely identify a virtue (irrespective of its type) so that they can be catalogued.
  • Support the identification of all types of virtue : proposal, principle, standard, pattern.
  • Enable products to be associated with the virtues they adhere to.
  • Identification to be independent of how the virtues are stored

Principles of Identification

  • The virtues are contributed to and managed by the wider JS Tech Community
  • The virtue adheres to the virtue model

Conventions

  • alphabetic lowercase
  • spaces are replaced with underscores

URN Fields

Field Data Type Description
virtueType string valid values are : [proposal, standard, principle, pattern]
id integer an integer that is unique for this type of virtue
version integer the version of the virtue

URN Syntax

urn:js:virtue:aspire:{virtueType [proposal | principal | standard | pattern]}/{id}/version/{version}
<--------NID--------><-----------------------------------NSS--------------------------------------->

Proposal examples:

urn:js:virtue:aspire:proposal/1/version/0
urn:js:virtue:aspire:proposal/125/version/0

Principle examples:

urn:js:virtue:aspire:principle/2009/version/1

Standard examples:

urn:js:virtue:aspire:standard/341/version/7
urn:js:virtue:aspire:standard/341/version/8

Pattern examples:

urn:js:virtue:aspire:pattern/125/version/24

Query Parameters:

# get all the patterns
    # query
    urn:js:virtue:aspire:?+virtueType?=proposal
    # result
    urn:js:virtue:aspire:proposal/1/version/0
    urn:js:virtue:aspire:proposal/125/version/0

# get the latest version of the standard with id 341
    # query
    urn:js:virtue:aspire:?+virtueType?=standard?+?id=341?+version=latest        
    # result
    urn:js:virtue:aspire:standard/341/version/8

# get version 8 of the standard with id 341
    # query
    urn:js:virtue:aspire:?+virtueType?=standard?+?id=341?+version=8
    # result
    urn:js:virtue:aspire:standard/341/version/8

# get all version's of the standard with id 341
    # query
    urn:js:virtue:aspire:?+virtueType?=standard?+?id=341
    # result
    urn:js:virtue:aspire:standard/341/version/7
    urn:js:virtue:aspire:standard/341/version/8

# get the latest version of all the virtues with id 125 (not very useful)
    # query
    urn:js:virtue:aspire:+?id=125?+?version=latest
    # result
    urn:js:virtue:aspire:proposal/125/version/0
    urn:js:virtue:aspire:pattern/125/version/24