[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [sarif] Let's talk about nested graphs
{ # A result object
"graphs": [
{
"id": "file_a",
"nodes": [
{
"id": "function_a",
"nestedGraphId": "function_a"
},
{
"id": "function_b",
"nestedGraphId": "function_b"
}
],
},
{
"id": "function_a",
"nodes": [
{
"id": "a1",
},
{
"id": "a2",
},
{
"id": "a3"
}
],
"edges": [
...
{
"id": "e1",
"sourceNodeId" : "a2",
"targetNodeId" : "b1",
"targetGraphId" : "function_b"
}
]
},
{
"id": "function_b",
"nodes": [
{
"id": "b1"
},
"edges": [
...
{
"id": "e1",
"sourceNodeId" : "b1",
"targetNodeId" : "a3",
"targetGraphId" : "function_a"
}
]
]
}
],
...
}
Luke, any thoughts on this?
From: sarif@lists.oasis-open.org <sarif@lists.oasis-open.org> On Behalf Of Larry Golding (Comcast)
Sent: Thursday, April 19, 2018 2:49 PM
To: Luke Cartey <luke@semmle.com>; sarif@lists.oasis-open.org
Subject: [sarif] Let's talk about nested graphs
I’m curious how nested graphs are used. Here’s what I mean:
You saw the proposal for “nested traversals”. If an edge has a nestedGraphTraversalId property, then when the user is about to traverse that edge, the viewer can offer them the choice of diving into or stepping over the nested traversal. (A debugger-like F10/F11 experience would be nice.) And since a traversal is single-entry, single-exit, there’s no ambiguity about how to navigate through the nested traversal.
Now let’s do something similar for graphs: insides one of the nodes of the graph for function_a, we nest a reference to the graph for function_b (see below).
My question is, who consumes this information? What do they do with it? Is this the right representation for these consumers-who-I-don’t-yet-know-anything-about? Or do they need something different, or richer?
My point is that, from the point of view of an end user experience, I have a very concrete understanding of why nested traversals are helpful, and I have no understanding of how nested graphs are helpful.
Thanks,
Larry
{ # A result object
"graphs": [
{
"id": "function_a",
"nodes": [
{
"id": "a1",
},
{
"id": "a2",
"nestedGraphId": "function_b"
},
{
"id": "a3"
}
],
"edges": [
...
]
},
{
"id": "function_b",
"nodes": [
{
"id": "b1"
},
...
]
}
],
...
}
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]