{"id":12328,"date":"2025-03-11T16:08:52","date_gmt":"2025-03-11T16:08:52","guid":{"rendered":"https:\/\/www.blopig.com\/blog\/?p=12328"},"modified":"2025-03-11T16:28:45","modified_gmt":"2025-03-11T16:28:45","slug":"geometric-deep-learning-meets-forces-equilibrium","status":"publish","type":"post","link":"https:\/\/www.blopig.com\/blog\/2025\/03\/geometric-deep-learning-meets-forces-equilibrium\/","title":{"rendered":"Geometric Deep Learning meets Forces &amp; Equilibrium"},"content":{"rendered":"\n\n\n\n\n<h2 class=\"wp-block-heading\">Introduction<\/h2>\n\n\n\n<p>Graphs provide a powerful mathematical framework for modelling complex systems, from molecular structures to social networks. In many physical and geometric problems, nodes represent particles, and edges encode interactions, often acting like springs. This perspective aligns naturally with Geometric Deep Learning, where learning algorithms leverage graph structures to capture spatial and relational patterns.<\/p>\n\n\n\n<p>Understanding energy functions and the forces derived from them is fundamental to modelling such systems. In physics and computational chemistry, harmonic potentials, which penalise deviations from equilibrium positions, are widely used to describe elastic networks, protein structures, and even diffusion processes. The Laplacian matrix plays a key role in these formulations, linking energy minimisation to force computations in a clean and computationally efficient way.<\/p>\n\n\n\n<p>By formalising these interactions using matrix notation, we gain not only a compact representation but also a foundation for more advanced techniques such as Langevin dynamics, normal mode analysis, and graph-based neural networks for physical simulations.<\/p>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\">Harmonic Energy<\/h2>\n\n\n\n<p>Let \\(G = (V, E)\\) be an undirected graph, where \\(V = {1, \\dots, N}\\) is the set of \\(N\\) nodes, each associated with a position vector \\(\\mathbf{x}_i \\in \\mathbb{R}^d\\), and \\( E \\subseteq V \\times V \\) is the set of edges connecting pairs of nodes. The structure of the graph is encoded in the adjacency matrix \\( \\mathbf{A} \\), where \\( A{ij} = 1 \\) if nodes \\( i \\) and \\( j \\) are connected, and 0 otherwise. The degree matrix \\( \\mathbf{D} \\) is a diagonal matrix where \\( D_{ii} = \\sum_{j} A_{ij} \\) gives the degree of each node. The graph Laplacian is then defined as \\( \\mathbf{L} = \\mathbf{D} &#8211; \\mathbf{A} \\), which governs energy and force computations. Let \\(\\mathbf{X}\\) as the \\(N\\times d\\) matrix whose \\(i\\) th row is \\(\\mathbf{x}_i^\\top\\): <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-1.png?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"625\" height=\"184\" loading=\"lazy\" src=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-1.png?resize=625%2C184&#038;ssl=1\" alt=\"\" class=\"wp-image-12361\" style=\"width:383px;height:auto\" srcset=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-1.png?w=892&amp;ssl=1 892w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-1.png?resize=300%2C88&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-1.png?resize=768%2C226&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-1.png?resize=624%2C183&amp;ssl=1 624w\" sizes=\"auto, (max-width: 625px) 100vw, 625px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>The harmonic (spring-like) energy of this system is:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><a href=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-2.png?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"625\" height=\"374\" loading=\"lazy\" src=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-2.png?resize=625%2C374&#038;ssl=1\" alt=\"\" class=\"wp-image-12362\" style=\"width:493px;height:auto\" srcset=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-2.png?resize=1024%2C613&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-2.png?resize=300%2C179&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-2.png?resize=768%2C459&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-2.png?resize=624%2C373&amp;ssl=1 624w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-2.png?w=1170&amp;ssl=1 1170w\" sizes=\"auto, (max-width: 625px) 100vw, 625px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>Hence, the harmonic energy can be expressed succinctly in terms of the graph Laplacian, giving us a compact way of defining the total energy of the system.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><a href=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-3.png?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"625\" height=\"81\" loading=\"lazy\" src=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-3.png?resize=625%2C81&#038;ssl=1\" alt=\"\" class=\"wp-image-12363\" style=\"width:445px;height:auto\" srcset=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-3.png?resize=1024%2C133&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-3.png?resize=300%2C39&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-3.png?resize=768%2C100&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-3.png?resize=624%2C81&amp;ssl=1 624w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-3.png?w=1142&amp;ssl=1 1142w\" sizes=\"auto, (max-width: 625px) 100vw, 625px\" \/><\/a><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\">Energy to Forces<\/h3>\n\n\n\n<p>Using the definition of total energy as a function of the Laplacian, we may express the force on node \\(i\\) as the derivative with respect to the position of each node<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-4.png?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"625\" height=\"207\" loading=\"lazy\" src=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-4.png?resize=625%2C207&#038;ssl=1\" alt=\"\" class=\"wp-image-12364\" style=\"width:287px;height:auto\" srcset=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-4.png?w=682&amp;ssl=1 682w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-4.png?resize=300%2C99&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-4.png?resize=624%2C207&amp;ssl=1 624w\" sizes=\"auto, (max-width: 625px) 100vw, 625px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>For a specific pair of connected nodes \\( (i, j) \\), we expand \\( L_{ij} = D_{ij} &#8211; A_{ij} \\), where we can show that the forces on node \\( i \\) due to node \\( j \\) and vice-versa are antisymmetric.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-5.png?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"562\" height=\"362\" loading=\"lazy\" src=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-5.png?resize=562%2C362&#038;ssl=1\" alt=\"\" class=\"wp-image-12365\" style=\"width:236px;height:auto\" srcset=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-5.png?w=562&amp;ssl=1 562w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-5.png?resize=300%2C193&amp;ssl=1 300w\" sizes=\"auto, (max-width: 562px) 100vw, 562px\" \/><\/a><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\">Near Equilibrium<\/h3>\n\n\n\n<p>For each edge \\(((i,j)\\), the bond energy is given by<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-6.png?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"570\" height=\"126\" loading=\"lazy\" src=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-6.png?resize=570%2C126&#038;ssl=1\" alt=\"\" class=\"wp-image-12366\" style=\"width:246px;height:auto\" srcset=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-6.png?w=570&amp;ssl=1 570w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-6.png?resize=300%2C66&amp;ssl=1 300w\" sizes=\"auto, (max-width: 570px) 100vw, 570px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>Where<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\\(k_{ij}\\) is the bond (force) constant,<\/li>\n\n\n\n<li>\\(l_{ij}\\) is the equilibrium bond length, and<\/li>\n\n\n\n<li>\\(\\mathbf{x}_i,\\mathbf{x}_j\\in\\mathbb{R}^d\\) are the positions of nodes \\(i\\) and \\(j\\)<\/li>\n<\/ul>\n\n\n\n<p>Define the bond stretch (or strain) as \\(\\epsilon_{ij} \\;=\\; ||\\mathbf{x}_i-\\mathbf{x}_j|| &#8211; l_{ij}\\)<br><br>Note that the equilibrium condition is defined \\emph{per bond} (i.e. for the pair \\((i,j)\\), the bond is at equilibrium if \\(\\epsilon_{ij} = 0\\). For small bond strains (i.e. when \\(\\epsilon_{ij}\\) is small) we can linearize the energy via Taylor&#8217;s expansion around the equilibrium point. The Taylor expansion of \\(f(s)\\) about \\(s=l_{ij}^2\\) is<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><a href=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-7.png?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"625\" height=\"222\" loading=\"lazy\" src=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-7.png?resize=625%2C222&#038;ssl=1\" alt=\"\" class=\"wp-image-12367\" style=\"width:513px;height:auto\" srcset=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-7.png?resize=1024%2C363&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-7.png?resize=300%2C106&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-7.png?resize=768%2C272&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-7.png?resize=624%2C221&amp;ssl=1 624w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-7.png?w=1270&amp;ssl=1 1270w\" sizes=\"auto, (max-width: 625px) 100vw, 625px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>Then the energy per bond becomes<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><a href=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-8.png?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"625\" height=\"164\" loading=\"lazy\" src=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-8.png?resize=625%2C164&#038;ssl=1\" alt=\"\" class=\"wp-image-12368\" style=\"width:439px;height:auto\" srcset=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-8.png?resize=1024%2C269&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-8.png?resize=300%2C79&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-8.png?resize=768%2C202&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-8.png?resize=624%2C164&amp;ssl=1 624w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-8.png?w=1104&amp;ssl=1 1104w\" sizes=\"auto, (max-width: 625px) 100vw, 625px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>For configurations near equilibrium:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-9.png?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"625\" height=\"178\" loading=\"lazy\" src=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-9.png?resize=625%2C178&#038;ssl=1\" alt=\"\" class=\"wp-image-12369\" style=\"width:333px;height:auto\" srcset=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-9.png?w=792&amp;ssl=1 792w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-9.png?resize=300%2C86&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-9.png?resize=768%2C219&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-9.png?resize=624%2C178&amp;ssl=1 624w\" sizes=\"auto, (max-width: 625px) 100vw, 625px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>To express \\(\\epsilon_{ij}\\) in terms of the relative positions, note that the bond stretch is naturally measured along the bond direction. Define the equilibrium unit vector for bond \\(i,j)\\), where \\(\\mathbf{x}_i^*\\) and \\(\\mathbf{x}_j^*\\) are any positions satisfying \\(||\\mathbf{x}_i^*-\\mathbf{x}_j^*||=l_{ij}\\), we can linearly approximate \\(\\epsilon_{ij}\\)<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-10.png?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"600\" height=\"232\" loading=\"lazy\" src=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-10.png?resize=600%2C232&#038;ssl=1\" alt=\"\" class=\"wp-image-12370\" style=\"width:302px;height:auto\" srcset=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-10.png?w=600&amp;ssl=1 600w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-10.png?resize=300%2C116&amp;ssl=1 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>Since only the differences \\((\\mathbf{x}_i-\\mathbf{x}_j)\\) matter, the energy is naturally a function of the bond deformations. Collecting these into a quadratic form over all edges yields a weighted Laplacian operator. In matrix form we can write<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-11.png?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"372\" height=\"98\" loading=\"lazy\" src=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-11.png?resize=372%2C98&#038;ssl=1\" alt=\"\" class=\"wp-image-12371\" style=\"width:194px;height:auto\" srcset=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-11.png?w=372&amp;ssl=1 372w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-11.png?resize=300%2C79&amp;ssl=1 300w\" sizes=\"auto, (max-width: 372px) 100vw, 372px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>where \\(\\delta\\mathbf{X}\\) encodes the deviations of bond differences from their equilibrium values and \\(\\mathbf{L}&#8217;\\) is the block weighted Laplacian defined by<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-13.png?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"548\" height=\"188\" loading=\"lazy\" src=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-13.png?resize=548%2C188&#038;ssl=1\" alt=\"\" class=\"wp-image-12373\" style=\"width:284px;height:auto\" srcset=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-13.png?w=548&amp;ssl=1 548w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2025\/03\/image-13.png?resize=300%2C103&amp;ssl=1 300w\" sizes=\"auto, (max-width: 548px) 100vw, 548px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>This final form expresses the energy solely in terms of bond deformations, which depend only on the differences between pairs of node positions, and does not require an absolute displacement for each node.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>The harmonic energy framework presented here is more than just a mathematical curiosity; it has direct applications in physics, chemistry, and machine learning. By deriving forces from energy functions in a graph-theoretic setting, we can simulate molecular dynamics, analyse structural stability, and even develop graph-based learning models for physical systems.<\/p>\n\n\n\n<p>One immediate extension of this work is in Langevin dynamics, where forces derived from harmonic potentials are combined with stochastic noise and damping to model the thermal motion of particles. This is crucial for studying protein folding, diffusion in complex environments, and simulating soft materials. Additionally, these formulations are integral to normal mode analysis, which helps in understanding vibrational properties in physics and materials science.<\/p>\n\n\n\n<p><br>Beyond physics, these ideas also connect with graph-based neural networks that incorporate geometric constraints, such as those used in drug discovery, 3D shape analysis, and biomechanical simulations. By combining geometric deep learning with physically inspired models, we can develop data-driven approaches that remain grounded in fundamental principles of mechanics and thermodynamics.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction Graphs provide a powerful mathematical framework for modelling complex systems, from molecular structures to social networks. In many physical and geometric problems, nodes represent particles, and edges encode interactions, often acting like springs. This perspective aligns naturally with Geometric Deep Learning, where learning algorithms leverage graph structures to capture spatial and relational patterns. Understanding [&hellip;]<\/p>\n","protected":false},"author":130,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"nf_dc_page":"","wikipediapreview_detectlinks":true,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"ngg_post_thumbnail":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[633,187,29],"tags":[],"ppma_author":[843],"class_list":["post-12328","post","type-post","status-publish","format-standard","hentry","category-ai","category-cheminformatics","category-code"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"authors":[{"term_id":843,"user_id":130,"is_guest":0,"slug":"alvaro","display_name":"Alvaro Prat","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/3ab9b3b760b1c3cf7c2073ed08830accad651310244cc781046f70c9af6e1805?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/www.blopig.com\/blog\/wp-json\/wp\/v2\/posts\/12328","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.blopig.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.blopig.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.blopig.com\/blog\/wp-json\/wp\/v2\/users\/130"}],"replies":[{"embeddable":true,"href":"https:\/\/www.blopig.com\/blog\/wp-json\/wp\/v2\/comments?post=12328"}],"version-history":[{"count":5,"href":"https:\/\/www.blopig.com\/blog\/wp-json\/wp\/v2\/posts\/12328\/revisions"}],"predecessor-version":[{"id":12397,"href":"https:\/\/www.blopig.com\/blog\/wp-json\/wp\/v2\/posts\/12328\/revisions\/12397"}],"wp:attachment":[{"href":"https:\/\/www.blopig.com\/blog\/wp-json\/wp\/v2\/media?parent=12328"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.blopig.com\/blog\/wp-json\/wp\/v2\/categories?post=12328"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.blopig.com\/blog\/wp-json\/wp\/v2\/tags?post=12328"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.blopig.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=12328"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}