iris-ldap

Optimized Coding for Hierarchical Access to Information

(This page has been translated automatically using machine translation)

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 of a, b and c.
  • d: makes it possible to distinguish several objects sharing the same position c, 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.