Oppbygging av taksonomisystemet
Taksonomisystemet gir et hierarkisk kategoriseringsrammeverk som kombinerer globale RDF-S (Resource Description Framework Schema) kategorier med organisasjonsspesifikke tilpasninger. Dette muliggjør standardisert produkt- og tjenesteklassifisering samtidig som det gir organisatorisk fleksibilitet.
Hovedfunksjoner
- Hierarkisk struktur med forelder-barn-relasjoner
- Egenskapsarv med mulighet for overstyring
- RDF-S-kompatibilitet for semantisk web-kompatibilitet
- Multi-tenant-støtte med organisasjonsspesifikke kategorier
- Turtle RDF-eksport for interoperabilitet
Kjerneprinsiper
1. Dobbeltlags-arkitektur
Systemet består av to lag:
- Globalt lag (RDF-S): Standardiserte kategorier tilgjengelig for alle organisasjoner
- Organisasjonslag: Organisasjonsspesifikke kategorier som utvider det globale laget
2. Kategorityper
| Type | Omfang | URI-mønster | Foranderlighet |
|---|---|---|---|
| Global (RDF-S) | Alle organisasjoner | http://taxonomy.sirktek.no/{categoryName} | Skrivebeskyttet |
| Organisasjonsspesifikk | Enkeltorganisasjon | http://taxonomy.sirktek.no/{orgId}#{categoryName} | Full CRUD |
Kategorihierarki
Strukturregler
- Enkel forelder-regel: Hver kategori har nøyaktig én forelder (unntatt rotkategorier)
- Ubegrenset dybde: Ingen begrensninger på hierarkidybde
- Krysslag-kobling: Organisasjonskategorier kan ha RDF-S-foreldre
- Ingen sirkulære referanser: Forelder-barn-relasjoner må være asykliske
Hierarkieksempel
Møbler (global)
├── Stol (global)
│ ├── Kontorstol (org: acme-corp)
│ │ ├── Ergonomisk stol (org: acme-corp)
│ │ └── Lederkontorstol (org: acme-corp)
│ └── Spisestol (org: acme-corp)
└── Bord (global)
├── Spisebord (org: acme-corp)
└── Konferansebord (org: acme-corp)Egenskaper og typer
Egenskapsstruktur
Hver kategori kan ha flere egenskaper med følgende attributter:
interface CategoryProperty {
name: string; // Egenskapsidentifikator
value: string; // Egenskapsverdi
type: PropertyType; // Datatype
inherited: boolean; // Om arvet fra forelder
}Egenskapstyper
| Type | Beskrivelse | Eksempelverdi | Validering |
|---|---|---|---|
STRING | Tekstverdi | "Premium skinn" | Maks 2000 tegn |
INTEGER | Heltall | "42" | Positive heltall |
DECIMAL | Desimaltall | "19.99" | Positive desimaler |
DECIMAL_KG | Vekt i kg | "25.5" | Positive desimaler |
DECIMAL_CM | Lengde i cm | "180.0" | Positive desimaler |
DECIMAL_M2 | Areal i m² | "2.5" | Positive desimaler |
DECIMAL_M3 | Volum i m³ | "0.8" | Positive desimaler |
BOOLEAN | Sant/Usant | "true" | true eller false |
URL | Nettadresse | "https://example.com" | Gyldig URL |
EMAIL_FORM | E-postadresse | "[email protected]" | Gyldig e-post |
INTEGER_SCALE_1TO5 | Vurderingsskala | "4" | 1-5 område |
EMISSION | CO2-utslipp | "CO2;125.5;kg;EPD;A1-A3" | Spesielt format |
Format for utslippsegenskap
CO2;<mengde>;<enhet>;<sertifisering>;<fase>Eksempel: "CO2;125.5;kg;EPD;A1-A3"
- Mengde: 125.5
- Enhet: kg
- Sertifisering: EPD (Environmental Product Declaration)
- Fase: A1-A3 (Produksjonsfase)
Egenskapsarv
Arveregler
- Automatisk propagering: Egenskaper flyter fra foreldre- til barnekategorier
- Akkumulering: Barnekategorier arver alle forfedres egenskaper
- Overstyringsfunksjon: Barn kan overstyre arvede egenskapsverdier
- Navnebasert matching: Egenskaper med samme navn betraktes som samme
- Typekonsistens: Overstyrte egenskaper bør beholde samme type
Arvemekanisme
Når en barnekategori definerer en egenskap med samme navn som en arvet egenskap:
- Barnets verdi får forrang
- Den arvede verdien maskeres (slettes ikke)
- Videre etterkommere arver den overstyrte verdien
- Egenskapstypen bør forbli konsistent
Overstyringseksempel
Møbler:
egenskaper:
materiale: "tre" # Original
garanti: "2 år" # Original
Kontorstol (barn av Møbler):
arvet:
garanti: "2 år" # Beholdt fra forelder
overstyrt:
materiale: "plast" # Endret fra "tre"
egne:
hjul: "true" # Ny egenskapURI-struktur og navnerom
URI-mønstre
Globale kategorier (RDF-S)
http://taxonomy.sirktek.no/{categoryName}Eksempel: http://taxonomy.sirktek.no/furniture
Organisasjonsspesifikke kategorier
http://taxonomy.sirktek.no/{organizationId}#{categoryName}Eksempel: http://taxonomy.sirktek.no/acme-corp#OfficeChair
Navneromsdefinisjoner
| Prefiks | Navnerom | Bruk |
|---|---|---|
taxonomy: | http://taxonomy.sirktek.no/ | Basis taksonominavnerom |
org: | http://taxonomy.sirktek.no/{orgId}# | Organisasjonsspesifikt navnerom |
rdfs: | http://www.w3.org/2000/01/rdf-schema# | RDF Schema-vokabular |
rdf: | http://www.w3.org/1999/02/22-rdf-syntax-ns# | RDF-syntaks |
RDF-S-integrasjon
RDF Schema-kompatibilitet
Taksonomisystemet følger RDF-S-standarder for semantisk web-kompatibilitet:
- Kategorier som klasser: Hver kategori er en
rdfs:Class - Hierarkiske relasjoner: Forelder-barn via
rdfs:subClassOf - Etiketter og beskrivelser: Bruker
rdfs:labelogrdfs:comment - Egenskapsdefinisjoner: Tilpassede egenskaper i taksonominavnerom
RDF-S-kategoristruktur
<http://taxonomy.sirktek.no/furniture> a rdfs:Class ;
rdfs:label "Møbler" ;
rdfs:comment "Basiskategori for alle møbelelementer" .
<http://taxonomy.sirktek.no/chair> a rdfs:Class ;
rdfs:label "Stol" ;
rdfs:comment "Sittemøbler med ryggstøtte" ;
rdfs:subClassOf <http://taxonomy.sirktek.no/furniture> .Turtle-eksport
Eksportformat
Systemet eksporterer komplett taksonomi i W3C Turtle (Terse RDF Triple Language) format:
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix taxonomy: <http://taxonomy.sirktek.no/> .
@prefix org: <http://taxonomy.sirktek.no/acme-corp#> .
# Global RDF-S-kategori
<http://taxonomy.sirktek.no/furniture> a rdfs:Class ;
rdfs:label "Møbler" ;
rdfs:comment "Alle møbelprodukter" .
# Organisasjonsspesifikk kategori
<http://taxonomy.sirktek.no/acme-corp#OfficeChair> a rdfs:Class ;
rdfs:label "Kontorstol" ;
rdfs:comment "Stoler designet for kontorbruk" ;
rdfs:subClassOf <http://taxonomy.sirktek.no/chair> ;
taxonomy:material "plast" ;
taxonomy:adjustable "true"^^taxonomy:BOOLEAN ;
taxonomy:warranty "3"^^taxonomy:INTEGER ;
taxonomy:weight "12.5"^^taxonomy:DECIMAL_KG .Eksempler
Komplett taksonomieksemel
Produkt (Global)
├── Møbler (Global)
│ ├── Stol (Global)
│ │ ├── Kontorstol (ACME Corp)
│ │ │ ├── Ergonomisk stol (ACME Corp)
│ │ │ └── Lederkontorstol (ACME Corp)
│ │ └── Spisestol (ACME Corp)
│ └── Bord (Global)
│ ├── Spisebord (ACME Corp)
│ └── Konferansebord (ACME Corp)
└── Elektronikk (Global)
├── Datamaskin (Global)
└── Telefon (Global)Egenskapsarveksempel
Stol (Global):
egenskaper:
materiale: "tre"
resirkulerbar: "true"
garanti_år: "2"
Kontorstol (ACME Corp):
arvet_fra_Stol:
resirkulerbar: "true" # Beholdt som-er
overstyrt:
materiale: "plast" # Endret fra "tre"
garanti_år: "5" # Utvidet fra "2"
egne_egenskaper:
hjul: "true"
justerbar_høyde: "true"
armlener: "true"
Ergonomisk stol (ACME Corp):
arvet_fra_Kontorstol:
resirkulerbar: "true" # Fra Stol
materiale: "plast" # Fra Kontorstol
garanti_år: "5" # Fra Kontorstol
hjul: "true" # Fra Kontorstol
justerbar_høyde: "true" # Fra Kontorstol
armlener: "true" # Fra Kontorstol
overstyrt:
materiale: "mesh" # Endret fra "plast"
egne_egenskaper:
lendestøtte: "justerbar"
hodestøtte: "true"