{"id":8491,"date":"2023-10-06T10:00:11","date_gmt":"2023-10-06T09:00:11","guid":{"rendered":"https:\/\/www.threesl.com\/blog\/?p=8491"},"modified":"2023-06-13T10:07:29","modified_gmt":"2023-06-13T09:07:29","slug":"cradle-modules-swe","status":"publish","type":"post","link":"https:\/\/www.threesl.com\/blog\/cradle-modules-swe\/","title":{"rendered":"Cradle Modules &#8211; SWE"},"content":{"rendered":"<h2>Cradle-SWE Module<\/h2>\n<p>The Cradle <strong>SWE<\/strong> module provides <a href=\"https:\/\/www.threesl.com\/cradle\/help\/7.7\/#headingpages\/crev.htm\">reverse engineering<\/a> and <a href=\"https:\/\/www.threesl.com\/cradle\/help\/7.7\/#headingpages\/cgen.htm\">code generation<\/a> to maintain consistency between a detailed system design and its software implementation.<\/p>\n<figure id=\"attachment_8653\" aria-describedby=\"caption-attachment-8653\" style=\"width: 356px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-8653 size-full\" src=\"https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2023\/04\/rc00518-UK_SWE.jpg\" alt=\"Cradle SWE Module\" width=\"356\" height=\"219\" srcset=\"https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2023\/04\/rc00518-UK_SWE.jpg 356w, https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2023\/04\/rc00518-UK_SWE-300x185.jpg 300w\" sizes=\"auto, (max-width: 356px) 100vw, 356px\" \/><figcaption id=\"caption-attachment-8653\" class=\"wp-caption-text\">Cradle Software Engineering SWE Module<\/figcaption><\/figure>\n<h3>Software Engineering<\/h3>\n<p>There are many contexts for software engineering, each using its own methods and languages. This module is intended for groups using functional methods to build software in C, Ada or Pascal.<\/p>\n<p>Detailed software designs are represented using <a href=\"https:\/\/www.threesl.com\/cradle\/help\/7.7\/#systemmodelling\/other\/stc.htm\">Structure Charts<\/a> (STCs) with 3SL extensions to support:<\/p>\n<ul>\n<li>Hierarchical descriptions of software into systems<\/li>\n<li>Programs<\/li>\n<li>Subsystems<\/li>\n<li>Modules and source files<\/li>\n<li>Representation of functions<\/li>\n<li>Representation of basic data types<\/li>\n<\/ul>\n<p>Software designs are described with diagrams, data definitions and module specifications that hold the pseudo code, descriptions or source code. This software design is cross referenced to architecture, design\/analysis models, to requirements\/test cases, and to all other data.<\/p>\n<p>The initial design can be code generated to:<\/p>\n<ul>\n<li>C, Ada and Pascal type definition header files (built from the model&#8217;s data definitions)<\/li>\n<li>Source files that contain the call hierarchy from the STCs<\/li>\n<li>Call arguments and local variable declarations<\/li>\n<li>Content of the STC&#8217;s module specifications&#8217; pseudo code or detailed design material.<\/li>\n<\/ul>\n<p>Once algorithmic content is added to the generated code, the resulting completed source files can be reverse engineered back into the Cradle database, to update its design diagrams, and both the data definitions and module specifications of these diagrams&#8217; symbols.<\/p>\n<h3>Reverse Engineering<\/h3>\n<p>Reverse engineering merges the actual source code into the design definitions and specifications. Each source file is subdivided into the individual routines. The component parts are then stored into separate frames in the module specification and data definition items in the database. Every line in each source file is stored in a frame of one of these items in the database.<\/p>\n<p>The <a href=\"https:\/\/www.threesl.com\/cradle\/help\/7.7\/#headingpages\/cgen.htm\">Code Generator<\/a> can be run on the results of the reverse engineering to reconstruct the source files, either as they were, or including any changes made in the design model. In this case, the source code is generated using call interfaces built from the (possibly modified) STCs and the routines&#8217; bodies are created from either the STC call hierarchy or the source code from the previous reverse engineer operation.<\/p>\n<p>The process can start by reverse engineering legacy source code into an initial design model, recovering designs in situations where only the implementation currently exists.<\/p>\n<p>As reverse engineering loads all source files into the database, the source files could be deleted, and instead configuration managed through the Cradle <a href=\"https:\/\/www.threesl.com\/cradle\/help\/7.7\/#headingpages\/configurationmanagement.htm\">Configuration Management System<\/a> as part of the design.<\/p>\n<p>The diagrams, specifications and data definitions can contain any number of attributes, including URLs to reference the source code in a source code control system, such as <a href=\"https:\/\/git-scm.com\/\">Git<\/a> or <a href=\"https:\/\/subversion.apache.org\/\">Subversion<\/a>.<\/p>\n<h3>Format of Generated Code<\/h3>\n<p>The format of all generated code can be tailored to match your coding standards. Data definitions can be marked to be standard data types and generated into the source code. Header files can be produced from the composition specifications inside the data definitions to create record and variant structure declarations.<\/p>\n<h3>Support<\/h3>\n<p>The reverse engineering tool supports any compiler programs and conditional compilation directives. It can distinguish application code, application libraries and standard library or operating system \/ runtime routines, and render the design diagrams accordingly. This uses any combination of regular expressions, and Cradle-supplied or user-defined library routine lists.<\/p>\n<p>Reverse engineering can process one or more source files in one run, creating a hierarchy of design diagrams to represent the code structure beyond individual source files.<\/p>\n<h3>Full Traceability<\/h3>\n<p>Using the reverse engineering tool creates full traceability across the entire system lifecycle, from user needs to system requirements to analysis, architecture and design models, to test procedures, specifications and test cases, to the source code. Cradle&#8217;s transitive cross reference view facilities allow users to directly see the user requirements and acceptance criteria associated with each source code module, and vice versa.<\/p>\n<h2>Feature Summary<\/h2>\n<figure id=\"attachment_8708\" aria-describedby=\"caption-attachment-8708\" style=\"width: 845px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-8708\" src=\"https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2023\/05\/feature_summary_swe.png\" alt=\"Feature Summary - SWE\" width=\"845\" height=\"379\" srcset=\"https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2023\/05\/feature_summary_swe.png 845w, https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2023\/05\/feature_summary_swe-300x135.png 300w, https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2023\/05\/feature_summary_swe-768x344.png 768w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><figcaption id=\"caption-attachment-8708\" class=\"wp-caption-text\">Feature Summary &#8211; SWE<\/figcaption><\/figure>\n<p>Please <a href=\"mailto:salesdetails@threesl.com?subject=Cradle SWE licence\">contact<\/a> 3SL for further information about adding a Cradle <strong>SWE<\/strong> module to your existing system.<\/p>\n<aside class=\"mashsb-container mashsb-main mashsb-stretched\"><div class=\"mashsb-box\"><div class=\"mashsb-buttons\"><a class=\"mashicon-twitter mash-small mash-center mashsb-noshadow\" href=\"https:\/\/twitter.com\/intent\/tweet?text=&amp;url=https:\/\/www.threesl.com\/blog\/cradle-modules-swe\/&amp;via=threesl\" target=\"_top\" rel=\"nofollow\"><span class=\"icon\"><\/span><span class=\"text\">Tweet<\/span><\/a><a class=\"mashicon-facebook mash-small mash-center mashsb-noshadow\" href=\"https:\/\/www.facebook.com\/sharer.php?u=https%3A%2F%2Fwww.threesl.com%2Fblog%2Fcradle-modules-swe%2F\" target=\"_top\" rel=\"nofollow\"><span class=\"icon\"><\/span><span class=\"text\">Share<\/span><\/a><a class=\"mashicon-subscribe mash-small mash-center mashsb-noshadow\" href=\"#\" target=\"_top\" rel=\"nofollow\"><span class=\"icon\"><\/span><span class=\"text\">Newsletter<\/span><\/a><div class=\"onoffswitch2 mash-small mashsb-noshadow\" style=\"display:none\"><\/div><\/div>\n            <\/div>\n                <div style=\"clear:both\"><\/div><\/aside>\n            <!-- Share buttons by mashshare.net - Version: 4.0.47-->","protected":false},"excerpt":{"rendered":"<p>Cradle-SWE Module The Cradle SWE module provides reverse engineering and code generation to maintain consistency between a detailed system design and its software implementation. Software Engineering There are many contexts for software engineering, each using its own methods and languages. This module is intended for groups using functional methods to build software in C, Ada &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.threesl.com\/blog\/cradle-modules-swe\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Cradle Modules &#8211; SWE&#8221;<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_lmt_disableupdate":"no","_lmt_disable":"no","footnotes":""},"categories":[78],"tags":[475,300],"class_list":["post-8491","post","type-post","status-publish","format-standard","hentry","category-articles","tag-cradle","tag-cradle-modules"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Cradle Software Engineering SWE Module<\/title>\n<meta name=\"description\" content=\"This module provides reverse engineering\/code generation to maintain consistency between a detailed design and its software implementation.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.threesl.com\/blog\/cradle-modules-swe\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Cradle Software Engineering SWE Module\" \/>\n<meta property=\"og:description\" content=\"This module provides reverse engineering\/code generation to maintain consistency between a detailed design and its software implementation.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.threesl.com\/blog\/cradle-modules-swe\/\" \/>\n<meta property=\"og:site_name\" content=\"3SL Blog\" \/>\n<meta property=\"article:publisher\" content=\"http:\/\/facebook.com\/3SLCradle\" \/>\n<meta property=\"article:published_time\" content=\"2023-10-06T09:00:11+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2023\/04\/rc00518-UK_SWE.jpg\" \/>\n<meta name=\"author\" content=\"Jan Lamb\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@threesl\" \/>\n<meta name=\"twitter:site\" content=\"@threesl\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jan Lamb\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/cradle-modules-swe\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/cradle-modules-swe\\\/\"},\"author\":{\"name\":\"Jan Lamb\",\"@id\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/#\\\/schema\\\/person\\\/4be1c5043a6af6683cc5592c94a0872f\"},\"headline\":\"Cradle Modules &#8211; SWE\",\"datePublished\":\"2023-10-06T09:00:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/cradle-modules-swe\\\/\"},\"wordCount\":678,\"publisher\":{\"@id\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/cradle-modules-swe\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/rc00518-UK_SWE.jpg\",\"keywords\":[\"Cradle\",\"Cradle modules\"],\"articleSection\":[\"Articles\"],\"inLanguage\":\"en-GB\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/cradle-modules-swe\\\/\",\"url\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/cradle-modules-swe\\\/\",\"name\":\"Cradle Software Engineering SWE Module\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/cradle-modules-swe\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/cradle-modules-swe\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/rc00518-UK_SWE.jpg\",\"datePublished\":\"2023-10-06T09:00:11+00:00\",\"description\":\"This module provides reverse engineering\\\/code generation to maintain consistency between a detailed design and its software implementation.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/cradle-modules-swe\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.threesl.com\\\/blog\\\/cradle-modules-swe\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/cradle-modules-swe\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/rc00518-UK_SWE.jpg\",\"contentUrl\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/04\\\/rc00518-UK_SWE.jpg\",\"width\":356,\"height\":219,\"caption\":\"Cradle Software Engineering SWE Module\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/cradle-modules-swe\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Cradle Modules &#8211; SWE\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/\",\"name\":\"3SL Blog\",\"description\":\"From concept to creation\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/#organization\",\"name\":\"3SL\",\"url\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/02\\\/3SL_Logo_Medium.png\",\"contentUrl\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/wp-content\\\/uploads\\\/2017\\\/02\\\/3SL_Logo_Medium.png\",\"width\":152,\"height\":80,\"caption\":\"3SL\"},\"image\":{\"@id\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"http:\\\/\\\/facebook.com\\\/3SLCradle\",\"https:\\\/\\\/x.com\\\/threesl\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.threesl.com\\\/blog\\\/#\\\/schema\\\/person\\\/4be1c5043a6af6683cc5592c94a0872f\",\"name\":\"Jan Lamb\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3139f592e413f881ae5026cd037aec5b2c5bb8dd3aed56c53b140b09e81c4b1c?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3139f592e413f881ae5026cd037aec5b2c5bb8dd3aed56c53b140b09e81c4b1c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3139f592e413f881ae5026cd037aec5b2c5bb8dd3aed56c53b140b09e81c4b1c?s=96&d=mm&r=g\",\"caption\":\"Jan Lamb\"},\"sameAs\":[\"https:\\\/\\\/www.threesl.com\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Cradle Software Engineering SWE Module","description":"This module provides reverse engineering\/code generation to maintain consistency between a detailed design and its software implementation.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.threesl.com\/blog\/cradle-modules-swe\/","og_locale":"en_GB","og_type":"article","og_title":"Cradle Software Engineering SWE Module","og_description":"This module provides reverse engineering\/code generation to maintain consistency between a detailed design and its software implementation.","og_url":"https:\/\/www.threesl.com\/blog\/cradle-modules-swe\/","og_site_name":"3SL Blog","article_publisher":"http:\/\/facebook.com\/3SLCradle","article_published_time":"2023-10-06T09:00:11+00:00","og_image":[{"url":"https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2023\/04\/rc00518-UK_SWE.jpg","type":"","width":"","height":""}],"author":"Jan Lamb","twitter_card":"summary_large_image","twitter_creator":"@threesl","twitter_site":"@threesl","twitter_misc":{"Written by":"Jan Lamb","Estimated reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.threesl.com\/blog\/cradle-modules-swe\/#article","isPartOf":{"@id":"https:\/\/www.threesl.com\/blog\/cradle-modules-swe\/"},"author":{"name":"Jan Lamb","@id":"https:\/\/www.threesl.com\/blog\/#\/schema\/person\/4be1c5043a6af6683cc5592c94a0872f"},"headline":"Cradle Modules &#8211; SWE","datePublished":"2023-10-06T09:00:11+00:00","mainEntityOfPage":{"@id":"https:\/\/www.threesl.com\/blog\/cradle-modules-swe\/"},"wordCount":678,"publisher":{"@id":"https:\/\/www.threesl.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.threesl.com\/blog\/cradle-modules-swe\/#primaryimage"},"thumbnailUrl":"https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2023\/04\/rc00518-UK_SWE.jpg","keywords":["Cradle","Cradle modules"],"articleSection":["Articles"],"inLanguage":"en-GB"},{"@type":"WebPage","@id":"https:\/\/www.threesl.com\/blog\/cradle-modules-swe\/","url":"https:\/\/www.threesl.com\/blog\/cradle-modules-swe\/","name":"Cradle Software Engineering SWE Module","isPartOf":{"@id":"https:\/\/www.threesl.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.threesl.com\/blog\/cradle-modules-swe\/#primaryimage"},"image":{"@id":"https:\/\/www.threesl.com\/blog\/cradle-modules-swe\/#primaryimage"},"thumbnailUrl":"https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2023\/04\/rc00518-UK_SWE.jpg","datePublished":"2023-10-06T09:00:11+00:00","description":"This module provides reverse engineering\/code generation to maintain consistency between a detailed design and its software implementation.","breadcrumb":{"@id":"https:\/\/www.threesl.com\/blog\/cradle-modules-swe\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.threesl.com\/blog\/cradle-modules-swe\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.threesl.com\/blog\/cradle-modules-swe\/#primaryimage","url":"https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2023\/04\/rc00518-UK_SWE.jpg","contentUrl":"https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2023\/04\/rc00518-UK_SWE.jpg","width":356,"height":219,"caption":"Cradle Software Engineering SWE Module"},{"@type":"BreadcrumbList","@id":"https:\/\/www.threesl.com\/blog\/cradle-modules-swe\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.threesl.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Cradle Modules &#8211; SWE"}]},{"@type":"WebSite","@id":"https:\/\/www.threesl.com\/blog\/#website","url":"https:\/\/www.threesl.com\/blog\/","name":"3SL Blog","description":"From concept to creation","publisher":{"@id":"https:\/\/www.threesl.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.threesl.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/www.threesl.com\/blog\/#organization","name":"3SL","url":"https:\/\/www.threesl.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.threesl.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2017\/02\/3SL_Logo_Medium.png","contentUrl":"https:\/\/www.threesl.com\/blog\/wp-content\/uploads\/2017\/02\/3SL_Logo_Medium.png","width":152,"height":80,"caption":"3SL"},"image":{"@id":"https:\/\/www.threesl.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["http:\/\/facebook.com\/3SLCradle","https:\/\/x.com\/threesl"]},{"@type":"Person","@id":"https:\/\/www.threesl.com\/blog\/#\/schema\/person\/4be1c5043a6af6683cc5592c94a0872f","name":"Jan Lamb","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/secure.gravatar.com\/avatar\/3139f592e413f881ae5026cd037aec5b2c5bb8dd3aed56c53b140b09e81c4b1c?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/3139f592e413f881ae5026cd037aec5b2c5bb8dd3aed56c53b140b09e81c4b1c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3139f592e413f881ae5026cd037aec5b2c5bb8dd3aed56c53b140b09e81c4b1c?s=96&d=mm&r=g","caption":"Jan Lamb"},"sameAs":["https:\/\/www.threesl.com\/"]}]}},"modified_by":"Jan Lamb","_links":{"self":[{"href":"https:\/\/www.threesl.com\/blog\/wp-json\/wp\/v2\/posts\/8491","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.threesl.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.threesl.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.threesl.com\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.threesl.com\/blog\/wp-json\/wp\/v2\/comments?post=8491"}],"version-history":[{"count":8,"href":"https:\/\/www.threesl.com\/blog\/wp-json\/wp\/v2\/posts\/8491\/revisions"}],"predecessor-version":[{"id":8723,"href":"https:\/\/www.threesl.com\/blog\/wp-json\/wp\/v2\/posts\/8491\/revisions\/8723"}],"wp:attachment":[{"href":"https:\/\/www.threesl.com\/blog\/wp-json\/wp\/v2\/media?parent=8491"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.threesl.com\/blog\/wp-json\/wp\/v2\/categories?post=8491"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.threesl.com\/blog\/wp-json\/wp\/v2\/tags?post=8491"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}