Ldx implementation for Configuration enabled CLM provider
I have followed the link for this implementation: https://jazz.net/wiki/bin/view/Deployment/IntegratingWithConfigurationManagementEnabledCLMApplications
This page says that your application should adopt ldx in order to get link information. What does this adopt mean, to consume or to provide ldx feed?
Currently the links between our artifacts and the artifacts from Jazz's QM module are not being stored in our application. My question is how can we store the links, in our application? Do we need to consume Jazz QM's ldx feed to get the link information? Should we also provide an ldx feed from our application, in order for Jazz's ldx module to consume it?
Another question is: if we delete some link (between qm's artifacts and our application's artifacts) from our application interface and reflect the change accordingly in our ldx feed, will jazz remove the link from it's QM module by processing our ldx feed?
@davidhoney @fryerk
Accepted answer
Sorry, I am just seeing your question!
With unidirectional linking, one application stores the link with the resource/artifact, and publishes the link via TRS feed to the link index (LDX). The partner application does not store the link with the resource, but queries LDX when that resource is loaded/requested to see if there are any links to it, in which case, those links are rendered with the resource (so it looks like they are stored).
At this time, QM "owns" all of the links to RM. So to adopt the unidirectional model, your RM application would need to consume LDX to query the link information. You could also choose to provide a TRS feed to LDX for RM > RM links.
If a user creates a link in your RM artifact to a QM artifact, your application should request that QM create that link in its artifact. QM will then also post the link info to LDX, which your artifact can then retrieve. (The created link shows up quite quickly in DNG in this scenario, so there might be a shortcut to displaying the link initially, although I'm not sure of those details; subsequent retrievals would be via LDX.)
Similarly, if a user deletes the link from your RM resource/artifact, your application would tell QM to delete the link; the QM TRS feed would update LDX, and when your application checks LDX, there would be no link to show.
Does that make sense?
5 other answers
Lonnie, check the OSLC TRS specification and OSLC Indexable Linked Data specification. I'm not aware of anything more specific on LDX integration at this time.
After studying a small sample of CCM, QM, and DM TRS traffic, it appears that LDX stores the "shape" of each TRS Change Resource URI in a separate named graph within the triplestore. Within these shapes are rdf#Statements that state the subject/object/predicate for a Link relationship. There does not appear to be a separate concept in the triplestore outside the named graph of shape resource for the Link instances. (This implies that LDX truly is just LQE with additional "business logic" on the outside to handle the requests for Link information.)
Not an Answer - a request for related information
Comments
I have found all the information regarding POST requests to LDX at following link:
https://jazz.net/wiki/bin/view/Main/BacklinkIndex
We have implemented this back link querying thing in our project and it is working as expected. I would be happy to answer any questions in this regard.
1 vote
Longer reply as an "Answer".
Saqib,
Hi Lonnie,
https://jazz.net/forum/questions/224236/rm-is-not-showing-links-to-the-qm-artifacts
Comments
"... if your application own the link e.g. it is a third party [OSLC] provider then your service provider should have this property supportContributionsToLinkIndexProvider set to true and then you should publish your resources along with link information to lqe and then Jazz's DNG will query ldx for link information then it is supposed to show these link in its own artifacts..."
This is the behavior we are expecting and for which I fail to see DNG honor the protocol. Also, it is nowhere stated what DNG expects to see in the LDX TRS for such information. We can guess that it expects to see TRS Change triples whose "object" is a URI to an OSLC Resource and that additional triples have that OSLC Resource as "subject" with "predicates" of various link types with "objects" being DNG resources. But there are no examples of this.