- From: Ron Siemens <rsiemens77@hotmail.com>
- Date: Fri, 1 May 2015 15:54:03 -0700
- To: "public-linked-json@w3.org" <public-linked-json@w3.org>
- Message-ID: <BAY177-W428C3DE237C2DFED810686D7D50@phx.gbl>
These are the interfaces and JSON results I've been discussing, and below are my attempts at possible context for these to allow an off-the-shelf tool to query this tree. Can anyone suggest improvements or better alternatives? I don't think I'm finding the proper solution. http://biohost1:3777/v1/growths9/tree/{tree_name} http://biohost1:3777/v1/growths9/branch/{branch_name} http://biohost1:3777/v1/growths9/leaf/{leaf_name} tree { "tree_id":"100", "tree_name":"maple", "root_branch":"root_branch" } branch { "branch_id":"200", "branch_name":"root_branch", "branches":[ { "branch_id":"201", "branch_name":"sub1_branch" }, { "branch_id":"202", "branch_name":"sub2_branch" } ], "leaves":[ { "leaf_id":"500", "leaf_name":"leaf1" }, { "leaf_id":"501", "leaf_name":"leaf3" }, { "leaf_id":"502", "leaf_name":"leaf4" } ], "age":"20" } leaf { "leaf_id":"500", "leaf_name":"leaf1", "area":"10", "age":"3" } ------------------------------------------------------------------------------- Attempt 1 I found I could use different "@base" by having different contexts, resulting in this context and associated expansion. However, I'm not sure how to use a similar solution with a header-linked context: how could you have 2 contexts in that case applying to different parts of the object? [ { "@context": { "@vocab": "http://biohost1:3777/vocab#", "@base": "http://biohost1:3777/v1/growths9/branches/", "branch_name": { "@type":"@id" } }, "id":"200", "branch_name":"root_branch" }, { "@context": { "@vocab": "http://biohost1:3777/vocab#", "@base": "http://biohost1:3777/v1/growths9/leaves/", "leaf_name": { "@type":"@id" }, "age":null }, "branches":[ { "branch_id":"201", "branch_name":"sub1_branch" }, { "branch_id":"202", "branch_name":"sub2_branch" } ], "leaves":[ { "leaf_id":"500", "leaf_name":"leaf1" }, { "leaf_id":"501", "leaf_name":"leaf3" }, { "leaf_id":"502", "leaf_name":"leaf4" } ], "age":"20" } ] Expanding to: [ { "http://biohost1:3777/vocab#branch_name": [ { "@id": "http://biohost1:3777/v1/growths9/branches/root_branch" } ], "http://biohost1:3777/vocab#id": [ { "@value": "200" } ] }, { "http://biohost1:3777/vocab#branches": [ { "http://biohost1:3777/vocab#branch_id": [ { "@value": "201" } ], "http://biohost1:3777/vocab#branch_name": [ { "@value": "sub1_branch" } ] }, { "http://biohost1:3777/vocab#branch_id": [ { "@value": "202" } ], "http://biohost1:3777/vocab#branch_name": [ { "@value": "sub2_branch" } ] } ], "http://biohost1:3777/vocab#leaves": [ { "http://biohost1:3777/vocab#leaf_id": [ { "@value": "500" } ], "http://biohost1:3777/vocab#leaf_name": [ { "@id": "http://biohost1:3777/v1/growths9/leaves/leaf1" } ] }, { "http://biohost1:3777/vocab#leaf_id": [ { "@value": "501" } ], "http://biohost1:3777/vocab#leaf_name": [ { "@id": "http://biohost1:3777/v1/growths9/leaves/leaf3" } ] }, { "http://biohost1:3777/vocab#leaf_id": [ { "@value": "502" } ], "http://biohost1:3777/vocab#leaf_name": [ { "@id": "http://biohost1:3777/v1/growths9/leaves/leaf4" } ] } ] } ] ------------------------------------------------------------------------------- Attempt 2 Curiously, I found it easier to get my desired link formats when playing with the @type as below. I couldn't figure out a way to do this with the @id other than the dual contexts above. Although the expansion below has the linking information I want, I imagine this isn't going to work with off-the-shelf browsing tools which probably expect to use @id. { "@context": { "@vocab": "http://biohost1:3777/v1/growths9/", "@base": null, "branch_name": { "@type":"branches" }, "leaf_name": { "@type":"leaves" }, "branch_id":null, "age":null }, "id":"200", "branch_name":"root_branch", "branches":[ { "branch_id":"201", "branch_name":"sub1_branch" }, { "branch_id":"202", "branch_name":"sub2_branch" } ], "leaves":[ { "leaf_id":"500", "leaf_name":"leaf1" }, { "leaf_id":"501", "leaf_name":"leaf3" }, { "leaf_id":"502", "leaf_name":"leaf4" } ], "age":"20" } Expanding to: [ { "http://biohost1:3777/v1/growths9/branch_name": [ { "@type": "http://biohost1:3777/v1/growths9/branches", "@value": "root_branch" } ], "http://biohost1:3777/v1/growths9/branches": [ { "http://biohost1:3777/v1/growths9/branch_name": [ { "@type": "http://biohost1:3777/v1/growths9/branches", "@value": "sub1_branch" } ] }, { "http://biohost1:3777/v1/growths9/branch_name": [ { "@type": "http://biohost1:3777/v1/growths9/branches", "@value": "sub2_branch" } ] } ], "http://biohost1:3777/v1/growths9/id": [ { "@value": "200" } ], "http://biohost1:3777/v1/growths9/leaves": [ { "http://biohost1:3777/v1/growths9/leaf_id": [ { "@value": "500" } ], "http://biohost1:3777/v1/growths9/leaf_name": [ { "@type": "http://biohost1:3777/v1/growths9/leaves", "@value": "leaf1" } ] }, { "http://biohost1:3777/v1/growths9/leaf_id": [ { "@value": "501" } ], "http://biohost1:3777/v1/growths9/leaf_name": [ { "@type": "http://biohost1:3777/v1/growths9/leaves", "@value": "leaf3" } ] }, { "http://biohost1:3777/v1/growths9/leaf_id": [ { "@value": "502" } ], "http://biohost1:3777/v1/growths9/leaf_name": [ { "@type": "http://biohost1:3777/v1/growths9/leaves", "@value": "leaf4" } ] } ] } ]
Received on Friday, 1 May 2015 22:54:32 UTC