Clients wanting to create links from DM resources to other OSLC backed resources can only use registered predicates for links. A client can get a list of predicates from DM through its linktypes service. This service is considered an internal service and therefore requires the X-ibm-rmps-internal
header.
We start with the rootservices document to find the linktypes service end point, and we will also need the project ID of the project we want the registered link types for. The project ID can be found by looking at the DM projects service resource (See getting configuration scenarios). This resource lists each registered link type predicate as an rdfs:member
. It includes the name and a short description of the link types.
Look for the rmps:linktypes
service end point.
Request:
Headers
GET https://example.com:9435/dm/rootservices HTTP/1.1
Accept: application/rdf+xml
Response:
Headers
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
ETag: "nQQLPGLvSXh8NEYQhFJslNFmDkI="
Date: Thu, 27 Sep 2012 13:39:58 GMT
Expires: Thu, 27 Sep 2012 13:44:58 GMT
Cache-Control: public
Content-Type: application/rdf+xml;charset=UTF-8
Transfer-Encoding: chunked
<?xml version="1.0" encoding="UTF-8"?> <!-- Licensed Materials - Property of IBM Copyright IBM Corporation 2012. All Rights Reserved. Note to U.S. Government Users Restricted Rights: Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corporation. --> <rdf:Description rdf:about="https://example.com:9435/dm/rootservices" xmlns:dc="http://purl.org/dc/terms/" xmlns:fp="http://jazz.net/xmlns/prod/jazz/frontingapp/process/1.0/" xmlns:jd="http://jazz.net/xmlns/prod/jazz/discovery/1.0/" xmlns:jdb="http://jazz.net/xmlns/prod/jazz/dashboard/1.0/" xmlns:jfs="http://jazz.net/xmlns/prod/jazz/jfs/1.0/" xmlns:jp="http://jazz.net/xmlns/prod/jazz/process/1.0/" xmlns:jp06="http://jazz.net/xmlns/prod/jazz/process/0.6/" xmlns:jtp="http://jazz.net/xmlns/prod/jazz/jtp/0.6/" xmlns:ju="http://jazz.net/ns/ui#" xmlns:oslc="http://open-services.net/ns/core#" xmlns:oslc_am="http://open-services.net/ns/am#" xmlns:oslc_rm="http://open-services.net/xmlns/rm/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rh_dist="http://jazz.net/xmlns/dm/distribute/1.0/" xmlns:rhlocator="http://jazz.net/xmlns/rh/locator/1.0/" xmlns:rmps="http://jazz.net/xmlns/rmps/1.0/" xmlns:trs="http://jazz.net/ns/trs#" xmlns:vvc="http://jazz.net/ns/vvc#"> <!-- Root Services Resource document --> <dc:title xml:lang="en">Design Management</dc:title> <!-- JTS services --> <jd:discovery rdf:resource="https://example.com:9435/dm/discovery"/> <jd:friends rdf:resource="https://example.com:9435/dm/friends"/> <jd:infocenterRoot rdf:resource="https://example.com:9435/dm/../rdmhelp"/> <jd:viewletServiceRoot rdf:resource="https://example.com:9435/jts"/> <jd:viewletWebUIRoot rdf:resource="https://example.com:9435/dm"/> <jfs:oauthDomain>https://example.com:9435/jts,https://example.com:9435/dm</jfs:oauthDomain> <jfs:oauthRealmName>Jazz</jfs:oauthRealmName> <jfs:oauthAccessTokenUrl rdf:resource="https://example.com:9435/jts/oauth-access-token"/> <jfs:oauthApprovalModuleUrl rdf:resource="https://example.com:9435/jts/_ajax-modules/com.ibm.team.repository.AuthorizeOAuth"/> <jfs:oauthExpireTokenUrl rdf:resource="https://example.com:9435/jts/oauth-expire-token"/> <jfs:oauthRequestConsumerKeyUrl rdf:resource="https://example.com:9435/jts/oauth-request-consumer"/> <jfs:oauthRequestTokenUrl rdf:resource="https://example.com:9435/jts/oauth-request-token"/> <jfs:oauthUserAuthorizationUrl rdf:resource="https://example.com:9435/jts/oauth-authorize"/> <jfs:jauthCheckAuthUrl rdf:resource="https://example.com:9435/jts/jauth-check-auth"/> <jfs:jauthCheckTokenUrl rdf:resource="https://example.com:9435/jts/jauth-check-token"/> <jfs:jauthIssueTokenUrl rdf:resource="https://example.com:9435/jts/jauth-issue-token"/> <jfs:jauthProxyUrl rdf:resource="https://example.com:9435/jts/jauth-proxy"/> <jfs:jauthRevokeTokenUrl rdf:resource="https://example.com:9435/jts/jauth-revoke-token"/> <jfs:jauthSigninUrl rdf:resource="https://example.com:9435/jts/jauth-signin"/> <jfs:baselines rdf:resource="https://example.com:9435/dm/baselines"/> <jfs:bulkOperations rdf:resource="https://example.com:9435/dm/bulk"/> <jfs:changes rdf:resource="https://example.com:9435/dm/changes"/> <jfs:currentUser rdf:resource="https://example.com:9435/jts/whoami"/> <jfs:history rdf:resource="https://example.com:9435/dm/history"/> <jfs:indexing rdf:resource="https://example.com:9435/dm/indexing"/> <jfs:mailer rdf:resource="https://example.com:9435/jts/mailer"/> <jfs:query rdf:resource="https://example.com:9435/dm/query"/> <jfs:search rdf:resource="https://example.com:9435/dm/search"/> <jfs:storage rdf:resource="https://example.com:9435/dm/storage"/> <jfs:users rdf:resource="https://example.com:9435/jts/users"/> <jfs:serverRenameStatus rdf:resource="https://example.com:9435/dm/appServerRenameStatus"/> <jfs:setupWizardDescriptor rdf:resource="https://example.com:9435/dm/setup-descriptor"/> <jdb:dashboards rdf:resource="https://example.com:9435/jts/dashboards"/> <ju:widgetCatalog rdf:resource="https://example.com:9435/dm/WidgetCatalog"/> <jp06:processSecurity rdf:resource="https://example.com:9435/dm/process-security"/> <jp06:processTemplates rdf:resource="https://example.com:9435/dm/process/templates"/> <jp06:projectAreas rdf:resource="https://example.com:9435/dm/process/project-areas"/> <jtp:associations rdf:resource="https://example.com:9435/dm/process-authoring/associations"/> <jtp:defaultPracticeLibraryUrl rdf:resource="https://example.com:9435/dm/process-authoring/libraries/shared"/> <jtp:file rdf:resource="https://example.com:9435/dm/process-authoring/file"/> <jtp:license rdf:resource="https://example.com:9435/dm/process-authoring/license"/> <jtp:practices rdf:resource="https://example.com:9435/dm/process-authoring/practices"/> <jtp:processDescriptions rdf:resource="https://example.com:9435/dm/process-authoring/descriptions"/> <oslc:publisher rdf:resource="https://example.com:9435/dm/application-about"/> <!-- End of JTS services --> <jfs:adminWebUI rdf:resource="https://example.com:9435/dm/admin"/> <jd:registration rdf:resource="https://example.com:9435/dm/handleSetup"/> <jp:projectAreaInitService rdf:resource="https://example.com:9435/dm/initializationservice"/> <rmps:dsf rdf:resource="https://example.com:9435/dm/dsf"/> <rmps:dsv rdf:resource="https://example.com:9435/dm/dsv"/> <rmps:owlInput rdf:resource="https://example.com:9435/dm/owlInput"/> <rmps:transforms rdf:resource="https://example.com:9435/dm/transforms"/> <rmps:modelquery rdf:resource="https://example.com:9435/dm/modelquery"/> <rmps:oslcquery rdf:resource="https://example.com:9435/dm/oslcquery"/> <rmps:migration rdf:resource="https://example.com:9435/dm/migration"/> <rmps:graphLayout rdf:resource="https://example.com:9435/dm/graphLayout"/> <rmps:resourceState rdf:resource="https://example.com:9435/dm/resourceState"/> <rmps:imageInfo rdf:resource="https://example.com:9435/dm/imageInfo"/> <rmps:dtkEditorDef rdf:resource="https://example.com:9435/dm/dtk/EditorDefinition"/> <rmps:web rdf:resource="https://example.com:9435/dm/web"/> <rmps:comments rdf:resource="https://example.com:9435/dm/comments"/> <rmps:diagrams rdf:resource="https://example.com:9435/dm/diagrams"/> <rmps:models rdf:resource="https://example.com:9435/dm/models"/> <rmps:logical rdf:resource="https://example.com:9435/dm/logical"/> <rmps:dm-users rdf:resource="https://example.com:9435/dm/dm-users"/> <rmps:dm-search rdf:resource="https://example.com:9435/dm/dm-search"/> <rmps:status rdf:resource="https://example.com:9435/dm/status"/> <rmps:properties rdf:resource="https://example.com:9435/dm/properties"/> <rmps:info rdf:resource="https://example.com:9435/dm/info"/> <rmps:groups rdf:resource="https://example.com:9435/dm/groups"/> <rmps:projects rdf:resource="https://example.com:9435/dm/projects"/> <rmps:dminstall rdf:resource="https://example.com:9435/dm/dminstall"/> <rmps:auth rdf:resource="https://example.com:9435/dm/auth"/> <rmps:links rdf:resource="https://example.com:9435/dm/links"/> <rmps:linktypes rdf:resource="https://example.com:9435/dm/linktypes"/> <rmps:linkServiceProviders rdf:resource="https://example.com:9435/dm/linkServiceProviders"/> <rmps:dm-history rdf:resource="https://example.com:9435/dm/dm-history"/> <rmps:subscriptions rdf:resource="https://example.com:9435/dm/subscriptions"/> <rmps:validation rdf:resource="https://example.com:9435/dm/validation"/> <rmps:support rdf:resource="https://example.com:9435/dm/support"/> <rmps:explorer rdf:resource="https://example.com:9435/dm/explorer"/> <rmps:folders rdf:resource="https://example.com:9435/dm/folders"/> <rmps:dtkConfigure rdf:resource="https://example.com:9435/dm/dtkConfigure"/> <rmps:rendering rdf:resource="https://example.com:9435/dm/rendering"/> <rmps:reviews rdf:resource="https://example.com:9435/dm/reviews"/> <rmps:dm-baselines rdf:resource="https://example.com:9435/dm/dm-baselines"/> <rmps:dm-changesets rdf:resource="https://example.com:9435/dm/dm-changesets"/> <rmps:design rdf:resource="https://example.com:9435/dm/design"/> <rmps:streams rdf:resource="https://example.com:9435/dm/streams"/> <rmps:queries rdf:resource="https://example.com:9435/dm/queries"/> <rmps:metamodelconverter rdf:resource="https://example.com:9435/dm/metamodelconverter"/> <rmps:domainRegistry rdf:resource="https://example.com:9435/dm/domainRegistry"/> <rmps:compare rdf:resource="https://example.com:9435/dm/compare"/> <rmps:compareWithPrevious rdf:resource="https://example.com:9435/dm/compareWithPrevious"/> <rmps:rdfdirectory rdf:resource="https://example.com:9435/dm/rdfdirectory"/> <rmps:modelvalidation rdf:resource="https://example.com:9435/dm/modelvalidation"/> <rmps:fileUpload rdf:resource="https://example.com:9435/dm/fileUpload"/> <rmps:clmSampleProject rdf:resource="https://example.com:9435/dm/clmSampleProject"/> <rmps:queryvvc rdf:resource="https://example.com:9435/dm/queryvvc"/> <rmps:trackedResourceSetProvider> <trs:TrackedResourceSetProvider> <trs:trackedResourceSet rdf:resource="https://example.com:9435/dm/trs"/> </trs:TrackedResourceSetProvider> </rmps:trackedResourceSetProvider> <fp:processProxy rdf:resource="https://example.com:9435/dm/processProxy"/> <rmps:importer dcterms:title="Rational Software Architect Import Service" rdf:resource="https://example.com:9435/dm/importer" xmlns:dcterms="http://purl.org/dc/terms/"/> <oslc_am:amServiceProviders rdf:resource="https://example.com:9435/dm/oslc_am"/> <oslc_rm:rmServiceProviders rdf:resource="https://example.com:9435/dm/oslc_rm"/> <rh_dist:distcenter dcterms:title="Design Management Query and Search Services" rdf:resource="https://example.com:9435/dm/distcenter" xmlns:dcterms="http://purl.org/dc/terms/"/> <rh_dist:query dcterms:title="Design Management JTS-Query Proxy" rdf:resource="https://example.com:9435/dm/distcenter/query" xmlns:dcterms="http://purl.org/dc/terms/"/> <rh_dist:indexing dcterms:title="Design Management JTS-Indexing Proxy" rdf:resource="https://example.com:9435/dm/distcenter/indexing" xmlns:dcterms="http://purl.org/dc/terms/"/> <rh_dist:baselines dcterms:title="Design Management JTS-BaseLines Proxy" rdf:resource="https://example.com:9435/dm/distcenter/baselines" xmlns:dcterms="http://purl.org/dc/terms/"/> <rhlocator:existingtools dcterms:title="Design Management for Existing Tools" rdf:resource="https://example.com:9435/dm/rhlocator/existingtools" xmlns:dcterms="http://purl.org/dc/terms/"/> <rhlocator:ld dcterms:title="Design Management of Tool's specific Leading Dimensions" rdf:resource="https://example.com:9435/dm/rhlocator/ld" xmlns:dcterms="http://purl.org/dc/terms/"/> <rhlocator:locate dcterms:title="Design Management" rdf:resource="https://example.com:9435/dm/rhlocator/locate" xmlns:dcterms="http://purl.org/dc/terms/"/> <vvc:eventReceiver rdf:resource="https://example.com:9435/dm/vvcEventReceiver"/> </rdf:Description>
In this example the project ID is _ATqQYvddEeGIbrXzZZZ7PA
. Appending the project ID to the link types service URL creates the URI for the registerd link types for the given project. GETting the resource we can see all the link types regisgtered for this project. The DM internal header is required.
Request:
Headers
GET https://example.com:9435/dm/linktypes/_ATqQYvddEeGIbrXzZZZ7PA HTTP/1.1
Accept: application/rdf+xml
X-ibm-rmps-internal: true
Response:
Headers
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: application/atom+xml
Content-Length: 3840
Date: Thu, 27 Sep 2012 13:39:59 GMT
<?xml version="1.0" encoding="UTF-8"?> <rdf:RDF xmlns:dcterms="http://purl.org/dc/terms/" xmlns:oslc="http://open-services.net/ns/core#" xmlns:oslc_am="http://open-services.net/ns/am#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"> <oslc:ResponseInfo rdf:about="https://example.com:9435/dm/linktypes/_ATqQYvddEeGIbrXzZZZ7PA"> <dcterms:title>JKE Banking (Design Management) Link Types</dcterms:title> </oslc:ResponseInfo> <rdf:Description rdf:about="https://example.com:9435/dm/linktypes/_ATqQYvddEeGIbrXzZZZ7PA"> <rdfs:member> <oslc_am:LinkType rdf:about="http://jazz.net/xmlns/rmps/1.0//bpmn/1.0/operationLink"> <dcterms:title>Supported Operation</dcterms:title> <dcterms:description>A link from a BPMN service task to a supported UML operation</dcterms:description> </oslc_am:LinkType> </rdfs:member> <rdfs:member> <oslc_am:LinkType rdf:about="http://open-services.net/ns/rm#trackedBy"> <dcterms:title>Requirement Tracked By</dcterms:title> <dcterms:description>The requirement is tracked by the linked resource. </dcterms:description> </oslc_am:LinkType> </rdfs:member> <rdfs:member> <oslc_am:LinkType rdf:about="http://jazz.net/ns/dm/linktypes#external"> <dcterms:title>External Web Page</dcterms:title> <dcterms:description>A generic link from a resource to an external web page.</dcterms:description> </oslc_am:LinkType> </rdfs:member> <rdfs:member> <oslc_am:LinkType rdf:about="http://jazz.net/xmlns/rmps/1.0//bpmn/1.0/interfaceLink"> <dcterms:title>Supported Interface</dcterms:title> <dcterms:description>A link from a BPMN process to a supported UML interface</dcterms:description> </oslc_am:LinkType> </rdfs:member> <rdfs:member> <oslc_am:LinkType rdf:about="http://jazz.net/ns/dm/linktypes#internal"> <dcterms:title>Internal Link</dcterms:title> <dcterms:description>A generic link from a resource to another resource in the same project.</dcterms:description> </oslc_am:LinkType> </rdfs:member> <rdfs:member> <oslc_am:LinkType rdf:about="http://open-services.net/ns/rm#affectedBy"> <dcterms:title>Requirement Affected By</dcterms:title> <dcterms:description>The requirement is affected by the linked resource. </dcterms:description> </oslc_am:LinkType> </rdfs:member> <rdfs:member> <oslc_am:LinkType rdf:about="http://open-services.net/ns/rm#implementedBy"> <dcterms:title>Requirement Implemented By</dcterms:title> <dcterms:description>The requirement is implemented by the linked resource. </dcterms:description> </oslc_am:LinkType> </rdfs:member> <rdfs:member> <oslc_am:LinkType rdf:about="http://www.ibm.com/ccl/soa/deploy/notation/1.0.0//DeployStyle.figureImageURI"> <dcterms:title>Image Link</dcterms:title> <dcterms:description>A link from a topology diagram to an image</dcterms:description> </oslc_am:LinkType> </rdfs:member> <rdfs:member> <oslc_am:LinkType rdf:about="http://www.eclipse.org/uml2/3.0.0/UML/TypedElement.type"> <dcterms:title>Type Link</dcterms:title> <dcterms:description>A link from a UML typed element to its type</dcterms:description> </oslc_am:LinkType> </rdfs:member> <rdfs:member> <oslc_am:LinkType rdf:about="http://www.ibm.com/xtools/bpmn/2.0/Import.location"> <dcterms:title>Import</dcterms:title> <dcterms:description>An import link from a BPMN definition to an external model</dcterms:description> </oslc_am:LinkType> </rdfs:member> </rdf:Description> </rdf:RDF>