HistoryViewLinks to this page Revision from: 2013 January 2 | 01:51 pm
This is the revision from 2013 January 2 at 01:51 pmView the current live version of the article.

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:points exactly-one true Local Resource Inline oslc_am:DiagramPoint The first point of the polygon.
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 Point

A point in a multi-segmented line. Used to describe a polygon (where the first and last points are the same).

  • Name: DiagramPoint
  • Type URI http://open-services.net/ns/am#DiagramPoint
Prefixed Name Occurs Read-only Value-type Representation Range Description
oslc_am:x exactly-one true integer n/a n/a The horizontal coordinate of the point.
oslc_am:y exactly-one true integer n/a n/a The vertical coordinate of the point.
oslc_am:next zero-or-one true Local Resource Inline oslc_am:DiagramPoint The next point in a multi-segmented line. If there is no point then this point represents the last point.