Codes are abbreviations for names, which makes it easier to identify the correct item in a long list. Codes also make it easier to search in a database for groups of data. A well-designed code system will facilitate the administration of large sets of data.
There is no general agreement on a universal codes system for fisheries data. One good reason is that many code systems are based on the local language, and match a special feature of the fisheries sector of the country in question. However, even international codes for data exchange are not yet standardised, although several attempts have been made to introduce international standards.
Codes should be “keys”, that is, every value of a code must be unique. Once you use a code, there can be only one way to interpret it. For example, a vessel registration code should refer to only one vessel. A computerised relational database system will ensure that no two values of a “key” are the same. If, for example, you try to enter an already existing vessel registration code, the system will give an error message. Species codes are probably the most complex types of codes in a fisheries database.
The “keys” are used to establish consistent relations between the tables in a database. Some keys of a database are just unique numbers, where the actual value is arbitrary (e.g. a serial number given to an interview record). Other keys, like the species codes, are given names, which should make it possible to extract sub-sets of data. This section deals with the type of keys that have been assigned values indicating a meaning.
All the keys should have the same length, measured in number of characters, to facilitate the extraction of data.
A code system used for international exchange of data needs to meet standards different from those of a national code system. In the following, some suggestions are discussed for international exchange codes for species identification, but the author is not in a position to recommend any particular code.
Scientific Species Name: The scientific name is of variable length, which is not suitable for a code. Taxonomy is a fluid science and scientific names may change significantly, which would complicate future data exchanges. Furthermore some species have more than one scientific name (synonyms) and this can cause confusion.
Common Species Name: The majority of fish have a common name, but this name varies depending on the language spoken and/or the country. The same name can often be used for many species as for commercial group categories, and its meaning may vary from place to place. Rare species may not have a common name. Common names are not suitable for exchange of data.
FAO Species Codes: FAO has developed the International Standard Statistical Classification of Aquatic Animals and Plants (ISSCAAP). This has two components:
A three-letter code based on the common name, which is used at an administrative level to report catches of commercial fish. It is not widely used within the scientific community.
A 10-character numeric, fixed field, hierarchical code.
The alpha code does not enable any taxonomic data to be encoded.
RUBIN (RoUtine for Biological INformation): The Nordic Code Centre (a division of the Swedish Museum of Natural History) created two systems. Firstly, there is the Rubin Code, which is based on the first four letters of the genus plus a space plus the first three letters of the species (e.g. “Gadus morhua” gives “GADU MOR”). These eight characters are followed by a further two characters which are used for computer storage and handling.
The Nordic Code Centre also produced a 12 digit numeric system - the Rubin Number. This system consists of a proceeding digit to separate biological and non-biological parameters, followed by a 10 digit code to identify the species, followed by a final digit to signal the version number.
CLOFNAM: The most comprehensive texts on fish identification in the NE Atlantic are ‘Checklist Of the Fishes of the Northeastern Atlantic and of the Mediterranean’ (CLOFNAM) and ‘Fishes of the Northeastern Atlantic and the Mediterranean’ (FNAM), both published by UNESCO.
In 1965 a panel of experts was convened and asked to produce an extensive generic listing of fish in European waters. This listing was first published in 1973 as the CLOFNAM code. As a logical follow up it was decided to publish descriptions of the fauna with keys, diagnoses and illustrations and FNAM was published in 1984. Practically every species liable to be encountered in this area is described in FNAM and given a code first determined in CLOFNAM. This code is hierarchical because it is based on the taxonomic position of the species and is alpha/numeric in structure. For example, the codes for three species are:
The disadvantages are: the codes have variable length, alpha/numeric codes are not easy to sort and they are only revised about every 10 years. Some species have two codes whilst a debate is held over their exact taxonomic position. An additional complication is that this code is limited to fish species an that it does not include invertebrates.
NODC-CODE (National Oceanographic Data Center Taxonomic Code): The NODC code system, is probably the most recognised species code system. It is used by ICES and its member countries. The system was originally developed for North America. The start was “A Taxonomic Code for the Biota of Chesapeake Bay” published in 1972 at the Virginia Institute of Marine Science (VIMS). The VIMS codes contained a maximum of 10 digits with each two digits representing a different level of the systematic hierarchy. During 1974 and 1975 the University of Alaska developed a taxonomic code in order to manage biological data for the Alaskan Outer Continental Shelf Environmental Assessment Program (OCSEAP). These codes, known as the “Alaska Species Codes” were based on the VIMS numeric concept, but used a completely different numerical sequence.
Following the publication of the Alaska Species Codes, the National Oceanographic Data Center produced a taxonomic code into which virtually any existing taxon could be placed. The first version of the NODC Taxonomic Code was issued in 1977.
The NODC Taxonomic Code contains a maximum of 12 digits and each code number is partitioned into a series of 2 digit couplets. Each couplet represents one or more levels of the taxonomic hierarchy (Table 6.3.1).
Table 6.3.1 Example NODC code representing taxonomic hierarchy.
|NODC Code||Number of digits||Level of the taxonomic hierarchy|
|93||2||Subkingdom, Phylum, Subphylum, Class, Superorder, Order|
|9301||4||Superclass, Class, Subclass, Superorder, Order, Suborder, Infraorder, Section, Superfamily|
|930101||6||Class, Order, Suborder, Family, Subfamily|
The NODC code has been expanded to accommodate more taxa, which gave problems especially when a taxon was re-classified. The subsequent re-coding was time consuming and complicated the data management. Relational database management systems now allow for efficient searches and retrievals to be conducted without the need for taxonomic information in the codes. For these reasons, the NODC Taxonomic Codes released in June 1996 (version 8.0) will be the last release of a system based on a hierarchical system. The NODC will continue to publish and maintain this system for the foreseeable future, but no additions or modifications will be made to version 8.0. The NODC Taxonomic Code is the most widely used of all the various coding systems developed during the last two decades. Although the National Oceanographic Data Center is not developing the NODC code further, they are still developing and maintaining a system of encoding data (Table 6.3.2). In 1996 NODC introduced the “Taxonomic Serial Number” (TSN). This system comprises of a non-intelligent' code (i.e. the code will not be hierarchical based) whereby taxa are assigned a unique serial number. This serial number remains with the taxon even though the taxon itself may go in or out of synonymy or be entirely reclassified.
Table 6.3.2 Examples of exchange species codes
|Scientific Name||NODC Code||TNS Code||CLOFNAM Code|
|Cephalaspidea||5110000000||76047||NA, Only fish|
|Cephalopoda||5700000000||82326||NA, Only fish|
|Penaeus||6177010100||203624||NA, Only fish|
There are codes for many different types of data. Here we shall only mention one more code system, namely the codes for fishing gears. FAO has developed a code system for fishing gears as shown in Table 6.3.3. This system is internationally accepted as the standard for exchange of data.
It should be noted that conversion from one type of code to another type of code, usually is not a big problem for modern database software. Hence, the development of a local code system will not create problems as long as the codes can be readily converted to international exchange standards
Table 6.3.3 Examples of exchange codes for fishing gears. International classification of types of fishing gear (ISSCFG) FAO-1980.
|Category of gear||abbreviation||Code ISSCFG|
|2||With purse lines (purse seines)||PS||01.1.0|
|3||One vessel operated purse seines||PS1||01.1.1|
|4||Two vessels operated purse seines||PS2||01.1.2|
|5||without purse lines (lampara)||LA||01.2.0|
|8||Boat or vessel seines||SV||02.2.0|
|12||Seine nets (not specified)||SX||02.9.0|
|16||Otter trawls 1)||OTB||03.1.2|
|20||Bottom trawls (not specified)||TB||03.1.9|
|25||Midwater trawls (not specified)||TM||03.2.9|
|26||Otter twin trawls||TT||03.3.0|
|27||Otter trawls (not specified)||OT||03.4.9|
|28||Pair trawls (not specified)||PT||03.5.9|
|29||Other trawls (not specified)||TX||03.9.0|
|34||Portable lift nets||LNP||05.1.0|
|35||Boat-operated lift nets||LNB||05.2.0|
|36||Shore-operated stationary lift nets||LNS||05.3.0|
|37||Lift nets (not specified)||LN||05.9.0|
|40||Falling gear (not specified)||FG||06.9.0|
|41||GILLNETS AND ENTANGLING NETS||07.0.0|
|42||Set gillnets (anchored)||GNS||07.1.0|
|45||Fixed gillnets (on stakes)||GNF||07.4.0|
|47||Combined gillnets-trammel nets||GTN||07.6.0|
|48||Gillnets and entangling nets (not specified)||GEN||07.9.0|
|49||Gillnets (not specified)||GN||07.9.1|
|51||Stationary uncovered pound nets||FPN||08.1.0|
|54||Stow nets (swing nets)||FSN||08.4.0|
|55||Barriers, fences, weirs, etc.||FWR||08.5.0|
|57||Traps (not specified)||FIX||08.9.0|
|58||HOOKS AND LINES||09.0.0|
|59||Handlines and pole-lines (hand operated)2)||LHP||09.1.0|
|60||Handlines and pole-lines (mechanised)||LHM||09.2.0|
|63||Longlines (not specified)||LL||09.5.0|
|65||Hooks and lines (not specified)3)||LX||09.9.0|
|66||GRAPPLING AND WOUNDING||10.0.0|
|71||Harvesting machines (not specified)||HMX||11.9.0|
|72||MISCELLANEOUS GEAR 4)||MIS||20.0.0|
|73||RECREATIONAL FISHING GEAR||RG||25.0.0|
|74||GEAR NOT KNOWN OR NOT SPECIFIED||NK||99.0.0|
|1) Fisheries agencies may indicate side and stern bottom and side and stern midwater trawls, as OTB-1 and OTB-2 and OTM-1 and OTM-2, respectively.|
2) Including jigging lines.
3) Code LDV for dory-operated line gears will be maintained for historical data purposes.
4) This item includes: Hand and landing nets, drive-in nets, gathering by hand with simple hand implements with or without diving equipment, poisons and explosives, trained animals, electric fishing.
The national code system suggested below is based on the author's experience in setting up a data collection programme and database for Viet Nam's marine capture fisheries. The code system was decided upon by the data managers of this particular data collection programme, therefore it would not necessarily be appropriate anywhere else. Nevertheless the system presented here serves to illustrate the issues surrounding the development of a code system.
The code system should always be bilingual, (unless English is the first language of the country in question). In the presentations, first priority should be given to the national language. It is however, important for the exchange of data that translations into English exist. The example of a code system given below, had all descriptions of codes both in English and Vietnamese language, but the codes were based on English (for species, the scientific names in Latin). In the original versions of the codes given below, the description of all codes was given both in Vietnamese and English.
The codes are alphanumeric strings. The general structure of code often used is “MSX(N)”, where
|S||=||Subdivision of major group,|
|X||=||Indication of specific features.|
|N||=||Indication of further details, if required|
Each part of the code may consist of one or more characters.
Code for Fishing (or “Home”) Ports: The code for fishing port, landing place (or “home port”) has seven characters and the general structure: “PDX”, where
P = Province, D = District (abbreviation), X = Town or village (abbreviation)
Code for Fishing Vessels (Vessel Register):
The Official Vessel Registration code reads “PNZ”, where
P = province code, or home port code, N = Numerical, Z = Authority of registration (optional)
Some vessels however, may not be officially registered with the code above. This applies in particular to smaller vessels. It may therefore be necessary to introduce an extended vessel registration system, so those vessels that have been sampled but do not have a registration code, can be entered in the database.
Code for Fishing Grounds and Landing Places (Spatial Information)
For the definition of a “statistical rectangle”, see Section 4.2.
The format of the code for a statistical rectangle is
XNN (or XNN0) where X = A,B,…. (from west to east) and N = 1,2,…. (from north to south)
The format of the code for a subdivision of a statistical rectangle is
XNNs where s indicates the subdivision, s = 1,2,…,9.
One important objective of using statistical rectangles is to convert geographical data from the fisheries database into maps using GIS (Geographical Information System).
Table 6.3.4 Example fishing ground codes. Overall structure of the code for fishing grounds is: XxNNNN, where Xx = Type of area, NNNN = “Indication of name”. For certain types of fishing grounds (e.g. waters bordering islands, reefs, banks, see example) the code is numerical: IxNNN, x = 1,2,3,4,5,6,7,8 where the number indicates the compass directions.
|A||Archipelago (fishing grounds around several islands)||NNNN||Abbreviation of name|
|Ax||x = 1,2,3,4,5,6,7,8 defined as for islands (see example below)|
|B||Bank||NNNN||Abbreviation of name|
|Bx||x = 1,2,3,4,5,6,7,8 defined as for islands (see example below)|
|C||Coral reef||NNNN||Abbreviation of name|
|Cx||x = 1,2,3,4,5,6,7,8 defined as for islands (see example below)|
|D||Depth strata||dddd||Mean depth of depth strata|
|F||Other Fishing grounds||NNNN||Abbreviation of name|
|Fx||x = 1,2,3,4,5,6,7,8 defined as for islands (see example below)|
|I||Island (fishing grounds around an Island)||NNN||Abbreviation of name|
|Ix||x = 1,2,3,4,5,6,7,8 to indicate the compass (see example below)|
|L||“Large area”, (or sub-area) but something smaller than “Main area”||NNNN||Abbreviation for name|
|M||Main area, the largest unit areas considered||NNNN||Abbreviation for name|
|O||Off a land-location||NNNN||Abbreviation for name|
|Ox||x = 1,2,3,4,5,6,7,8 defined as for islands (see example below)|
|P||Provincial Waters of two or more provinces combined.||PPP|
(P or “#”)
|“PPP” = “abbreviation of combined provinces” If last character is “#” it means that the province does not exist to day.|
|PW||Provincial Waters of one province||PP|
(P or “#”)
|“PPP” = “Province abbreviation”, If last character is “#” it means that the province does not exist to day.|
|T||Between two locations||NNnn||“NN” abbreviation of name of first location,|
“nn” abbreviation of name of second location
|Z||Special values (e.g. “Not known”)||NNNN||Abbreviation of meaning of special value|
|I1||North of Island|
|I2||N-E of Island|
|I3||East of Island|
|I4||S-East of Island|
|I5||South of Island|
|I6||S-W of Island|
|I7||West of Island|
|I8||N-W of Island|
The NODC code system for species was considered in Viet Nam, but was not found “user-friendly”. The numerical codes based only on taxonomic groupings had many shortcomings for the recording of a commercial fishery, which only to a certain degree respects the rules of taxonomy. As this is a national code system, the data managers were not so concerned about the compatibility with an international standard.
The code for species that was adopted is a seven character mnemonic code developed by the Nansen Programme (StrÆmme, 1992) for worldwide use in trawl and acoustic surveys. The species code consists of three sub-fields. The first two sub-fields, comprising three and two letters respectively (1–5), indicate the higher taxonomic categories to which a species belongs while the last two fields (6,7), usually numbers, define the species.
|Higher taxonomic category||Lower taxonomic category||Species|
In the case of bony fishes, the first three letters usually coincide with the first letters of the family name to which the species belongs, the next two letters refer to the genus and the numbers to the species:
|Family of bony fishes||Genus of bony fishes||Bony fish Species|
Example: CARCH01 = Chloroscombrus chrysurus
|CARANGIDAE||CHLOROSCOMBRUS||01 = CHRYSURUS|
For other taxonomic groups (i.e. sharks, rays, shrimps, lobsters, crabs, stomatopods, squids and cuttlefish, bivalves and gastropods) the system is slightly different. The first three letters indicate the “taxonomic group”. The next two letters indicate the family, followed by one number (or letter) for the genus and the last number (or letter) indicates the species:
Example: SHRPE69 = Penaeus brasiliensis
|SHRIMP||PENAEIDAE||6 = Penaeus||9 = brasiliensis|
In addition, there are some special codes, such as codes not conforming to the taxonomic grouping. There are also codes for animal groups closely linked to (or included in) the taxonomic system. The NAN-SIS codes were originally used for bony fish species, but the designers of NAN-SIS plan to develop the code so that non-bony fish get the same treatment, which would improve the system.
|FISNC00||FISH, SMALL NOT COMMON|
|Code||“Scientific Name”||English Name|
|RAYAA00||RAYS||BATOID FISHES, RAYS|
|SEAUR00||SEA URCHINS||SEA URCHINS|
|SQUSQ00||SMALL SQUID UNIDENTIFIED||SMALL SQUIDS UNIDENTIFIED|
|STARF00||S T A RFISH||STARFISH|
The FAO-codes for gears (Table 6.3.3) were not used, as the codes suggested below were found easier to handle, in particular for retrieval of data from the database. Furthermore, the FAO code did not cover all the types of gears used in Viet Nam.
The gear code is a four characters alphanumeric code, XSNN, where
|X||= Major group of fishing gears|
|S||= Subdivision of major group of fishing gears|
|NN||= Indications of specific gears (or gear groups)|
The first character X is alphabetic and indicates the main group of fishing gears, exemplified by the list below (from AMLRV, 1998).
|Name of gear group|
|4||D||Surrounding nets/ purse seine|
|11||K||Combination of multi-gears|
|12||Z||Special codes (see following table)|
The second character, S, is numerical and indicates the subdivisions of the main groups of fishing gears: The last two numerical characters are used to indicate specific gears, as illustrated by gillnets in the tables below:
|XSNN||Name of gear group|
|B211||Surface drift net|
|B212||Mid-water drift net|
|B220||Gillnet for swimming crab|
|B231||Bottom drift gillnet|
|B232||Bottom stationary gillnet|
|B250||Off shore gillnet|
|B252||Flying fish gillnet|
The code for fishing fleets, naturally, is linked to the gear code, as the fleets are defined (amongst other features) by the gear they use. The code has 6 characters: XSNNxx
|X||= Major group of fleets (defined by the gear(s)). Alphabetical|
|S||= Major sub-group of fleets (defined by the gear(s) and target species).|
|NN||= Indication of further fleet characteristics to further divide the major sub-groups|
|xx||= Engine horsepower group|
Currently, X, can take the values listed in the table below, (which are equivalent to the code for fishing gear):
|Fleet Code X||Name of fleet||Gear (s)|
|B||Entangling / Gillnetters||Entangling net|
|C||Push netter||Push net|
|D||Surrounding netter / purse seine||Surrounding net|
|E||Hook and line fleet||Line|
|F||Lift netter||Lift net|
|G||Cast netter||Cast net|
|K||Combination of gears fleet||Combination of gears|
|Z||Special codes (see table below)|
The characters “SNN” are used for sub-divisions of the main fleets.
Finally, the code is shown for the division of a fleet into horsepower classes, where x = a,b,c,d,e. The example below shows the division of trawlers into four horsepower classes (a,b,c and d). Notice that “e” indicates the combination of all classes.
|Fleet Code XSNNxx||Name of Fleet (English)||Gear (s)|
|A000a0||Trawler <= 45 HP||Trawl|
|A000b0||Trawler 46–74 HP||Trawl|
|A000c0||Trawler 75–140 HP||Trawl|
|A000d0||Trawler >140 HP||Trawl|
|A000e0||Trawler > 0 HP||Trawl|
Commercial groups are the species groupings made by the fishers and the buyers. The commercial groupings are considered so different from the taxonomic groupings behind the NAN-SIS codes, that it was decided to develop a special code for the commercial groups. Commercial groups are not only determined by the species, but also by the size, quality and the treatment of the catch.
Thus, we shall consider three aspects of commercial grouping: (1) Commercial species groups, (2) Commercial size group and (3) Treatment & quality groups. The commercial species groups vary from province to province and from fleet to fleet within a province. Therefore, commercial species groups are defined for each combination of province and fleet.
The commercial group code is a combination of three codes of which the first two codes are similar to those explained earlier.
Province code: PPP
Fleet code: XNNNxx
where X = Main group of gear, NNN = sub-group or gear, xx = horsepower class
Species / Size Group / Treatment-quality code: XXXNNSTT
Species group sub-code: XXX =Major group, that is:
either Taxonomic group, (e.g. a family, suborder, or order)
or Commercial group (e.g. “trash fish” or “pink prawn”).
NN = Indication of species or species group, if required, otherwise “-”
Commercial size group sub-code: S = Size group
(e.g. small, medium and large or Category I, II and III)
TT = Treatment (e.g. fresh, iced, salted, dried and “for export”)
Thus the total 17 character alphanumeric code reads:
Whenever a character is not used, it is replaced by underscore “-”. Zero or “0” usually means “all”. The lists are not complete and most likely will be modified.
It should be kept in mind that no attempt to make a scientific biological (taxonomic) classification has been made with the codes for commercial groups. The code is selected to reflect the market situation for sea products in Viet Nam and the export market. Thus, when the seller and buyers for example, combine genus, family and even orders in commercial groups, no attempt is made to represent this in the codes for commercial groups. The sole purpose is to reflect the commercial groups as the market mechanisms have created them. Example codes are given in Tables 6.3.5 – 6.3.8.
Table 6.3.5 Example of major commercial (species) groups. The groups are those of fishers and fishmongers, not those of biologists. However, they are useful for economists, as they reflect the prices and the marketing options. The codes indicated with bold, are used in the example given below.
|RSK||Rays and skates|
|SCT||Scads and trevalies|
Table 6.3.6 The two character “NN” (indication of “species” or “species group”) again does not primarily deal with the scientific species concept, but with the marketing, as is illustrated by the examples given.
|Commercial Species Group Code||Species (or Species group)||Name of Commercial Species Group|
|FIMLD||LD||Mixed big fish group|
Table 6.3.7 Example size class codes. The size classes may be the ad hoc sorting usually practised into two groups “Small” and “Large” or the groups “Small”, “Medium” and “Large”. In this case, we use the letters “S”, “M” and “L”. If more size groups are needed, for example in the case of commercial groups for shrimps (counts or number per weight unit) numerical characters or special signs are used.
|S||Description of commercial “Size group”|
|0||All size groups|
|1||Size class 1 (if more than 3 size classes are used)|
|2||Size class 2 (if more than 3 size classes are used)|
|.... etc||Size class 3,…,9, (if more than 3 size classes are used)|
Table 6.3.8 Example codes for treatment of the catch (“TT”). This is most likely not the final version of this table, but rather the very first suggestion.
|TT||Description of “Treatment-Quality”|
|00||Fresh, not iced (no treatment)|
|DP||Dried and packed|
|DE||Dried and packed for export|
|FE||Frozen for export|
|FP||Frozen and Packed|
|PE||Frozen and packed for export.|
|DP||Dried and Packed|
|HP||Headed & Peeled|
|QI||Fresh high quality, Iced|
|TF||Salting Trash fish for sauce|
When entering a value in a data form (the “hard form” used for trip-interview or the form used on the computer screen for entry of data), misspellings and other mistakes may easily occur. A well-designed code system can minimise the risk of errors. Many data fields are of a type where only a limited number of options for the value are available. Whenever this is the case, a “look-up-table” should be prepared for the enumerator or the encoder, and the enumerator should be instructed only to use the options in the look-up table (see example in Figure 6.4.1).
The tables shown in Section 6.3 are examples of look-up-tables.
A look-up table should always be in the local language. The international language (English) may or may not be shown. The enumerators and encoders will master the local language, but may not benefit from the English name. Table 6.4.1 shows an extract from the look-up table for species of VIETFISHBase. The complete table contains 1007 species, genus, and families or species groups. The enumerators, should all be given a copy of this table, and when filling in the forms they should give both the code and the local name. Giving both allows for validation of data by the time they are entered in the computer.
Figure 6.4.1 Look-up tables for data entry from computer screen.
Table 6.4.1 Extract from the species look-up table from VIETFISHBase.
|Code||Scientific Species Name||Scientific Genus Name||Scientific Family name||Viet Namese Name 2||English Name|
|3||ACRSY02||Synagrops japonicus||Synagrops||SYNGNATHIDAE||Japanese splitfin|
|7||ANRAN04||Antennarius striatus||Antennarius||ANTHENNARIDAE||Straited frogfin|
|8||ANRAN05||Antennarius hispidus||Antennarius||ANTHENNARIIDAE||Shaggy angler|
|1001||URAUR07||Uranoscopus japonicus||Uranoscopus||URANOSCOPIDAE||Japanese stargazer|
|1002||URAUR08||Uranoscopus bicinctus||Uranoscopus||URANOSCOPIDAE||Marbled stargazer|
|1003||VELVE02||Velifer hipselopterus||Velifer||VELIFERIDAE||Sailfin velifer|
|1007||ZEIZE01||Zeus faber||Zeus||ZEIDAE||John dory|
2 The Vietnamese names have been omitted because of the differences in fonts