Jazz Forum Welcome to the Jazz Community Forum Connect and collaborate with IBM Engineering experts and users

How can I get DNG resourceShape with its resourceType URI using OSLC?

I posted a comment on this related forum post but thought I should break my question out separately.

I'm working on a huge program of work with 30+ Project Areas that all need to be consistent with each other, and I've built a JavaScript app that walks through all the project areas service catalogs, extracting the metadata for Artefacts, Attributes, Data Types, Links, Workflows, etc., and compares them with a master schema and each other and displays any inconsistencies.

The problem I'm facing is that there seems to be no way to relate resourceType (which contains the Artefact URIs we have assigned) with resourceShape (which contains the actual definition and metadata, but not the URI)

resourceShape is the only one that seems to not have the URI anywhere - Properties and their enumerated values, link types etc all have the propertyDefinition containing the URI, and resourceType only contains the URI we have assigned with no link to the shape that defines it. As an example, here's an excerpt from one of the project creationFactory entries:

<oslc:creationFactory>
   <oslc:CreationFactory>
     <oslc:resourceType rdf:resource="http://myuri.com/rm/types/SSRSRequirement" />
     <oslc:resourceShape rdf:resource="https://xxxxxxxxxx.com/rm/types/_JBeNIS8WEemd2MLGjr29ew" />
     <oslc:usage rdf:resource="http://open-services.net/ns/core#default" />
     <oslc:creation rdf:resource="https://xxxxxxxxxx.com/rm/requirementFactory?projectURL=https%3A%2F%2Fxxxxxxxxxx.com%2Frm%2Fprocess%2Fproject-areas%2F_8KqSwC8VEemd2MLGjr29ew" />
     <oslc:resourceType rdf:resource="http://open-services.net/ns/rm#Requirement" />
     <oslc:resourceShape rdf:resource="https://xxxxxxxxxx.com/rm/types/_4SvfEYjzEemKgdH8OULn_A" />
     <oslc:resourceType rdf:resource="http://myuri.com/rm/types/Issue" />
     <oslc:resourceType rdf:resource="http://myuri.com/rm/types/Requirement" />
     <oslc:resourceShape rdf:resource="https://xxxxxxxxxx.com/rm/types/_JBfbQS8WEemd2MLGjr29ew" />
     <oslc:resourceShape rdf:resource="https://xxxxxxxxxx.com/rm/types/_JBe0MS8WEemd2MLGjr29ew" />
     <dcterms:title rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Requirement Creation Factory</dcterms:title>
     <oslc:resourceType rdf:resource="http://www.ibm.com/xmlns/rdm/types/Heading" />
     <oslc:resourceType rdf:resource="http://myuri.com/rm/types/Standard" />
     <oslc:resourceShape rdf:resource="https://xxxxxxxxxx.com/rm/types/_JBwhAS8WEemd2MLGjr29ew" />
     <oslc:resourceType rdf:resource="http://myuri.com/rm/types/ProjectRequirement" />
     <oslc:resourceType rdf:resource="http://myuri.com/rm/types/SubsystemRequirement" />
     <oslc:resourceShape rdf:resource="https://xxxxxxxxxx.com/rm/types/_wxhuYwzfEequVbBjSH_nPg" />
     <oslc:resourceShape rdf:resource="https://xxxxxxxxxx.com/rm/types/_wxhuYAzfEequVbBjSH_nPg" />
     <oslc:resourceShape rdf:resource="https://xxxxxxxxxx.com/rm/types/_JBKrIS8WEemd2MLGjr29ew" />
     <oslc:resourceShape rdf:resource="https://xxxxxxxxxx.com/rm/types/_JBxIES8WEemd2MLGjr29ew" />
     <oslc:resourceType rdf:resource="http://www.ibm.com/xmlns/rdm/types/Information" />
     <oslc:resourceShape rdf:resource="https://xxxxxxxxxx.com/rm/types/_JBLSMi8WEemd2MLGjr29ew" />
     <oslc:resourceShape rdf:resource="https://xxxxxxxxxx.com/rm/types/_u4qe0XdvEemu-cvPrJP3Dg" />
     <oslc:resourceShape rdf:resource="https://xxxxxxxxxx.com/rm/types/_JBdmES8WEemd2MLGjr29ew" />
     <oslc:resourceShape rdf:resource="https://xxxxxxxxxx.com/rm/types/_u4rF43dvEemu-cvPrJP3Dg" />
     <oslc:resourceShape rdf:resource="https://xxxxxxxxxx.com/rm/types/_JBeNJS8WEemd2MLGjr29ew" />
     <oslc:resourceType rdf:resource="http://www.ibm.com/xmlns/rdm/types/Image" />
   </oslc:CreationFactory>
</oslc:creationFactory>

You can see the different oslc:resourceType entries with our URI, and also the oslc:resourceShape entries. The resourceShape entry for https://xxxxxxxxxx.com/rm/types/_wxhuYwzfEequVbBjSH_nPg is actually the shape that defines the resourceType "http://myuri.com/rm/types/ProjectRequirement" but if I go to that shape definition, there's nowhere that actually links the shape to the type.

Any help much appreciated!

1

0 votes



3 answers

Permanent link

 I have to same issue.  Any answer?  Lots of resourceShapes and resourceTypes in the same list and no apparent way to associate them.  The examples just pick the first shape listed which seems to result in a type other than the one I've specified being created.

0 votes


Permanent link
I found a way to do it but it's not officially documented.

You can use: https://<server>/rm/types?accept=*&private=true&resourceContext=<project URI>

where the project URI is the full URI with ID for the project area you're interested in. This allows you to get the entire schema with all URIs related correctly

0 votes


Permanent link

 Ah great - many thanks

0 votes

Your answer

Register or log in to post your answer.

Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.

Search context
Follow this question

By Email: 

Once you sign in you will be able to subscribe for any updates here.

By RSS:

Answers
Answers and Comments
Question details
× 10,948
× 516
× 139

Question asked: Jan 06 '20, 6:27 p.m.

Question was seen: 2,431 times

Last updated: Nov 05 '20, 3:40 a.m.

Confirmation Cancel Confirm