This page presents various examples of COPA applications, ranging from entity identification and the representation of organizational structures to network infrastructure management and the definition of structures used by software applications.
Table of Contents
Indexing Websites with Harvest
The origins of COPA date back to 1997, when RedIRIS identified the need to index and facilitate searches for information on scientific web pages created by researchers belonging to the so-called CVUs (Virtual User Communities).
To enable users to locate information, we needed a mechanism that would allow the content of these pages to be indexed and, above all, searches to be restricted to the content of each community. However, we only had one search engine, based on Harvest, and installing and maintaining a separate instance for each CVU was not feasible given the large number of communities.
To solve this problem, the idea emerged of creating a simple code that could represent, through a character string, the position of a web page within a subject hierarchy. In this way, the code could identify both a specific community and a broader subject area grouping several communities.
The code was initially incorporated into web pages through the
CVU.code metadata field. COPA (Optimized Coding for
Hierarchical Access to Information) was chosen to represent this
hierarchy, as its structure made it possible to express different
classification levels using a single code.
Searches worked by combining the terms entered by the user with
the COPA code corresponding to the selected scope, using the
AND operator. Since the code was also present in the
indexed pages, Harvest could filter the results without requiring
a separate indexer for each community.
For example, if a page belonged to the community identified by the
code a2b3, a search for the expression
research networks within that community could be
formulated as follows:
research networks AND CVU.code=a2b3
The hierarchical structure of COPA also made it possible to broaden the search scope. Instead of using the code of a specific community, the code of a higher level in the hierarchy could be used to search across all communities belonging to the same subject area.
Thus, with a single search engine and a shared index, searches could be performed either within a specific CVU or across several communities related by their scientific subject matter. COPA made it possible to express these different search scopes through a simple coding system incorporated directly into the web pages.
Hierarchical Identification of Entities
COPA makes it possible to identify institutions and the centres belonging to them using codes that represent their hierarchical relationships.
Institution Identification
Each institution is assigned a code consisting of the letter i followed by a sequential number. The number is assigned according to the order in which institutions are added to RedIRIS.
For example, the first institution receives the code i1, the second i2, the third i3, and so on.
Centre Identification
Each centre is identified by the code of the institution to which it belongs, followed by the letter c and a sequential number specific to that institution.
For example, the centres belonging to institution i1 could be identified as i1c1, i1c2 and i1c3. If another institution, identified as i2, has its own centres, these could be identified as i2c1, i2c2, and so on.
The numbering of centres starts at 1 for each institution and is assigned independently. Thus, each centre's code indicates which institution it belongs to.
List of Institutions and Centres
The following list contains the institutions registered in COPA and their corresponding identification codes, together with the centres belonging to them. This list makes it possible to consult the assigned codes and understand the hierarchical structure of the entities.
i1 - RedIRIS ... i10 - National Institute for Aerospace Technology (INTA) i10c1 - El Arenosillo Experimentation Centre (ICEDEA) i10c2 - El Pardo Hydrodynamic Experiments Canal (CEHIPAR) i10c3 - Torregorda Testing Centre (ICET) i10c4 - Unmanned Systems Centre of Excellence (ICEUS) i10c5 - Rozas Airborne Research Centre (ICIAR) i10c6 - La Marañosa Technological Institute (IITM) i10c7 - Canary Islands Space Centre (CEC) ... i16 - Institute of Astrophysics of the Canary Islands (IAC) i16c1 - Astrophysics Centre in La Palma (CALP) i16c2 - Roque de los Muchachos Observatory (ORM) i16c3 - Teide Observatory (OT) i17 - Centre for Energy, Environmental and Technological Research (CIEMAT) i17c1 - Extremadura Advanced Technologies Centre (CETA-CIEMAT) i17c2 - Almería Solar Platform (PSA) i17c3 - Renewable Energy Development Centre (CEDER) ... i31 - University of Oviedo (UNIOVI) i31c1 - Gijón Campus (UNIOGI) ... i48 - State Agency Spanish National Research Council i48c6 - Andalusian Centre for Developmental Biology (CABD) i48c7 - Andalusian Centre for Molecular Biology and Regenerative Medicine (CABIMER) i48c8 - CENTRE FOR ASTROBIOLOGY (CAB) ... i89 - Institute of High Energy Physics (IFAE) i89c1 Port D'Informació Científica (PIC) ... i120 - State Meteorological Agency (AEMET) i120c1 - Izaña Atmospheric Research Centre (CIAI) ... i664 - Ministry of Defence (MDEF) i664c1 - Defence Documentation Centre Library (CDOC) ... i664c27 - General Basic Academy for Non-Commissioned Officers (AGBS) i664c28 - Infantry Academy (ACINF) ... i778 - Digital Agency of Andalusia (ADA) i778c1 - Andalusian Scientific Computer Centre (CICA) ... i784 - Foundation for Biomedical Research of Eastern Andalusia - Alejandro Otero (FIBAO)
Representation of Organizational Structures
The hierarchical structures of an organization can be represented using COPA codes. This approach makes it possible to identify the different levels of a structure and the relationships between its elements.
Organizational Structure of an Entity's Staff
COPA coding can also be used to represent an entity's organizational structure by identifying its areas and the positions or functions associated with each one.
Each area is identified by a code consisting of the letter a and a number. Positions reporting to that area are identified by adding the letter p and another number to the area's code.
In this way, the codes link each position or function to its corresponding organizational area, facilitating the representation and consultation of the structure.
a1 Management a1p1 Director a1p2 Deputy Director a1p5 Secretariat a2 Middleware a2p1 Coordinator a2p2 Middleware Engineer a3 Network a3p1 Coordinator a3p2 Network Engineering Management a3p3 Operations a4 Systems and Security a4p1 Area Manager a4p2 Systems a4p3 CERT
Organizational Structure of a University
a1 Centre a1b1 Araba Centres a1b1c21 Delegated Unit of the Faculty of Economics and Business in Vitoria-Gasteiz a1b1c25 Faculty of Pharmacy a1b1c27 Teaching Unit of the Faculty of Medicine and Dentistry in Vitoria-Gasteiz a1b1c30 Faculty of Philology and Geography and History a1b2 Gipuzkoa Centres a1b2c15 Faculty of Chemical Sciences a1b2c21 Delegated Unit of the Faculty of Economics and Business in Donostia-San Sebastián a1b2c24 Faculty of Law a1b2c26 Faculty of Computer Science a1b2c27 Teaching Unit of the Faculty of Medicine and Dentistry in Donostia-San Sebastián a1b3 Bizkaia Centres a1b3c10 Faculty of Science and Technology a1b3c20 Faculty of Fine Arts a1b3c21 Faculty of Economics and Business a1b3c23 Faculty of Social Sciences and Communication a1b3c24 Delegated Unit of the Faculty of Law in Leioa ... a2 Library a2b80 Library (Central Library) a2b81 Library (Central Library, Alava Campus) a2b135 Library (Faculty of Physical Activity and Sport Sciences) a2b215 Library (Faculty of Chemical Sciences) a2b224 Library (Faculty of Law) a2b226 Library (Faculty of Computer Science) ... a4 Department a4b1 Geodynamics a4b2 Sociology II a4b3 Logic and Philosophy of Science a4b4 Preventive Medicine and Public Health a4b6 Personality, Assessment and Psychological Treatment ... a7 Management Office a7b1 Deputy Management Office for General Resources a7b1c1 Prevention Service a7b2 Deputy Management Office for Budgets and Accounting a7b3 Deputy Management Office for Information and Communication Technologies a7b3c1 C.I.D.I.R. Gipuzkoa a7b3c2 C.I.D.I.R. Bizkaia a7b3c3 C.I.D.I.R. Araba a7b3c4 C.I.G. a7b3c5 S.I.C. a7b4 Deputy Management Office for Personnel a7b5 Deputy Management Office for the Alava Campus a7b6 Deputy Management Office for the Bizkaia Campus a7b7 Deputy Management Office for the Gipuzkoa Campus ... a8 Rector's Office a8b1 Vice-Rector's Office for University Outreach a8b2 Vice-Rector's Office for Quality and Teaching Innovation a8b3 Vice-Rector's Office for Academic Staff a8b4 Vice-Rector's Office for Students a8b5 Vice-Rector's Office for International Relations a8b6 Vice-Rector's Office for Undergraduate and Postgraduate Studies a8b7 Vice-Rector's Office for Academic Organization and Coordination a8b7c1 Academic Administration a8b8 Vice-Rector's Office for Research a8b9 Vice-Rector's Office for Basque Language a8b10 Vice-Rector's Office for the Alava Campus a8b11 Vice-Rector's Office for the Bizkaia Campus a8b12 Vice-Rector's Office for the Gipuzkoa Campus a8b13 General Secretariat ... a10 Position
Organization and Location of Network Components
COPA coding can be used to classify the components of an institution's network infrastructure and facilitate their identification, location and inventory management. To do this, it is important to distinguish between the physical location of components, the inventory structure and the connectivity relationships between network elements.
These dimensions can be represented through independent classifications and linked using the attributes of LDAP directory entries. This allows a device to change location without having to change its identifier, and the same infrastructure can be consulted from different perspectives.
Infrastructure Hierarchy
One possible classification of the infrastructure can be organized from the campus down to the components of network equipment. In the following example, each level adds a letter and a number to the code of the level above it.
Campus (a)
+-> Centre (b)
+-> Building (c)
+-> Cabinet (d)
| +-> Chassis (e)
| +-> Module (f)
| +-> Port (g)
+-> Junction box (d)
When this hierarchy is used, the codes must follow the level corresponding to each element. For example:
Campus 1: a1 Centre 1: a1b1 Building 1: a1b1c1 Cabinet 1: a1b1c1d1 Chassis 1: a1b1c1d1e1 Module 1: a1b1c1d1e1f1 Port 1: a1b1c1d1e1f1g1 Junction box 1: a1b1c1d2
In this example, the cabinet is identified by level d,
the chassis by e, the module by f and the
port by g. The junction box uses the same level as the
cabinet but a different number, since both are considered elements
belonging to the building. This convention is illustrative and
should be adapted to the classification rules adopted by each
institution.
Classification of Physical Locations
Physical locations can be represented using a classification independent of the network components. This structure makes it possible to identify campuses, centres, buildings, floors and rooms, and can also be used to locate other institutional resources.
Campus 1: a1 Centre 1: a1b1 Building 4: a1b1c4 Floor 1: a1b1c4d1 Room 15: a1b1c4d1e15
Separating physical location from equipment identity makes it possible to keep the classification of spaces stable. The current location of each component can be recorded as an attribute of its LDAP entry, without incorporating the entire physical path into its permanent identifier.
Classification of Network Components
Network components can be organized using their own classification. This may include communications cabinets, chassis, modules, ports, patch panels, junction boxes and user outlets, provided that the hierarchical relationships used are clearly defined.
Each component must have a unique identifier within the defined scope. Where necessary, additional attributes can be recorded, such as the manufacturer, model, serial number, component type, status and physical location.
The inventory hierarchy describes the composition of elements, but it should not be confused with their physical location. For example, a device can be moved from one cabinet to another without changing its identity. If the internal composition of a device needs to be represented, it should be recorded according to the actual characteristics of the equipment rather than assuming that all devices have chassis and modules.
Relationships Between Outlets, Connections and Devices
Connectivity requires the representation of relationships between user outlets, cabling, patch panels and network equipment ports. These relationships describe physical or logical connections and do not necessarily constitute a hierarchy of ownership.
For example, a wall outlet identified as 3A24 could be
connected to connector 24 on panel A in cabinet 3. To interpret this
label correctly, the institution must document its meaning and
ensure that it is unique within the relevant scope.
Communications cabinet 3
+-- Patch panel A
+-- Connector 24
+-- Cabling to wall outlet 3A24
The example represents a connection relationship and does not imply that the wall outlet is physically part of the panel. The outlet, panel and cabinet can have independent identifiers, while the connections between them are recorded separately.
Similarly, a device may have several links, and a connection may change over time. It is therefore advisable to distinguish physical connections from logical associations, such as the assignment of an IP address or a VLAN.
Inventory and Assignment of Network Points
The inventory should include all installed outlets, both those currently in use and those that have not yet been connected or assigned to a user. The existence of an outlet does not imply that it is associated with a user or has active connectivity.
For each outlet, its identifier, location, physical connection, status and assignment can be recorded. Where appropriate, associations with connected devices, their MAC addresses, IP addresses and other management data can also be recorded.
These associations should be kept distinct: an outlet may be installed but disconnected, connected but not assigned to a user, or associated with a device whose logical configuration changes. This separation makes it possible to maintain infrastructure traceability and consult both available resources and those currently in use.
For further details about the proposed classification, its examples and implementation issues, see the document copaNetwork.txt.
Structure of PKI Elements
COPA can be used to represent hierarchical relationships between elements of a public key infrastructure (PKI), according to the structure defined in the example.
The following example illustrates this application of COPA, based on the coding used in pkIRISGrid. The code is constructed by adding successive identifiers that make it possible to determine the registration authority, the applicant and the associated certificate:
a1 First registration authority ... a2 Second registration authority a2b43 User 43 of registration authority 2 a2b43c1 First request or certificate of user 43 of registration authority 2 a2b43c2 Second request or certificate of user 43 of registration authority 2 a2b43c3 Third request or certificate of user 43 of registration authority 2 ...
The letter a identifies the registration authority (RA)
that has identified the applicant. The letter b
identifies the applicant within that authority, and the letter
c identifies each of their certificates. Thus, the
complete code makes it possible to locate the certificate within
the PKI structure and associate it with the corresponding
registration authority and applicant.
The c identifier is assigned to the certificate request
and is retained when the request is signed and becomes an issued
certificate. Therefore, the COPA code does not change during this
transition: it identifies the same item both while it is awaiting
signature and after it has been issued. This preserves continuity
in its identification throughout the process.
The COPA code can also be included in the certificate through the
subjectAltName extension, using a URL that allows the
audit information associated with the certificate to be consulted
on the PKI website.
For example, the value
https://pki.irisgrid.es/audit/?id=a2b43c2
provides access to the audit information associated with the
certificate identified by a2b43c2, belonging to user 43
of the second registration authority of pkIRISGrid.
Classification of Resources by Subject Area (CATRE)
CATRE (RedIRIS Classification of Subject Areas) is an example of applying COPA coding to the hierarchical classification of subject areas.
In this case, each area is identified by a code that reflects its position within the classification. The codes make it possible to identify both specific areas and their membership in broader categories.
The following example shows the CATRE classification:
a01 - Experimental sciences a01b01 - Biology a01b01c01 - Animal biology: zoology a01b01c01d01 - Animal anatomy a01b01c01d02 - Animal behaviour a01b01c01d03 - Animal communication a01b01c01d04 - Animal cytology a01b01c01d05 - Animal development a01b01c01d06 - Animal ecology a01b01c01d07 - Animal embryology a01b01c01d08 - Animal genetics a01b01c01d09 - Animal growth a01b01c01d10 - Animal histology a01b01c01d11 - Animal pathology a01b01c01d12 - Animal parasitology a01b01c01d13 - Animal physiology a01b01c01d14 - Animal taxonomy a01b01c01d14e01 - Biochemistry a01b01c01d14e02 - Non-insect invertebrates a01b01c01d14e03 - Insects a01b01c01d14e04 - Fish a01b01c01d15 - General zoology a01b01c01d16 - Herpetology a01b01c01d17 - Invertebrates a01b01c01d18 - Mammals a01b01c01d18e01 - Ungulates a01b01c01d19 - Marine zoology a01b01c01d20 - Ornithology a01b01c01d21 - Primates a01b01c01d22 - Protozoology a01b01c01d23 - Vertebrates a01b01c01d24 - Zoology: ichthyology a01b01c02 - Biochemistry a01b01c03 - Biomathematics a01b01c03d01 - Biostatistics a01b01c04 - Biometry a01b01c05 - Biophysics a01b01c05d01 - Bioacoustics a01b01c05d02 - Bioelectricity a01b01c05d03 - Bioenergetics a01b01c05d04 - Biomechanics a01b01c05d05 - Bio-optics a01b01c05d06 - Medical physics a01b01c06 - Cell biology a01b01c06d01 - Cell culture a01b01c06d02 - Cytogenetics a01b01c06d03 - Cell morphology a01b01c06d04 - Cytology a01b01c06d05 - Tissue culture a01b01c06d06 - Cell wall structure a01b01c07 - Human biology a01b01c07d01 - Blood group a01b01c07d02 - Human anatomy a01b01c07d03 - Human cytology a01b01c07d04 - Human development a01b01c07d05 - Human ecology a01b01c07d06 - Human embryology a01b01c07d07 - Human genetics a01b01c07d08 - Human histology a01b01c07d09 - Human neuroanatomy a01b01c07d10 - Human physiology a01b01c07d10e01 - Balance physiology a01b01c07d10e02 - Anaesthesiology a01b01c07d10e03 - Cardiovascular physiology ... a02 - Health sciences ... a03 - Social sciences ... a04 - Technologies ... a05 - Humanities ...
The documentation and the complete classification can be accessed through the following links:
Organization of Spaces
COPA can be used to identify and locate objects stored in physical spaces, such as shelves, cabinets or filing cabinets. To do this, a hierarchical classification is defined to represent the shelf, the shelf level, the approximate position of the object and, when necessary, its order within a group of stacked objects.
Classification Structure
-
a: identifies a storage area, such as a shelving unit. -
b: identifies the shelf level within the shelving unit. Shelf levels are numbered from bottom to top. -
c: identifies a position within a virtual section of the shelf. Its approximate physical location depends on the values ofa,bandc. -
d: makes it possible to distinguish several objects sharing the same positionc, for example, two boxes stacked one on top of the other. This level is optional.
To make objects easier to locate, each shelf is conceptually divided into virtual sections or containers approximately 50 cm wide. These sections are spatial reference points and do not correspond to physical items or have their own codes.
Position codes are organized in blocks of ten, associated with virtual sections approximately 50 cm wide, counted from the left end of each shelf. By convention, numbering starts at c10, without using codes c0 to c9. Codes c10 to c19 correspond to the first section; codes c20 to c29 correspond to the second section, and so on.
This numbering makes it possible to estimate the horizontal location of objects using the left end of the shelf as a reference. Positions c10, c20, c30 and subsequent codes correspond to reference points approximately 50 cm apart, consistently across all shelves. However, the number of objects that can be placed within each section may vary depending on their size and arrangement.
For example, if several objects occupy practically the entire first section, an object placed next could fall within the second virtual section and receive the code a1b1c20. The assignment depends on the object's approximate physical location, not on the order in which it was added to the inventory. The sections are references that facilitate location, not mandatory physical boundaries.
Coding Example
a1 Shelving unit 1 a1b1 First shelf level of shelving unit 1, closest to the floor a1b1c10 Position 1 of the first virtual section of the first shelf of shelving unit 1 a1b1c11 Position 2 of the first virtual section of the first shelf of shelving unit 1 ... a1b1c20 Position 1 of the second virtual section of the first shelf of shelving unit 1 ... a1b1c40d1 First object recorded at position a1b1c40 a1b1c40d2 Second object recorded at position a1b1c40, stacked on top of the previous one ... a1b1c50 Position 1 of the fifth virtual section of the first shelf of shelving unit 1 ... a1b2 Second shelf level of shelving unit 1 ... a1b6 Sixth shelf level, the highest, of shelving unit 1 ... a2 Shelving unit 2 ... a3 Shelving unit 3
Approximate Location
If the virtual intervals are 50 cm wide and are counted from the left end of the shelf, the first section starts at the left end of the shelf (0 cm), the second at 50 cm, the third at 100 cm and the fourth at approximately 150 cm.
These measurements describe the beginning of each interval, not the exact position or dimensions of the stored object. The actual accuracy depends on the width of the shelving unit, the arrangement of the objects and the conventions used to record their locations.
Usage Considerations
- Each complete code must uniquely identify an object or a location, depending on the classification criteria adopted.
- The assignment of identifiers to virtual sections must follow a consistent approach across all shelves.
- If several objects need to be identified at the same position, a stable numbering rule should be defined for them.
- If objects change location frequently, it is advisable to keep the object's identifier separate from the COPA code of its current location.
Organizing a Move
COPA can be used to organize a move by identifying the rooms in a home, the different sections of each room and the boxes containing objects packed from each section.
In this example, the letter a identifies a room,
the letter b a section within it, such as a wall
or the central area, and the letter c a box containing
objects from that section.
a1 Bedroom a1b1 Bedroom - Wardrobe wall a1b1c1 Box 1 - Wardrobe wall a1b1c2 Box 2 - Wardrobe wall a1b2 Bedroom - Window wall a1b2c1 Box 1 - Window wall a1b3 Bedroom - Central area a1b3c1 Box 1 - Central area a2 Living room a2b1 Living room - Television wall a2b1c1 Box 1 - Television wall a2b2 Living room - Window wall a2b2c1 Box 1 - Window wall a2b3 Living room - Central area a2b3c1 Box 1 - Central area a3 Kitchen a3b1 Kitchen - Cupboard area a3b1c1 Box 1 - Cupboard area a3b2 Kitchen - Countertop area a3b2c1 Box 1 - Countertop area
This coding makes it possible to retrieve the boxes associated with
a particular room or section. For example, codes beginning with
a1 correspond to the bedroom, while those beginning
with a1b2 correspond to the window-wall section of
that bedroom.
If the contents of each box are also recorded, it will be possible to locate individual objects and determine the room and section from which they originated. This facilitates both inventory preparation before the move and the location of objects during unpacking.
The destination home can be organized using another independent classification. In this way, the reference to the original location can be retained while the destination location is recorded separately, without confusing the objects' origin with their current location.
Other Possible Use Cases
In addition to the examples above, COPA can be applied to many other areas where organizing items using a hierarchical structure is useful. The ability to identify each item through a code made up of successive levels facilitates classification, grouping and location.
Possible applications include:
- Warehousing and logistics: organization of warehouses, zones, shelving units, shelf levels and containers to facilitate product location and inventory management.
- Archives and libraries: classification of collections, holdings, documentary series, files, documents and physical locations.
- Laboratories and scientific collections: organization of laboratories, equipment, collections, batches, samples and subsamples.
- IT equipment: classification of sites, departments, workstations and devices to facilitate inventory management.
- Buildings and facilities: representation of campuses, buildings, floors, rooms and items requiring maintenance, such as sensors, lighting fixtures or HVAC equipment.
- Industrial maintenance: organization of plants, production lines, machines and components to identify items and relate them to their context.
- Projects and technical documentation: classification of projects, subsystems, components and associated documents.
- Environment and natural areas: organization of municipalities, parks, sectors and inventoried items, such as trees or monitoring stations.
- Sensor networks: classification of installations, zones, stations and sensors, making it easier to identify each device within a broader structure.
- Events and resources: organization of events, spaces, stands, equipment and materials needed for their preparation and execution.
These examples illustrate that COPA is not limited to a specific sector: it can be used whenever items can be organized hierarchically and it is useful to identify both each item and the group to which it belongs. The structure and meaning of each level should be defined according to the needs of each application.
When an item may change location or maintain relationships with several items in the classification, it is advisable to distinguish its identification code from the relationships or locations managed separately.