It's all about the answers!

Ask a question

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


0
1
Davyd Norris (2.9k217) | asked Jan 06 '20, 6:27 p.m.
edited Jan 06 '20, 6:35 p.m.
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!

3 answers



permanent link
Andy Dennis (119) | answered Nov 04 '20, 12:14 p.m.

 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.


permanent link
Davyd Norris (2.9k217) | answered Nov 04 '20, 4:59 p.m.
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


permanent link
Andy Dennis (119) | answered Nov 05 '20, 3:40 a.m.

 Ah great - many thanks

Your answer


Register or 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.