Block URI Scheme

All blocks (behaviors and implementations) are identified by a URI. The format of the URI is as follows:

      http://organization/name/x.y(.z)

where

NOTE: even if URI are generally case sensitive, block identifiers will be treated as case insensitive.

Example of good identifiers are

example of bad identifiers

information of what behavior is implemented by a given block implementation should not be included in the identifier.

Dependency Ranges

When a block implementation depends on another block (either implementation or behavior), it should be able to have an 'elastic' dependency which doesn't connect it to the versioned identifier, but to a range of those versions.

Instead of explicitly indicate the range description language, it is suggested to implicity describe range rules. These implicit range rules are:

ex: both "http://apache.org/blah/1.0" and "http://apache.org/blah/3.43.342" are matched by "http://apache.org/blah"

ex: depending on "http://apache.org/blah/2.0.34" will match

but not