{"id":2866,"date":"2018-12-01T22:41:45","date_gmt":"2018-12-01T17:11:45","guid":{"rendered":"http:\/\/navveenbalani.dev\/?p=2866"},"modified":"2019-12-18T22:56:07","modified_gmt":"2019-12-18T17:26:07","slug":"building-application-with-ge-predix-iot-platform","status":"publish","type":"post","link":"https:\/\/navveenbalani.dev\/index.php\/articles\/building-application-with-ge-predix-iot-platform\/","title":{"rendered":"Building Application with GE Predix IoT Platform"},"content":{"rendered":"\n<p>This article is part of IoT Architecture Series &#8211; <a href=\"https:\/\/navveenbalani.dev\/index.php\/articles\/internet-of-things-architecture-components-and-stack-view\/\">https:\/\/navveenbalani.dev\/index.php\/articles\/internet-of-things-architecture-components-and-stack-view\/<\/a><\/p>\n\n\n\n<p>In this article, we would look at how to realize the IoT use case using Predix Cloud platform.&nbsp; As quoted from the Predix website \u2013 \u201cPredix brings together GE\u2019s legacy of industrial domain expertise with our deep investments in cutting-edge technology and data science. The result? An industrial cloud platform (PaaS) that helps you build connectivity into your Industrial Internet strategy \u2013 across all verticals.\u201d<\/p>\n\n\n\n<p>Predix platform is targeted towards creating Industrial Internet applications. The Predix platform provides out of the box support\nfor industry protocols like Modbus, DDS, and OPC-UA, which makes it easier to\nintegrate with existing industrial devices, along with a dedicated software\nstack \u201cPredix Machine\u201d which can be run on edge devices or machine controllers\n(in manufacturing plants) to do local analytics.<\/p>\n\n\n\n<p>&nbsp;The\nPredix platform is built on open source\nCloudFoundry platform and provides a catalog of services to develop, compose\nand deploy Industrial Internet\napplications. <em><\/em><em>\n\n\n\n<\/em><\/p>\n\n\n\n<p><em>Note &#8211; From\na strategy perspective, whether it\u2019s IBM, Amazon, Microsoft or Predix platform,\nall provides a scalable cloud platform (PaaS), development tools and set of\nservices (analytics, real-time streaming, databases, reporting, etc.) and device\nSDKs targeted towards building IoT applications. All of these big players are\nbuilding an ecosystem of partners from working with Original Equipment\nManufacturer (OEM)&nbsp;to embed their device stack, or partnering with system\nintegrators, independent software vendors, start-ups and development\ncommunities to enable them quickly to build internet of thing applications.<\/em><em>\n\n\n\n<\/em><\/p>\n\n\n\n<p>In the <a href=\"https:\/\/navveenbalani.dev\/index.php\/articles\/internet-of-things-architecture-components-and-stack-view\/\">first article<\/a>, we had discussed about a generic Enterprise IoT stack. The following shows our representation on how the Predix IoT services can be mapped to our generic Enterprise IoT stack. <\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" width=\"1024\" height=\"875\" src=\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/predix-iot-solution1-1024x875.jpg\" alt=\"\" class=\"wp-image-2867\" srcset=\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/predix-iot-solution1-1024x875.jpg 1024w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/predix-iot-solution1-300x256.jpg 300w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/predix-iot-solution1-768x656.jpg 768w, https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/predix-iot-solution1.jpg 1446w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Let\u2019s go through the components in details.<\/p>\n\n\n\n<p><strong>Predix\nMachine<\/strong><\/p>\n\n\n\n<p>Predix Machine is a software stack component\nthat can run on any class of devices (supporting Java runtime) or installed on\na device gateway and provides connectivity to the Predix Cloud platform. We had talked about smart gateway in Chapter\n1 which provides local analytical and filtering support at the edge of devices.\nThe Predix Machine is an example of a\nsmart gateway providing analytical and operational services at the edge, along\nwith secured bi-directional connectivity\nto industrial devices.&nbsp; Predix Machine can\nintegrate with existing industrial devices through its inbuilt support for protocols like Modbus, OPC-UA, MQTT or TCP and\nthen transmit the required data of interest from these industrial devices to\nthe Predix Cloud. For connectivity to Predix cloud, Predix Machine provides support\nfor secured HTTPS, MQTT, and WebSocket\nprotocol. Essentially, existing industrial devices can easily be connected to\nthe cloud for data collection, analytics, and remote monitoring.<em>\n\n\n\n<\/em><\/p>\n\n\n\n<p><em>Tip \u2013\nUsing other cloud platforms or solutions, you can still connect to Industrial\ndevices. There are alternatives like using the Modbus Driver i.e. <\/em><a href=\"http:\/\/eclipse.github.io\/kura\/doc\/kura-modbus-driver.html\"><em>http:\/\/eclipse.github.io\/kura\/doc\/kura-modbus-driver.html<\/em><\/a><em> or building your own adapter and integrating it with your IoT Stack.<\/em><em>\n\n\n\n<\/em><\/p>\n\n\n\n<p>Predix software stack is developed using\nJava\/OSGI framework and provides an OSGI based container for running\napplications and services. Using the Predix\nMachine Software SDK, you can customize the OSGI container to generate the\ncontainer code for only the required features. For instance, you can skip a generation of \u201cPredix\nMachine&nbsp;Store and Forward\u201d feature if you don\u2019t require local processing\non devices. If you are deploying the Predix\nMachine to a gateway device, you would\nneed most of the feature set, and while\ndeploying it on the sensor nodes, you\nwould need to cut down the feature set to bare minimum. The documentation at <a href=\"https:\/\/www.predix.io\/docs\/\">https:\/\/www.predix.io\/docs\/<\/a> (<a href=\"https:\/\/www.predix.io\/docs\/#MgHwD2pM\">https:\/\/www.predix.io\/docs\/#MgHwD2pM<\/a>)\nprovides clear guidelines on the feature set, memory requirements, and footprint for each of these features and a list\nof verified platforms where Predix\nMachine was successfully installed and executed.<em>\n\n\n\n<\/em><\/p>\n\n\n\n<p><em>Tip &#8211;\nAn open source alternative to Predix\nMachine is Eclipse Kura. Eclipse Kura (<\/em><a href=\"https:\/\/www.eclipse.org\/kura\/\"><em>https:\/\/www.eclipse.org\/kura\/<\/em><\/a><em>) is an open source OSGI based IoT gateway that\nprovides similar capabilities. For details, have a look at the Kura\narchitecture at &#8211; <\/em><a href=\"http:\/\/eclipse.github.io\/kura\/doc\/intro.html\"><em>http:\/\/eclipse.github.io\/kura\/doc\/intro.html<\/em><\/a><em>\n\n\n\n<\/em><\/p>\n\n\n\n<p>For management of devices, the Predix EdgeManager service is provided. The\nEdgeManager provides a single interface for monitoring devices, configuring\nsecurity and carrying out various device management functionalities.<\/p>\n\n\n\n<p><strong>Core\nPlatform<\/strong><\/p>\n\n\n\n<p>The core platform comprises of messaging\nand storage services. The messaging middleware\nservice is offered by RabbitMQ (by Pivotal). Essentially, this is a scalable\nsecured RabbitMQ installation managed by\nthe Predix Cloud. The messaging\nmiddleware service as described in Chapter 1 \u2013 IoT Messaging Middleware section\nprovides scalable, highly available and persistent reliable messaging between\ndevices and various cloud services. RabbitMQ by default supports the AMQP protocol.\nRabbitMQ also supports MQTT protocol and programming APIs like Java, .NET, and Erlang.<\/p>\n\n\n\n<p>From a storage service perspective, Predix provides a choice of Time Series service for\nhandling time series data, SQL Database (PostgreSQL) for SQL based interactions,\na high-performance Key-Value store\ndatabase and a Blobstore for handling very large object storages (like medical\nimages which span in GBs). The choice of\nusing one storage service as opposed to others depends on the application\nrequirements. We had discussed the requirements earlier during the course of this chapter. The storage services are in-line\nwith rest of the cloud providers.<\/p>\n\n\n\n<p>Predix also provides an Asset Data service to\nenable creating asset model that describes the logical structure and relationships\nbetween the assets and create instances of the asset model. You can design the\nasset model based on your requirements, for instance,\naircraft device equipment would be different from oil manufacturing equipment. <\/p>\n\n\n\n<p>In future, we envision various pre-built asset\nmodels available in the catalog to help kick start IoT application for various\nindustry verticals.<\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p><em>Tip &#8211; We had explained the concept of the abstract data model as part of Solutions Layer section in first article. The abstract data model is a superset of Asset Data model<strong>.<\/strong><\/em><\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p>The Asset service consists of a REST API layer, a query engine, and an Apache\nCassandra NoSQL graph database. The underlying representation of graph database\nis available as RDF (Resource Description Format),\nand each data can be represented as a triple (or tuple) of \u201cSubject\u201d, \u201cPredicate\u201d and \u201cObject.\u201d The object can be\na value or a reference pointing to a Subject. Using RDF provides flexibility\nfor modeling any domain (or any\ninformation in the world) as a set of triples. You can design models and\nrelationship and later exploit these facts as part of the application. For\ninstance, you can model a vehicle engine as follows \u2013<\/p>\n\n\n\n<table class=\"wp-block-table\"><tbody><tr><td>\n  Subject\n  <\/td><td>\n  Predicate\n  <\/td><td>\n  Object\n  <\/td><\/tr><tr><td>\n  \/audi\/aux566\n  <\/td><td>\n  serialNumber\n  <\/td><td>\n  XXXX-YYYY-ZZZZ\n  <\/td><\/tr><tr><td>\n  \/audi\/aux566\n  <\/td><td>\n  manufacturingDate\n  <\/td><td>\n  2015-11-11\n  <\/td><\/tr><tr><td>\n  \/audi\/aux566\n  <\/td><td>\n  engineType\n  <\/td><td>\n  XX\n  <\/td><\/tr><tr><td>\n  \/audi\/aux566\n  <\/td><td>\n  fuelType\n  <\/td><td>\n  Diesel\n  <\/td><\/tr><tr><td>\n  \/audi\/aux566\n  <\/td><td>\n  Torque\n  <\/td><td>\n  XX RPM\n  <\/td><\/tr><tr><td>\n  \/audi\/aux566\n  <\/td><td>\n  Power\n  <\/td><td>\n  XX KWT\n  <\/td><\/tr><tr><td>\n  \/audi\/aux566\n  <\/td><td>\n  displacement\n  <\/td><td>\n  CMQ\n  <\/td><\/tr><\/tbody><\/table>\n\n\n\n<p><em>\n\n\n\n<\/em><\/p>\n\n\n\n<p><em>Tip \u2013\nTo know more about RDF and how to model entities and ontology, kindly visit\nthis link &#8211; <\/em><a href=\"http:\/\/naveenbalani.com\/index.php\/2010\/05\/introduction-to-semantic-web\/\"><em>http:\/\/navveenbalani.com\/index.php\/2010\/05\/introduction-to-semantic-web<\/em><\/a><em>\/. There are ontology models available on\nthe web for various industries, like for automotives\nyou can refer to this link &nbsp;&nbsp;&#8211; <\/em><a href=\"https:\/\/www.w3.org\/community\/gao\/\"><em>https:\/\/www.w3.org\/community\/gao\/<\/em><\/a><em>.<\/em><em>\n\n\n\n<\/em><\/p>\n\n\n\n<p><strong>Analytics\nServices<\/strong><\/p>\n\n\n\n<p>Predix Analytics services provide an\nenvironment for running analytics code as a service in Predix Cloud. The\nAnalytics services include the following set\nof services &#8211; <\/p>\n\n\n\n<ul><li>Analytics Catalog to catalog\nyour analytics artifacts. The catalog is the central repository for all your analytics artifacts.<\/li><li>Analytical Orchestration to\ncreate orchestration between analytics components.<\/li><li>&nbsp;Analytics Runtime,\nwhich provides a scalable runtime for executing analytics orchestration.<\/li><li>Analytics User Interface to\nupload your analytics artifacts to Analytics Catalog.<\/li><\/ul>\n\n\n\n<p>You can develop your analytics code in&nbsp;supported\nlanguages such as Python, MATLAB or Java and publish\nthe analytics code to the Analytics Catalog.<em>\n\n\n\n<\/em><\/p>\n\n\n\n<p><em>Note &#8211;\nThe analytics code needs to be developed and deployed as per the Analytics\nprocess outlined in the Predix\ndocumentation &#8211; <\/em><a href=\"https:\/\/www.predix.io\/docs\/?r=45293#Qd2kPYb7\"><em>https:\/\/www.predix.io\/docs\/?r=45293#Qd2kPYb7<\/em><\/a><em>. Basically,\nyou need to package your code and provide a configuration file for deployment as per the outlined process.<\/em><em>\n\n\n\n<\/em><\/p>\n\n\n\n<p>The Analytics services provide a very good\noption of leverage existing skills and expertise for building analytics code.\nPython and MATLAB are widely used in\nbuilding machine learning algorithms, and\none can tap into the existing ecosystem to build machine learning algorithms\nand analytics component based on the industrial use cases.<\/p>\n\n\n\n<p>Apart from your analytics code, there are\nanalytics services offered by ecosystem\npartners\/vendors like Geo-Enhance (by Pitney Bowes) for Geolocation tracking and\nAnomaly Detection (by ThetaRay) to identify and detect unknown threats and\nmaintenance events to prevent outages. The analytics services from partners and\necosystems would definitely grow over a period of time.<em>\n\n\n\n<\/em><\/p>\n\n\n\n<p><em>Note\n\u2013 The real value addition offered by any IoT cloud provider would be out of box\nanalytics services for various industries and industry solution templates (refer\nto solutions layer section in Chapter 1) which can be quickly assembled to\ncreate industrial solutions.<\/em><em>\n\n\n\n<\/em><\/p>\n\n\n\n<p>The Analytics runtime service provides orchestration of analytic components from the\nAnalytic Catalog and executes them based\non rules, timers or events. The orchestration code is specified using the\nstandard BPMN (Business Process Modelling Notation)&nbsp;notation. There is a\nseries of step that needs to be performed\nfor orchestrating and running the analytical code, which is very well documented at Predix website (reference &#8211; <a href=\"https:\/\/www.Predix.io\/docs\/?r=212627#nQNINP9Q\">https:\/\/www.predix.io\/docs\/?r=212627#nQNINP9Q<\/a>).<\/p>\n\n\n\n<p><strong>Custom\nSolutions<\/strong><\/p>\n\n\n\n<p>These are end-to-end IoT industrial solutions developed using Predix cloud services and third-party services.&nbsp; Apart from the above services, Predix cloud provides a bunch of other services that can be used as part of building IoT applications like \u2013 user account, authentication, and tenant management services, Mobile SDK for building industrial mobile applications, DevOps services or a Dashboard Seed service to setup contextual monitoring application. You can find all the services in the catalog view of Predix website at <a href=\"https:\/\/www.predix.io\/catalog\/\">https:\/\/www.predix.io\/catalog\/<\/a><\/p>\n\n\n\n<p>In the next article, <a href=\"https:\/\/navveenbalani.dev\/index.php\/articles\/connected-elevator-solution-using-predix-iot-stack\/\">we will implement the elevator solution using Predix IoT stack.<\/a><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This article is part of IoT Architecture Series &#8211; https:\/\/navveenbalani.dev\/index.php\/articles\/internet-of-things-architecture-components-and-stack-view\/ In this article, we would look at how to realize the IoT use case using Predix Cloud platform.&nbsp; As quoted from the Predix website \u2013 \u201cPredix brings together GE\u2019s legacy of industrial domain expertise with our deep investments in cutting-edge technology and data science. The [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2867,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[3,156],"tags":[287],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v16.0.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Building Application with GE Predix IoT Platform - Current and Future Technology Trends by Navveen Balani<\/title>\n<meta name=\"description\" content=\"Building Application with GE Predix IoT Platform - Articles\" \/>\n<link rel=\"canonical\" href=\"https:\/\/navveenbalani.dev\/index.php\/articles\/building-application-with-ge-predix-iot-platform\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Building Application with GE Predix IoT Platform - Current and Future Technology Trends by Navveen Balani\" \/>\n<meta property=\"og:description\" content=\"Building Application with GE Predix IoT Platform - Articles\" \/>\n<meta property=\"og:url\" content=\"https:\/\/navveenbalani.dev\/index.php\/articles\/building-application-with-ge-predix-iot-platform\/\" \/>\n<meta property=\"og:site_name\" content=\"Current and Future Technology Trends by Navveen Balani\" \/>\n<meta property=\"article:published_time\" content=\"2018-12-01T17:11:45+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-12-18T17:26:07+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/predix-iot-solution1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1446\" \/>\n\t<meta property=\"og:image:height\" content=\"1236\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\">\n\t<meta name=\"twitter:data1\" content=\"8 minutes\">\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/navveenbalani.dev\/#website\",\"url\":\"https:\/\/navveenbalani.dev\/\",\"name\":\"Current and Future Technology Trends by Navveen Balani\",\"description\":\"Current and Future Technology Trends by Navveen Balani\",\"publisher\":{\"@id\":\"https:\/\/navveenbalani.dev\/#\/schema\/person\/51f7ab14b20611d95e3c7fd4ea0950bf\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/navveenbalani.dev\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/building-application-with-ge-predix-iot-platform\/#primaryimage\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/12\/predix-iot-solution1.jpg\",\"width\":1446,\"height\":1236},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/building-application-with-ge-predix-iot-platform\/#webpage\",\"url\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/building-application-with-ge-predix-iot-platform\/\",\"name\":\"Building Application with GE Predix IoT Platform - Current and Future Technology Trends by Navveen Balani\",\"isPartOf\":{\"@id\":\"https:\/\/navveenbalani.dev\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/building-application-with-ge-predix-iot-platform\/#primaryimage\"},\"datePublished\":\"2018-12-01T17:11:45+00:00\",\"dateModified\":\"2019-12-18T17:26:07+00:00\",\"description\":\"Building Application with GE Predix IoT Platform - Articles\",\"breadcrumb\":{\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/building-application-with-ge-predix-iot-platform\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/navveenbalani.dev\/index.php\/articles\/building-application-with-ge-predix-iot-platform\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/building-application-with-ge-predix-iot-platform\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/navveenbalani.dev\/\",\"url\":\"https:\/\/navveenbalani.dev\/\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/building-application-with-ge-predix-iot-platform\/\",\"url\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/building-application-with-ge-predix-iot-platform\/\",\"name\":\"Building Application with GE Predix IoT Platform\"}}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/building-application-with-ge-predix-iot-platform\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/building-application-with-ge-predix-iot-platform\/#webpage\"},\"author\":{\"@id\":\"https:\/\/navveenbalani.dev\/#\/schema\/person\/51f7ab14b20611d95e3c7fd4ea0950bf\"},\"headline\":\"Building Application with GE Predix IoT Platform\",\"datePublished\":\"2018-12-01T17:11:45+00:00\",\"dateModified\":\"2019-12-18T17:26:07+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/building-application-with-ge-predix-iot-platform\/#webpage\"},\"publisher\":{\"@id\":\"https:\/\/navveenbalani.dev\/#\/schema\/person\/51f7ab14b20611d95e3c7fd4ea0950bf\"},\"image\":{\"@id\":\"https:\/\/navveenbalani.dev\/index.php\/articles\/building-application-with-ge-predix-iot-platform\/#primaryimage\"},\"keywords\":\"iot-guide\",\"articleSection\":\"Articles,IOT\",\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/navveenbalani.dev\/#\/schema\/person\/51f7ab14b20611d95e3c7fd4ea0950bf\",\"name\":\"Navveen\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/navveenbalani.dev\/#personlogo\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/navveenbalani.dev\/wp-content\/uploads\/2019\/07\/navveen_balani.jpeg\",\"width\":200,\"height\":200,\"caption\":\"Navveen\"},\"logo\":{\"@id\":\"https:\/\/navveenbalani.dev\/#personlogo\"},\"sameAs\":[\"http:\/\/naveenbalani.com\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/posts\/2866"}],"collection":[{"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/comments?post=2866"}],"version-history":[{"count":3,"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/posts\/2866\/revisions"}],"predecessor-version":[{"id":2873,"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/posts\/2866\/revisions\/2873"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/media\/2867"}],"wp:attachment":[{"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/media?parent=2866"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/categories?post=2866"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/navveenbalani.dev\/index.php\/wp-json\/wp\/v2\/tags?post=2866"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}