10  OML-Vision diagramLayout Auto Generation

This is a prototype for automatically generate data-sets for oml-vision.

10.1 Prototype-1: Decomposition Tree Diagram

10.1.1 Reusable functions to generate query codes.

source("../../osr_common.R")
source("../../omlvision_wrapper.R")

10.1.2 Keys

targetConcept = c("structure:System structure:Subsystem structure:Assembly")
targetRelation = "base:isContainedIn"
nodeColor = "salmon"
nodeTextColor = "white"

df_keys <- omlvisionDecomposition(omlrepo, targetConcept,targetRelation,nodeColor,nodeTextColor)
cat(df_keys$querytext)
PREFIX base:        <http://imce.jpl.nasa.gov/foundation/base#>
PREFIX mission:     <http://imce.jpl.nasa.gov/foundation/mission#>
PREFIX structure:   <http://opencaesar.io/open-source-rover/vocabulary/structure#>
PREFIX vim4:        <http://bipm.org/jcgm/vim4#>
PREFIX base:        <http://imce.jpl.nasa.gov/foundation/base#>

SELECT DISTINCT ?c1 ?c1_instancename ?c1_1d ?c1_name ?c2 ?c2_instancename ?c2_1d ?c2_name 
WHERE {

  VALUES ?componentType { structure:System structure:Subsystem structure:Assembly }

  ?c1 a ?componentType ;
    base:hasIdentifier ?c1_1d ;
    base:hasCanonicalName ?c1_name ;

  OPTIONAL{
    ?c1 base:isContainedIn ?c2 ;
    OPTIONAL{
      ?c2 base:hasIdentifier ?c2_1d ;
          base:hasCanonicalName ?c2_name .
    }
  }


  BIND(STRAFTER(STR(?c1), "#") AS ?c1_instancename) .
  BIND(STRAFTER(STR(?c2), "#") AS ?c2_instancename) .
 }
ORDER BY ?c1_1d
cat("\n")
cat(df_keys$diagramLayouttext)
{
  "name": "decompositions-autogen",
  "queries": {
    "node": "auto_components.sparql",
    "edge": "auto_components.sparql"
  },
  "rowMapping": {
    "id": "node",
    "name": "Parent",
    "labelFormat": "{c1_instancename}",
    "nodeColor": "salmon",
    "nodeTextColor": "white",
    "nodeType": "NA",
    "edgeMatchKey": "c1_instancename"
  },
  "edges": [
    {
      "id": "edge",
      "name": "Edge",
      "animated": true,
      "labelFormat": "base:isContainedIn",
      "legendItems": "c2_instancename",
      "sourceKey": "c1_instancename",
      "targetKey": "c2_instancename"
    }
  ]
}
cat("\n")
cat(df_keys$pagetext)
        {
          "title": "decompositions-autogen",
          "treeIcon": "outline-view-icon",
          "path": "decompositions-autogen",
          "isDiagram": true
        },

10.2 Prototype-2: Block Diagram

10.3 Table