Yes such deep links are a common scenario. We have a convenience function teamwork:editorLink for this job. For 5.3 this takes three arguments (projectGraph, resource (optional), tag (optional)) and has the following body:

SELECT ?link
WHERE {
BIND (CONCAT(teamwork:graphIdFromGraph(?projectGraph), IF(bound(?tag), CONCAT(".", teamwork:tagId(?tag)), ""), ".editor", IF(bound(?resource), CONCAT("#", ENCODE_FOR_URI(str(?resource))), "")) AS ?link) .
}

It's basically producing the URL that you see when the editor starts plus the deep link after the #

(In 5.2 this function exists too but does not yet support working copies, which I believe would not be needed by your use case anyway)

HTH
Holger


On 10/01/2017 3:31, Adam Kimball wrote:

Thanks for this info, Holger.

I'm sure I didn't explain myself well enough in the previous post. What I'd really like to do is create a link from one EVN vocabulary to another. Let's assume I have two projects:

Project A - Taxonomy

Project B - Ontology

Sometimes, it will be beneficial for users in Project A to follow a link to a resource /inside/ Project B. I'm wondering if there is a helper function somewhere we I can say, render a like to Resource X within Project B.

Let me know if that makes sense, and thanks again.

-Adam

*From: *<[email protected]> on behalf of Holger Knublauch <[email protected]> *Reply-To: *"[email protected]" <[email protected]>
*Date: *Thursday, December 29, 2016 at 8:32 PM
*To: *"[email protected]" <[email protected]>
*Subject: *Re: [topbraid-users] Generating links to non-imported taxonomies/ontologies in EVN

Hi Adam,

the swa:ResultSetObjectsViewer eventually calls swa:ObjectViewer, which is the extension point to custom viewers. So to implement special handling of certain values, I would recommend creating a subclass of swa:ObjectViewer similar to swa:URIResourcViewer (e.g. start with a clone of that). Modify the swa:objectWidgetWeight so that your widget is chosen for "external" resources, e.g. those that have no rdf:type triple, with a swa:weight of +10 or so. You could also make your widget selectable by predicate if all values of that property only has external values: use something like ?predicate = ex:myProperty as swa:expression.

HTH
Holger



On 23/12/2016 3:58, Adam Kimball wrote:

    Hi all,

    I have a form which displays some incoming references on the
    instance view.  For instance:

         <swa:ObjectsEnum arg:hideIfEmpty="false" arg:label="Content
        Asset Mappings" arg:open="false" arg:openable="true">

                <ui:setContext ui:queryGraph="{=
    ui:graphWithImports(hw-int-spin:getCurrentContentAssetGraph()) }">

                    <ui:call arg:concept="{= ?this }"
    ui:template="hw-int-spin:L1ContentAssetsForConceptTemplate">

    <swa:ResultSetObjectsView arg:label="Level 1" arg:resultSet="{=
    ?rs }"/>

                    </ui:call>

                </ui:setContext>

            </swa:ObjectsEnum>

    I use this pattern quite regularly to tie to closely related (but
    not imported) vocabularies together and it works great.  I get the
    output on the form like I wanted.  The issue is that the links
    that are rendered from the swa:ResultSetObjectsView widget makes
    links that assume the resource is in scope, which it isn't.  What
    I would like to do is customize the ResultSetObjectsView object
    such that I can provide a master graph and have it render the
    links to that.  When I traced the link source code, it seemed like
    my solution would likely include overriding
    http://topbraid.org/swa#createDefaultLink but I'm not convinced
    that this is right.

    Hoping someone might point me towards some docs or an example that
    might help me.

    Thanks and Happy Holidays-

    Adam

-- You received this message because you are subscribed to the Google
    Group "TopBraid Suite Users", the topics of which include the
    TopBraid Suite family of products and its base technologies such
    as SPARQLMotion, SPARQL Web Pages and SPIN.
    To post to this group, send email to
    [email protected]
    <mailto:[email protected]>
    ---
    You received this message because you are subscribed to the Google
    Groups "TopBraid Suite Users" group.
    To unsubscribe from this group and stop receiving emails from it,
    send an email to [email protected]
    <mailto:[email protected]>.
    For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Group "TopBraid Suite Users", the topics of which include the TopBraid Suite family of products and its base technologies such as SPARQLMotion, SPARQL Web Pages and SPIN.
To post to this group, send email to [email protected]
---
You received this message because you are subscribed to the Google Groups "TopBraid Suite Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected] <mailto:[email protected]>.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Group "TopBraid Suite Users", the topics of which include the TopBraid Suite family of products and its base technologies such as SPARQLMotion, SPARQL Web Pages and SPIN.
To post to this group, send email to [email protected]
---
You received this message because you are subscribed to the Google Groups "TopBraid Suite Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected] <mailto:[email protected]>.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Group "TopBraid 
Suite Users", the topics of which include the TopBraid Suite family of products and 
its base technologies such as SPARQLMotion, SPARQL Web Pages and SPIN.
To post to this group, send email to [email protected]
--- You received this message because you are subscribed to the Google Groups "TopBraid Suite Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to