Architecture Management - Link Resource Format
1.0 SPECIFICATION DRAFT
Introduction
A resource link represents a connection from a resource managed by the Architecture Management Service Provider and another resource, given only by a URI.
The OSLC RM workgroup has defined a very generic
link resource format that can be used to satisfy the AM workgroups need. We propose this format for use in the AM specification.
Namespaces
The source, target and type of a link are described by the URIs of those resources using an RDF resource of type "oslc:Link" having the properties described in the table below.
The media type used for this RDF/XML representation MUST be application/x-oslc-common-link+xml.
The following properties are defined on an OSLC AM link resource:
Property |
Required on Read |
Required on Write |
Read-only |
Represents |
rdf:subject |
Yes |
Yes |
Yes |
The source of the link |
rdf:object |
Yes |
Yes |
Yes |
The target of the link |
rdf:predicate |
Yes |
Yes |
Yes |
The type of the link |
dc:description |
No |
No |
No |
Some description of the link |
dc:creator |
No |
No |
Yes |
Who created the link. The value of this element is free form text, or may a FOAF Person element. If the user has a URI it should be represented as a rdf:resource attribute of this element. |
dc:created |
No |
No |
Yes |
When the link was created. Can be expressed as free form text, or in a standard form. When in a form that can be automated, the rdf:datatype attribute with a public date time URI should be present to assist the client in parsing the value (i.e. http://www.w3.org/2001/XMLSchema#dateTime). |
dc:contributor |
No |
No |
Yes |
Who last modified the link. The value of this element is free form text, or may a FOAF Person element. If the user has a URI it should be represented as a rdf:resource attribute of this element. |
dc:modified |
No |
No |
Yes |
When the link was last modified. MAY be expressed as free form text, or in a standard form. When in a form that can be automated, the rdf:datatype property with a public date time URI should be present to assist the client in parsing the value (i.e. http://www.w3.org/2001/XMLSchema#dateTime). |
Example
Example 1. All Optional Information Specified
In this example the link resource describes an "elaborates" relation from an AM resource to a requirement, indicating that the AM resource (subject) is an elaboration (predicate) of the requirement (object). All the optional fields are specified. The creator and contributor elements use the FOAF Person vocabulary.
GET http://am.example.com/resources/links/link1
Accept: application/x-oslc-common-link+xml
<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
xmlns:oslc="http://open-services.net/xmlns/common/1.0/"
xmlns:dc="http://purl.org/dc/terms/"
xmlns:foaf="http://xmlns.com/foaf/0.1/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<oslc:Link rdf:about="http://am.example.com/resources/links/link1">
<rdf:subject rdf:resource="http://am.example.com/resources/amresource55"/>
<rdf:object rdf:resource="http://req.example.com/resources/requirement24"/>
<rdf:predicate rdf:resource="http://example.com/types/elaborates"/>
<dc:description>This is a full elaboration of the requirement.</dc:description>
<dc:created rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">
2009-10-20T19:49:47-04:00
</dc:created>
<dc:creator rdf:resource="https://example.com/users/dan">
<foaf:Person>
<foaf:name>Dan Designer</foaf:name>
<foaf:mbox rdf:resource="mailto:dan@example.com" />
<foaf:img rdf:resource="https://example.com/users/photo/dan"/>
</foaf:Person>
</dc:creator>
<dc:modified rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">
2009-11-03T08:53:00-04:00
</dc:modified>
<dc:contributor rdf:resource="https://example.com/users/ana">
<foaf:Person>
<foaf:name>Ana Analyst</foaf:name>
<foaf:mbox rdf:resource="mailto:ana@example.com" />
<foaf:img rdf:resource="https://example.com/users/photo/ana"/>
</foaf:Person>
</dc:contributor>
</oslc:Link>
</rdf:RDF>
Example 2. Minimal Information Specified
In this example the link resource describes an "elaborates" relation from an AM resource to a requirement, indicating that the AM resource (subject) is an elaboration (predicate) of the requirement (object). No optional fields are specified.
GET http://am.example.com/resources/links/link1
Accept: application/x-oslc-common-link+xml
<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
xmlns:oslc="http://open-services.net/xmlns/common/1.0/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<oslc:Link rdf:about="http://am.example.com/resources/links/link1">
<rdf:subject rdf:resource="http://am.example.com/resources/amresource55"/>
<rdf:object rdf:resource="http://req.example.com/resources/requirement24"/>
<rdf:predicate rdf:resource="http://example.com/types/elaborates"/>
</oslc:Link>
</rdf:RDF>
Example 2. Creator specified as simple string
In this example the link resource describes an "elaborates" relation from an AM resource to a requirement, indicating that the AM resource (subject) is an elaboration (predicate) of the requirement (object). The creator and created elements are returned, with the creator specified as a simple string.
GET http://am.example.com/resources/links/link1
Accept: application/x-oslc-common-link+xml
<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
xmlns:oslc="http://open-services.net/xmlns/common/1.0/"
xmlns:dc="http://purl.org/dc/terms/"
xmlns:foaf="http://xmlns.com/foaf/0.1/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<oslc:Link rdf:about="http://am.example.com/resources/links/link1">
<rdf:subject rdf:resource="http://am.example.com/resources/amresource55"/>
<rdf:object rdf:resource="http://req.example.com/resources/requirement24"/>
<rdf:predicate rdf:resource="http://example.com/types/elaborates"/>
<dc:description>This is a full elaboration of the requirement.</dc:description>
<dc:created rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">
2009-10-20T19:49:47-04:00
</dc:created>
<dc:creator>Dan Developer</dc:creator>
</oslc:Link>
</rdf:RDF>
Example 4. Creator specified as URI
In this example the link resource describes an "elaborates" relation from an AM resource to a requirement, indicating that the AM resource (subject) is an elaboration (predicate) of the requirement (object). The creator is specified only with a URI. The URI may be used to get more information about the identity from some other service.
GET http://am.example.com/resources/links/link1
Accept: application/x-oslc-common-link+xml
<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
xmlns:oslc="http://open-services.net/xmlns/common/1.0/"
xmlns:dc="http://purl.org/dc/terms/"
xmlns:foaf="http://xmlns.com/foaf/0.1/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<oslc:Link rdf:about="http://am.example.com/resources/links/link1">
<rdf:subject rdf:resource="http://am.example.com/resources/amresource55"/>
<rdf:object rdf:resource="http://req.example.com/resources/requirement24"/>
<rdf:predicate rdf:resource="http://example.com/types/elaborates"/>
<dc:description>This is a full elaboration of the requirement.</dc:description>
<dc:creator rdf:resource="http://example.com/users/dan"/>
</oslc:Link>
</rdf:RDF>
OSLC Common.rdfs
This is the RDF Schema for the OSLC Common classes and properties.
?xml version="1.0"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns="http://open-services.net/xmlns/common/1.0/common#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xml:base="http://open-services.net/xmlns/common/1.0/common">
<owl:Ontology rdf:about="">
<owl:imports rdf:resource="http://xmlns.com/foaf/0.1/"/>
<owl:imports rdf:resource="http://purl.org/dc/elements/1.1/"/>
<owl:versionInfo rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
>Created with TopBraid Composer</owl:versionInfo>
</owl:Ontology>
<rdfs:Class rdf:ID="Link">
<rdfs:subClassOf rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement"/>
</rdfs:Class>
<rdf:Description rdf:about="http://purl.org/dc/elements/1.1/creator">
<rdfs:range rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
<rdfs:domain rdf:resource="#Link"/>
</rdf:Description>
<rdf:Description rdf:about="http://purl.org/dc/elements/1.1/modified">
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#dateTime"/>
<rdfs:domain rdf:resource="#Link"/>
</rdf:Description>
<rdf:Description rdf:about="http://purl.org/dc/elements/1.1/description">
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
<rdfs:domain rdf:resource="#Link"/>
</rdf:Description>
</rdf:RDF>
Notes:
- Link is an rdf:Statement that specifies and asserts the statement. That is, it reifies the statement in order to enable properties to be asserted on the statement itself.
Back to
Architecture Management Resource Definitions
Comments
Enter your comments here.