Most of the architectural resources that we use in our scenarios either are or can be represented in diagrams. A diagram being a visual (as opposed to textual) representation of one or more artefacts of the software development lifecycle process. Diagrams are a way to view potentially complex information in a more consumable form. UML is perhaps the most recognized example of a visual notation for software concepts. UML also has underneath it a complex and comprehensive model of the things in its diagrams, and indeed most of the specification is about this underlying model, rather than the visual notation.
Diagrams are common place in the set of architectural artefacts, and deserve special consideration. They are an integral part of architecture management resources. Many types of diagrams; UML Class, Sequence, Statechart, ER Diagrams, BPMN, etc. are expected to be managed by an OSLC AM service provider. Diagrams are special in sense they have a special representation form and media type; image/*
. Most browsers are capable of rendering many image media types (png, jpg, svg, …).
For Architectural diagram resources simply GETing them with an Accept header of a known media type (i.e. image/* or image/png) should result in the service provider responding with the diagram representation in that form. If the resource is not renderable or not available in the specific media type requested, it simply responds with a 415 Unsupported media type.
We propose here a Diagram resource type that clients can use to 1) recognize that the resource they are working with can be requested in a visual form (i.e. image/png
) and 2) identify which resources appear in the diagram.
The coordinate system used in the points is the native coordinate system of the image content type. The upper left hand corner represents the origin (0,0).
This resource was influenced by the HTML <map> element.
Usage Scenarios
Diagram Resource Example
Rational Design Management example
Examination of use of rdf:Seq instead of oslc_am:next
Similar but inappropriate vocabularies for expressing shape information like this include:
Resource: Diagram
A Diagram is a visual representation of a resource. It often includes references/representations of other AM Resourcess.
- Name:
Diagram
- Type URI
http://open-services.net/ns/am#Diagram
Prefixed Name |
Occurs |
Read-only |
Value-type |
Representation |
Range |
Description |
dcterms:title |
exactly-one |
unspecified |
XMLLiteral |
n/a |
n/a |
Name of diagram (OSLC Common property) |
dcterms:description |
zero-or-one |
unspecified |
XMLLiteral |
n/a |
n/a |
A short description of the diagram. (OSLC Common property) |
oslc_am:area |
zero-or-many |
true |
Either Resource or Local Resource |
Either Reference or Inline |
oslc_am:DiagramRectangle oslc_am:DiagramPolygon |
Areas in the diagram. May represent another resource internal or external (another resource managed by another server). May just represent some component of the diagram (i.e. legend, boundary, etc.) |
Resource: Diagram Rectangle
A Diagram Rectangle is a simple rectangular visual element in a diagram. It may represent another resource, or it could be just an element in the diagram like a legend, or logo image.
- Name:
DiagramRectangle
- Type URI
http://open-services.net/ns/am#DiagramRectangle
Prefixed Name |
Occurs |
Read-only |
Value-type |
Representation |
Range |
Description |
dcterms:title |
zero-or-one |
unspecified |
XMLLiteral |
n/a |
n/a |
A label that identifies the view, or what the view represents. (OSLC Common property) |
oslc_am:represents |
zero-or-one |
true |
Resource |
Reference |
any |
The uri of the resource that this view represents |
oslc_am:x |
exactly-one |
true |
integer |
n/a |
n/a |
The horizontal coordinate of the upper left hand corner of the area. |
oslc_am:y |
exactly-one |
true |
integer |
n/a |
n/a |
The vertical coordinate of the upper left hand corner of the area. |
oslc_am:width |
exactly-one |
true |
integer |
n/a |
n/a |
The width of the area. |
oslc_am:height |
exactly-one |
true |
integer |
n/a |
n/a |
The height of the area. |
oslc_am:order |
zero-or-one |
true |
integer |
n/a |
n/a |
The relative z-order that this area is compared to other areas. Lower values place this area under areas with higher values |
Resource: Diagram Polygon
A Diagram Polygon is an irregularly shaped area in a diagram. It may represent another resource, or it could be just an element in the diagram. It is expressed as a sequence of points that represent the line segments that make up the polygon. It is expected that the first and last points are the same, and that the series of points forms a polygon where the line segments do not overlap.
- Name:
DiagramPolygon
- Type URI
http://open-services.net/ns/am#DiagramPolygon
Prefixed Name |
Occurs |
Read-only |
Value-type |
Representation |
Range |
Description |
dcterms:title |
zero-or-one |
unspecified |
XMLLiteral |
n/a |
n/a |
A label that identifies the view, or what the view represents. (OSLC Common property) |
oslc_am:represents |
zero-or-one |
true |
Resource |
Reference |
any |
The uri of the resource that this view represents |
oslc_am:coords |
exactly-one |
true |
String |
n/a |
n/a |
A comma separated list of integers that represent the coordinates of the vertices of a polygon in the form of: x1,y1,x2,y2,..,xn,yn. If the first and last coordinate pairs are not the same, the client will add the last coordinate pair to close the polygon. See coords attribute of HTML <map> element |
oslc_am:order |
zero-or-one |
true |
integer |
n/a |
n/a |
The relative z-order that this area is compared to other areas. Lower values place this area under areas with higher values |