{"id":179,"date":"2014-10-31T15:24:57","date_gmt":"2014-10-31T15:24:57","guid":{"rendered":"https:\/\/shiplab.hials.org\/?page_id=179"},"modified":"2015-02-09T14:46:08","modified_gmt":"2015-02-09T14:46:08","slug":"a-case-study-of-sfi-classification-system-with-digital-database-structure","status":"publish","type":"page","link":"https:\/\/shiplab.hials.org\/?page_id=179","title":{"rendered":"SFI Group System with object-oriented data structure"},"content":{"rendered":"<p style=\"text-align: right;\"><em>by \u00cdcaro Arag\u00e3o Fonseca\u00a0\u00a0&#8211; Exchange\u00a0Student in Ship Design\u00a0\/ H\u00f8gskolen i \u00c5lesund\u00a0<\/em><br \/>\n<em>(icaro.fonseca@ufpe.br), v1.1, Dez 2014.<\/em><\/p>\n<p style=\"text-align: left;\">[toc]<\/p>\n<h2 style=\"text-align: justify;\">Introduction<\/h2>\n<p style=\"text-align: left;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0SFI is a widely used classification system for ships, oil platforms and other maritime structures. The SFI system allows its users to divide hierarchically the elements inside a maritime structure for a wide range of purposes related to control of shipping, offshore or shipbuilding operations.<\/p>\n<p style=\"text-align: left;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0By splitting the ship into different systems and sub-systems, the user (e.g. a shipyard or ship design company) is able to keep track of costs, working-hours, materials, maintenance, information, etc. of each functional aspect of a ship in detail, as should be seen in the next sections.<\/p>\n<p style=\"text-align: left;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0To allow that kind of hierarchical division, SFI introduces a code structure including group, sub-group and detail codes, each of them related to a certain degree of detail or system size. Therefore, it is possible to carry on the control of every element inside a ship by simply associating that element to a 6-digit code. Most of the SFI structure is standardized, thus facilitating information exchange, collaborative work and design.<\/p>\n<p style=\"text-align: left;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0For example, let us suppose that we want to identify a ship\u2019s main diesel engine inside the SFI classification system. The detail code for that component is 601001, where main group 6 encompasses \u201cMachinery main components\u201d, group 60 includes \u201cDiesel engines for propulsion\u201d, sub-group 601 includes \u201cDiesel engines\u201d and, lastly, the full detail code 601001 is assigned to the \u201cMain diesel engine\u201d itself.<\/p>\n<p style=\"text-align: left;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0In this report, we will present the SFI for some components of a multipurpose offshore vessel as an example of the classification system and then we will propose a data structure to represent that classification in a hypothetical digital database.<\/p>\n<h2 style=\"text-align: justify;\">Ship as a JavaScript object<\/h2>\n<p style=\"text-align: left;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0For all the characteristics mentioned before, the SFI is an adequate classification system to support a digital database with technical information for collaborative design or other ends. We choose to handle the SFI classification system with JavaScript language, for the reasons listed below:<\/p>\n<ul>\n<li>Availability of powerful object oriented features embedded.<\/li>\n<li>Accessible language with functionalities easily shared via internet.<\/li>\n<li>Easy implementation of visualization features with public libraries.<\/li>\n<\/ul>\n<p style=\"text-align: left;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0Where the first point is especially important for our work at this stage, since we want to create an efficient structure to represent one vessel as a JS object. Our choice for this kind of data structure was driven by the following main reasons:<\/p>\n<ul>\n<li>JS objects are capable of handling large amounts of data, which would be necessary to store information about a ship\u2019s systems, parts and documentation.<\/li>\n<li>JS objects allow easy handling and accessing of data through their properties.<\/li>\n<li>JS objects\u2019 properties are versatile and can store text strings, numbers and other kinds of variables. They can as well store functions (methods) or even other objects in them.<\/li>\n<\/ul>\n<p style=\"text-align: left;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0The JS object structure aimed at this report should be able to store information about a ship\u2019s systems and components, including name, SFI code, working hours and cost. Let us suppose, for example, that the user wants to access the information about the cost of the main diesel engine. Then, he could simply call for a value inside the object\u2019s property, or:<\/p>\n<p><em>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0console.log(Ship.SFI[6][0][1][001].hours);<\/em><\/p>\n<p style=\"text-align: left;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0During the next sections and Appendix 2, we will go into detail about the object structure and how it can be used to store and handle SFI data.<\/p>\n<h2 style=\"text-align: justify;\">Methodology<\/h2>\n<p style=\"text-align: justify;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0Below is presented the methodology flowchart followed by detailed explanation of each step:<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"displayed aligncenter\" src=\"https:\/\/shiplab.hials.org\/media\/sfi_classification_system\/1.png\" alt=\"\" \/><\/p>\n<p>Where:<\/p>\n<ol>\n<li>Collect\/compile relevant information: gather all available relevant information about the ship and its systems, such as equipment model, material costs, person-hours, drawings and technical analysis. This could be either self-generated information such as the drawings and technical analyses or previously available information, like equipment model, specifications or costs. The SFI classification system can as well be applied to systems during design or building stages, giving the user a system-based view of the choices made during design and assisting with planning and control of the building process, for instance. This is not the case with this project, however, and we assume all the information to be available beforehand.<\/li>\n<li>Identify systems involved or mentioned: identify the systems mentioned on the collected information and analyze how they fit the SFI hierarchical listing structure. Identify the system with the higher possible amount of detailing inside SFI.<\/li>\n<li>Identify SFI code: in the SFI listing catalog, search for the correspondent id code to each system, subsystem or element whose information was gathered. Assign a main group, group, subgroup or detail code to the system or product.<\/li>\n<li>Register information with id codes: register the same information, this time with a systematical approach based on SFI. List each system with its respective id code.<\/li>\n<li>Create object structure to handle information: after finishing the information structure based on SFI, propose a JavaScript object structure to handle all the information related to the systems digitally, prioritizing easy and efficient information access.<\/li>\n<\/ol>\n<h2 style=\"text-align: justify;\">Applying the methodology<\/h2>\n<p style=\"text-align: left;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 As an example of the SFI coding scheme, in this project we applied the methodology to a commercial catalog of a multipurpose offshore vessel. Most of the information available about the ship\u2019s systems concerned to basic equipment specifications and identification of the manufacturers, so it was not possible to include detailed technical information about them. Anyhow, it was still manageable to categorize the described systems according to the SFI structure, which was the main objective of the work. At the end of the classification (step 4.), we obtained a table with all the information registered in the catalog, the corresponding SFI name for each of the systems and their respective identification codes.<\/p>\n<p style=\"text-align: left;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 As to the digital data structure, it was created a series of concatenated JavaScript objects to store information about name of the systems and\/or commercial model, cost of the materials and person-hours. The objects receive from the user information about the cost of the equipment at Detail Code level and the number of hours at the Sub Group level. Those are examples of sub-groups and detail code object input:<\/p>\n<p><em>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0Ship.SFI[3][3][1]=new SubGroup(&#8220;Rotating cranes with crane pillars&#8221;,300);<\/em><\/p>\n<p><em>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0Ship.SFI[3][3][1][001]=new DetailCode(&#8220;Rotating cranes with crane pillars: GPOKac 5000-135-30&#8221;,500000);<\/em><\/p>\n<p style=\"text-align: left;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0Where 300 is the number of working-hours and 500.000 is the price.<\/p>\n<p style=\"text-align: left;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0Then, the structure automatically calculates the results of those two values for any asked level of the classification hierarchy (Sub Group, Group and Main Group), so the user can know what are the most time and capital consuming systems of the vessel according to the SFI classification. The user can access those values inside the .cost and .hours properties of the objects:<\/p>\n<p><em>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0console.log(Ship.SFI[3][3][1].hours);<\/em><\/p>\n<p><em>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0console.log(Ship.SFI[3][3][1][001].cost);<\/em><\/p>\n<h2 style=\"text-align: justify;\">Partial results<\/h2>\n<p style=\"text-align: justify;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 This is part of the classification table obtained at the end of step 4.:<\/p>\n<div id=\"attachment_315\" style=\"width: 471px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/shiplab.hials.org\/wp-content\/uploads\/2014\/12\/excerpt.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-315\" class=\"wp-image-315 size-full\" src=\"https:\/\/shiplab.hials.org\/wp-content\/uploads\/2014\/12\/excerpt.png\" alt=\"SFI table excerpt.\" width=\"461\" height=\"422\" srcset=\"https:\/\/shiplab.hials.org\/wp-content\/uploads\/2014\/12\/excerpt.png 461w, https:\/\/shiplab.hials.org\/wp-content\/uploads\/2014\/12\/excerpt-300x274.png 300w, https:\/\/shiplab.hials.org\/wp-content\/uploads\/2014\/12\/excerpt-163x150.png 163w, https:\/\/shiplab.hials.org\/wp-content\/uploads\/2014\/12\/excerpt-150x137.png 150w\" sizes=\"auto, (max-width: 461px) 100vw, 461px\" \/><\/a><p id=\"caption-attachment-315\" class=\"wp-caption-text\">SFI table excerpt.<\/p><\/div>\n<p style=\"text-align: left;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0The information about the equipment was listed in the lowest possible level, preferably the detail code. When there was not sufficient information about one system to associate it to a detail code, then the available information was listed in the group or sub-group level, such as in the last line, where it was not possible to assign a detail code to the vessel\u2019s module handling system. In some cases, there were two or more components assigned under the same detail code, such as the four main diesel engines or the two different rotating cranes (see table above). In order to distinguish the different components, we added one identification number after the detail code, e.g.: 33100101\/33100102, where 331001 is the detail code and 01\/02 are the component identification numbers.<\/p>\n<p style=\"text-align: left;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0Although we reserved some fields for cost and working hours records, those data were not available and therefore were filled with placeholders. The full table with the catalog information listing is available on Appendix 1.<\/p>\n<p style=\"text-align: left;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Regarding to the JavaScript structure obtained at the end of step 5., in the property \u201c.name\u201d of the JavaScript objects, we listed all the system names according to the SFI classification and at least one information about the commercial equipment used (generally model and\/or manufacturer). The cost and hours values were stored in their respective properties as well. We give Instructions on how to use and operate the JavaScript structure in Appendix 2.<\/p>\n<h2 style=\"text-align: justify;\">Discussion<\/h2>\n<p style=\"text-align: left;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 At the end of this work, we have an incipient SFI classification for a multipurpose offshore vessel. Even if the amount of information and the coverage of that classification is extremely limited, it sets the base for other applications with a wider coverage of a ship\u2019s systems, more technical and commercial information, etc.<\/p>\n<p style=\"text-align: left;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0Starting from this project, we try to keep those applications allied to digital systems to handle relevant information about the vessel so we can maximize\u00a0the convenience and overall benefits of the SFI classification system.<\/p>\n<h2 style=\"text-align: justify;\">Future work<\/h2>\n<p style=\"text-align: left;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0Next steps of this work would be to apply systems engineering concepts to study the relation between a modular ship concept and the SFI group system. We intend to create a mapping between conceptual modules of a ship and the related SFI groups. With that mapping, we would be able to analyze to which extent the exchange of one or more given modules influences the overall SFI group system for one vessel.<\/p>\n<hr \/>\n<h2 style=\"text-align: justify;\">Appendix 1 \u2013 Example of SFI based on commercial catalog<\/h2>\n<p style=\"text-align: center;\"><a href=\"https:\/\/shiplab.hials.org\/wp-content\/uploads\/2014\/12\/table_part_1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-309 size-full\" src=\"https:\/\/shiplab.hials.org\/wp-content\/uploads\/2014\/12\/table_part_1.png\" alt=\"table_part_1\" width=\"551\" height=\"895\" srcset=\"https:\/\/shiplab.hials.org\/wp-content\/uploads\/2014\/12\/table_part_1.png 551w, https:\/\/shiplab.hials.org\/wp-content\/uploads\/2014\/12\/table_part_1-184x300.png 184w, https:\/\/shiplab.hials.org\/wp-content\/uploads\/2014\/12\/table_part_1-92x150.png 92w\" sizes=\"auto, (max-width: 551px) 100vw, 551px\" \/><\/a><\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/shiplab.hials.org\/wp-content\/uploads\/2014\/10\/table_part_2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-322 size-full\" src=\"https:\/\/shiplab.hials.org\/wp-content\/uploads\/2014\/10\/table_part_2.png\" alt=\"table_part_2\" width=\"567\" height=\"895\" srcset=\"https:\/\/shiplab.hials.org\/wp-content\/uploads\/2014\/10\/table_part_2.png 567w, https:\/\/shiplab.hials.org\/wp-content\/uploads\/2014\/10\/table_part_2-190x300.png 190w, https:\/\/shiplab.hials.org\/wp-content\/uploads\/2014\/10\/table_part_2-95x150.png 95w\" sizes=\"auto, (max-width: 567px) 100vw, 567px\" \/><\/a><\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/shiplab.hials.org\/wp-content\/uploads\/2014\/12\/table_part_3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-307 size-full\" src=\"https:\/\/shiplab.hials.org\/wp-content\/uploads\/2014\/12\/table_part_3.png\" alt=\"table_part_3\" width=\"567\" height=\"508\" srcset=\"https:\/\/shiplab.hials.org\/wp-content\/uploads\/2014\/12\/table_part_3.png 567w, https:\/\/shiplab.hials.org\/wp-content\/uploads\/2014\/12\/table_part_3-300x268.png 300w, https:\/\/shiplab.hials.org\/wp-content\/uploads\/2014\/12\/table_part_3-167x150.png 167w, https:\/\/shiplab.hials.org\/wp-content\/uploads\/2014\/12\/table_part_3-150x134.png 150w\" sizes=\"auto, (max-width: 567px) 100vw, 567px\" \/><\/a><\/p>\n<hr \/>\n<h2 style=\"text-align: justify;\">Appendix 2 \u2013 Instructions for the SFI JavaScript structure<\/h2>\n<p style=\"text-align: left;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0Instructions: the SFI object has 4 levels: MainGroup (e.g.: Ship.SFI[3]) Group (e.g.: Ship.SFI[3][3]), SubGroup (e.g.: Ship.SFI[3][3][1]), and DetailCode (e.g.: Ship.SFI[3][3][1][001]). At each one of those levels, there are properties to store information about name, cost (material costs) and person-hours, except for the DetailCode level, which does not have a property to store person-hours information (since this data is registered starting from the SubGroup level).<\/p>\n<p style=\"text-align: left;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0Each object was created with one of the constructors defined inside the script. In all constructors, you should enter the input \u201cname\u201d. In addition, in the DetailCode level, you should also enter the cost of the part\/product, and in the SubGroup level, the amount of working hours. By default, all values in the script are zero, but the user is free to change them if he wants. To access the cost information at the detail code level, add <em>.cost<\/em> after the DetailCode, for example: Ship.SFI[3][3][1][001].cost. To access hours information in the sub-group level, add <em>.hours<\/em> after the SubGroup, for ex.: Ship.SFI[3][3][1].hours. At any level of the structure, it is possible to call for the system name adding <em>.name<\/em> after the object, for ex.: Ship.SFI[3].name or Ship.SFI[3][3][1].name.<\/p>\n<p style=\"text-align: left;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0Now let\u2019s see how the structure updates its values. Run the code on the console. Then, add cost values for some detail codes belonging to the same sub-group, for example:<\/p>\n<p style=\"text-align: left;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0Ship.SFI[5][0][1][001].cost=33;<\/p>\n<p style=\"text-align: left;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0Ship.SFI[5][0][1][002].cost=27;<\/p>\n<p style=\"text-align: left;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0Ship.SFI[5][0][1][022].cost=0;<\/p>\n<p style=\"text-align: left;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0If you want to access one of the stored values, you can type:<\/p>\n<p style=\"text-align: left;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0Ship.SFI[5][0][1][001].cost;<\/p>\n<p style=\"text-align: left;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0[enter]<\/p>\n<p style=\"text-align: left;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0Ship.SFI[5][0][1][002].cost;<\/p>\n<p style=\"text-align: left;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0[enter]<\/p>\n<p style=\"text-align: left;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0Now, if you want to access the total value of the Ship.SFI[5][0][1] sub-group, you can digit:<\/p>\n<p style=\"text-align: left;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0Ship.SFI[5][0][1].cost();<\/p>\n<p style=\"text-align: left;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0And it automatically returns the sum of the values we inserted into the two detail codes. The same thing works for the higher levels of the structure, for example, do:<\/p>\n<p style=\"text-align: left;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0Ship.SFI[5][0][2][005].cost=50;<\/p>\n<p style=\"text-align: left;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0If you want now to check the total cost of the Ship.SFI[5][0] group, just call:<\/p>\n<p style=\"text-align: left;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0Ship.SFI[5][0].cost();<\/p>\n<p style=\"text-align: left;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0And the structue returns the sum of all costs listed under that hierarchical level, i.e., the three detail codes you fulfilled until now. Please note that the parenthesis are necessary, since this time you are not simply calling a value, but a function that calculates the total cost based on the costs from the lower hierarchical levels.<\/p>\n<p style=\"text-align: left;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0But what if you want to input the cost value in a level other than the detail code? In this case, just insert the value at the desired level, for example:<\/p>\n<p style=\"text-align: left;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0Ship.SFI[8][0][1].cost=100;<\/p>\n<p style=\"text-align: left;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0So, the value 100 is stored in the <em>.cost<\/em> property of the sub-group Ship.SFI[8][0][1]. However, there are some consequences: when you do that: you are substituting the function that updates the cost for a numerical value, which means that the structure will not update itself automatically anymore until that level of the hierarchy. In other words, even if you do:<\/p>\n<p style=\"text-align: left;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0Ship.SFI[8][0][1][015].cost=100000;<\/p>\n<p style=\"text-align: left;\">the console will keep returning 100 when you call:<\/p>\n<p style=\"text-align: left;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0Ship.SFI[8][0][1].cost;<\/p>\n<p style=\"text-align: left;\">on it.<\/p>\n<p style=\"text-align: left;\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0Notice also that since you manually entered a number into the <em>.cost<\/em> property, when you want to call that property again, you should not use the parenthesis anymore.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>by \u00cdcaro Arag\u00e3o Fonseca\u00a0\u00a0&#8211; Exchange\u00a0Student in Ship Design\u00a0\/ H\u00f8gskolen i \u00c5lesund\u00a0 (icaro.fonseca@ufpe.br), v1.1, Dez 2014. [toc] Introduction \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0SFI is a widely used classification system for ships, oil platforms and other maritime structures. The SFI system allows its users to divide hierarchically the elements\u2026<\/p>\n<p> <a class=\"continue-reading-link\" href=\"https:\/\/shiplab.hials.org\/?page_id=179\"><span>Continue reading<\/span><i class=\"crycon-right-dir\"><\/i><\/a> <\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"class_list":["post-179","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/shiplab.hials.org\/index.php?rest_route=\/wp\/v2\/pages\/179","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/shiplab.hials.org\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/shiplab.hials.org\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/shiplab.hials.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/shiplab.hials.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=179"}],"version-history":[{"count":10,"href":"https:\/\/shiplab.hials.org\/index.php?rest_route=\/wp\/v2\/pages\/179\/revisions"}],"predecessor-version":[{"id":366,"href":"https:\/\/shiplab.hials.org\/index.php?rest_route=\/wp\/v2\/pages\/179\/revisions\/366"}],"wp:attachment":[{"href":"https:\/\/shiplab.hials.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=179"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}