This wiki is locked. Future workgroup activity and specification development must take place at our new wiki. For more information, see this blog post about the new governance model and this post about changes to the website.

Scenario: Register new link type

In this scenario a client adds a new link type to the list of know link types that the service provider can provide to clients. The expectation is that this link type is used in links from architecture resources to other resources.

This scenario requires that the client has already discovered the Link Type Service URI via the service catalog.

Example 1. Add New Link Type

The client has a URI reference to an AM link type service ( https://am.acme.com/linktypes/project1).

1.The client performs a POST on the link type service URI with an link type description resource. The content type MUST be application/atom+xml.

If successful the service provider returns a 201 Created response with the Location and ETag header of the newly created resource. These values are used to modify this resource in the future. The server returns the OSLC Link Type resource, optionally including the read only creator and created properties. The service provider MAY use simple text for these properties or use the FOAF vocabulary to define the creator, and/or provide a formatted, machine readable date time ( See resource format definition).

Request
POST https://am.acme.com/linktypes/project1
Content-Type: application/x-oslc-am-linktype+xml 

<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
    xmlns:dc="http://purl.org/dc/terms/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
    
    <oslc:LinkType rdf:about="http://acme.com/linktype/implements">
        <dc:title>Implements</dc:title>
        <dc:description>
            The subject resource provides an implementation of the subject resource.
        </dc:description>
   </oslc:LinkType>
</rdf:RDF>  
Response
201 Created
ETag: "_Hsosakwidja2kas9alabdk"
Location: https://am.acme.com/linktypes/project1/_asdi23orisgksqw34ls
Content-Type: application/x-oslc-am-linktype+xml

<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
    xmlns:dc="http://purl.org/dc/terms/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
    
    <oslc:LinkType rdf:about="http://acme.com/linktype/implements">
        <dc:title>Implements</dc:title>
        <dc:description>
            The subject resource provides an implementation of the subject resource.
        </dc:description>
        <dc:creator>Jim Conallen</dc:creator>
        <dc:created>18-Jan-2010</dc:created>
   </oslc:LinkType>

</rdf:RDF>

Example 2. Attempt to New Link Type When One Already Exists

In this example the client attempts to add a new link type definition, however a definition already exists for this link type.

The client has a URI reference to an AM link type service ( https://am.acme.com/linktypes/project1).

1.The client performs a POST on the link type service URI with an link type description resource. The content type MUST be application/atom+xml.

If the link type predicate is already in use the server responds with a 403 Forbidden and includes a description of the error in the response.

Request
POST https://am.acme.com/linktypes/project1
Content-Type: application/x-oslc-am-linktype+xml

<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
    xmlns:dc="http://purl.org/dc/terms/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
    
    <oslc:LinkType rdf:about="http://acme.com/linktype/implements">
        <dc:title>Implements</dc:title>
        <dc:description>
            The subject resource provides an implementation of the subject resource.
        </dc:description>
   </oslc:LinkType>
</rdf:RDF>  
Response
403 Forbidden
Content-Type: application/rdf+xml

<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:oslc="http://open-services.net/xmlns/common/1.0/">
    <oslc:Error>
        <oslc:statusCode>403</oslc:statusCode>
        <oslc:message>The link type http://acme.com/linktype/implements is already defined.</oslc:message>
    </oslc:Error>
</rdf:RDF> 
Edit | Attach | Print version | History: r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r1 - 18 Jan 2010 - 19:07:27 - JimConallen
 
This site is powered by the TWiki collaboration platform Copyright � by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Contributions are governed by our Terms of Use
Ideas, requests, problems regarding this site? Send feedback