LoRA KlassifikationService

Fra Den Fælleskommunale Rammearkitektur
Version fra 19. feb 2020, 00:47 af Julie K. Bendtsen (diskussion | bidrag)

(forskel) ←Ældre version | se nuværende version (forskel) | Nyere version→ (forskel)
Skift til: Navigation, Søgning

Klassifikation bruges af alle andre byggeblokke, og er derfor central i rammearkitekturen.

Standarden Klassifikation[1] , beskriver strukturen. Bilag beskriver objekttyper.

Data i rammearkitekturen er struktureret som objekter, som bibeholder deres identitet, når de distribueres til it-systemer, hvor de skal anvendes. Det betyder, at der vil være flere forskellige services, der kan tilbyde de samme klassifikationssystemer og at objekterne kan indgå i et eller flere it-systemers databaser. Objekterne vedligeholdes løbende og skal gøres tilgængelige, der hvor de bruges.

Klassifikationssystemer kan berige hinanden, ved at klasser kombineres eller mappes til hinanden. Det kan ske forlods eller som efterfølgende viden, som opsamles fra praksis fx om sammenhæng mellem forskellige klasser: Indsats-klasser, KLE og kontoklasser. Denne viden kan gøres tilgængelig i klassifikationsservicen. Det forudsætter, at servicen både kan distribuere og modtage objekter.

Følgende beskriver funktionalitet, der skal bruges af en klassifikationsservice, men som også vil kunne bruges af de øvrige services. Der kan anvendes Python til programmering af REST-interfacet.


Component diagram

Komponent diagrammet illustrerer komponenter og deres afhængighed. Komponenter der er grønne er helt eller delvis genstand for aftalen. Komponenter der er røde, udfører kald til rutiner, der udvikles i anden sammenhæng.

  1. Generering af en database med objekttyperne Klassifikation, Facet og Klasse samt hjælpeobjektet Stikord på samme måde som Organisation.
  2. Databasen tilgås via PL/pgSQL, der udstiller funktionerne på samme måde som Organisation, herunder Søg/List funktionerne, der også omfatter stikord.
  3. REST Serviceinterface.

Klassifikationsservicen skal udstille et serviceinterface, hvorfra applikationer og MOX-agenter kan udføre funktioner på databasernes objekter. Specifikation vedlagt.

Klassifikation struktur

Klassifikation struktur
Objekttype Elementtype Betegnelse Værdi Betydning
Klassifikation AttributListe BrugervendtNoegleTekst tekst Brugervendt identifikation af objektet
Klassifikation AttributListe BeskrivelseTekst tekst Officielt navn på brugeren
Klassifikation AttributListe KaldenavnTekst tekst Valgfri brugertypetekst - kan også angives som relation
Klassifikation AttributListe OphavsretTekst tekst Valgfri brugertypetekst - kan også angives som relation
Klassifikation TilstandListe Publiceret Publiceret, Ikke-publiceret Skal angive om brugeren er aktivt gældende eller inaktiv (ophørt)
Klassifikation RelationListe Ansvarlig 0..1 Aktør Angiver den aktør (organisation eller enhed) der er ansvarlig for objektet (i den pågældende service)
Klassifikation RelationListe Ejer 1..1 Aktør Angiver den aktør (organisation) som objektet tilhører.
Facet AttributListe BrugervendtNoegleTekst tekst Entydig betegnelse for en facet indenfor klassifikationen
Facet AttributListe BeskrivelseTekst tekst Uddybende beskrivelse, formål, indhold, gyldighedsområde mv
Facet AttributListe OpbygningTekst tekst Opbygning af facetten
Facet AttributListe OphavsretTekst tekst Angivelse af evt. ophavsret for den pågældende facetplan
Facet AttributListe PlanIdentifikator tekst Angiver det nummer i en kombination, som facettet skal indgå i
Facet AttributListe SupplementTekst Ja, Nej Angiver om det er muligt at tilføje klasser til facetten
Facet AttributListe RetskildeTekst tekst Henviser til retskilde som facettens klasser reguleres af
Facet TilstandListe Publiceret Publiceret, Ikke-publiceret Skal angive om brugeren er aktivt gældende eller inaktiv (ophørt)
Facet RelationListe Ansvarlig 0..1 Aktør Angiver den aktør (organisation eller enhed) der er ansvarlig for objektet (i den pågældende service)
Facet RelationListe FacetTilhoerer 0..1 Klassifikation Relation mellem Klassifikation og Facet
Facet RelationListe Redaktoerer 0..n Aktør Angiver den aktør (organisation eller enhed) der er redaktør for objektet
Facet RelationListe Ejer 0..1 Aktør Angiver den aktør (organisation) som objektet tilhører.
Klasse AttributListe BrugervendtNoegleTekst tekst Dette er den entydige identifikator for klassen indenfor facetten
Klasse AttributListe BeskrivelseTekst tekst Et illustrerende eksempel på brug af emnet.
Klasse AttributListe EksempelTekst tekst Opbygning af facetten (FEJL)
Klasse AttributListe OmfangTekst tekst Angivelse af både hvad klassen omfatter og hvad den ikke dækker - scope
Klasse AttributListe TitelTekst tekst Kortfattet præcis titel for klassen
Klasse AttributListe AendringsnotatTekst Ja, Nej Når en redaktør ændrer klassens indhold kan han her skrive hvad og hvorfor der er ændret
Klasse AttributListe Soegeord 0..n forekomster Angivelse af 0 eller mange søgeord for det pågældende objekt
Klasse AttributListe Soegeord:SoegeordIdentifikator Tekst Søgeordet
Klasse AttributListe Soegeord:BeskrivelseTekst Tekst Beskrivelse af søgeord
Klasse AttributListe Soegeord:SoegeordKategoriTekst Tekst Kategorisering af målgruppespecifikke søgeord
Klasse AttributListe RetskildeTekst tekst Henviser til retskilde som objektet reguleres af
Klasse TilstandListe Publiceret Publiceret, Ikke-publiceret Skal angive om brugeren er aktivt gældende eller inaktiv (ophørt)
Klasse RelationListe Ansvarlig 0..1 Aktør Angiver den aktør (organisation eller enhed) der er ansvarlig for objektet (i den pågældende service)
Klasse RelationListe Facet 0..1 Facet Facettilhørsforhold
Klasse RelationListe Redaktoerer 0..n Aktør Angiver den aktør (organisation eller enhed) der er redaktør for objektet
Klasse RelationListe Ejer 0..1 Aktør Angiver den aktør (organisation) som objektet tilhører.
Klasse RelationListe Erstatter 0..n Klasse Angiver en lokal klasse som erstatter denne klasse indenfor samme facet
Klasse RelationListe LovligeKombinationer 0..n Klasse Angiver de klasser, som mappes forlods
Klasse RelationListe Mapninger 0..n Klasse Angiver mapning mellem klasser
Klasse RelationListe OverordnetKlasse 0..1 Klasse Angiver at den klasse der er overordnet denne klasse
Klasse RelationListe Sideordnede 0..n Klasse Angiver sideordnede klasser
Klasse RelationListe Tilfoejelser 0..n Klasse Angiver en lokal klasse, som er tilføjet indenfor samme facet

REST interface

https://<host><:port>/<-miljø>/<endpoint>/<-version>/<objektid>/
<?variabel_1=værdi_1><&variabel_n=værdi_n> 
REST interface
Element Beskrivelse Eksempel
<host> Hostnavn svarer til en ip-adresse - Obligatorisk www.vera.dk

www.moxing.dk

localhost

12.234.456.43

<:port> Port skal kun anvendes, hvis den ikke er  :80. :8080
<-miljø> Miljø udtrykker driftsmiljø. –prod er default og behøver ikke angives. Andre miljøer: -test, -demo, -udv, -int, -kopi, … /-test
< endpoint> Objekttype eller service betegnelse. Endpoint kan være hierarkisk: organisation/orgEnhed eller Klassifikation/Klasse eller api/dokument/upload /orgEnhed
<-version> Version af endpoint kan angives, hvis det afviger fra den version der er som default i det pågældende miljø. /-1.2
<objektid> Interfacet anvender kun uuid som identifikation af objekter. Den interne tekniske nøgle anvendes ikke i interfacet. Objektid anvendes når man skal udføre en operation på objektet. Kan udelades, for operationer der arbejder med flere objekter. /ba79f9b5-5418-4fc3-ad12-8b2e829547cd
<?var_1=value_1> <&var_n=value_n> Parameter kan angives som url-parametre – den første skal have et ’?’ – de efterfølgende et ’&’. Variable og værdier svarer til værdier for objektet.

Der er en række standardparametre, der dækker de generelle egenskaber:

  • &virkningFra=<datotid>&virkningTil=<datotid>
  • &registreretFra=<datotid>&registretTil=<datotid>

Er disse ikke angivet sættes de fire værdier til søgetidspunktet – dermed får man ’actual state’. Man kan søge på den brugervendte nøgle for objektet og evt. Angive kontekst afgrænsning for den (typisk den organisation indenfor hvilken bvn skal være unik).

  • &bvn=<kontekst:><brugervendt nøgle> .

Man kan søge på relationer til et objekt ved at angive

  • &<uuid for relationsobjektet> eller &<kontekst:bvn>.

Den finder også selv ud af om det er en uuid eller en bvn og i hvilken rolle og objekttype der opfylder søgningen. Man kan afgrænse til en specifik rolle og objekttype ved at angive disse:

  • &<rolle>:<objekttype>=<uuid>| <kontekst:bvn>

Servicen kan tilbyde mere avancerede parametre – fx mulighed for select-statements på samme måde som Odata (option).

<data> Dataobjekt i det format, som http header angiver Json object
Metode Man kan anvende REST protokollens metoder (GET, POST, PUT, PATCH, DELETE, …) med følgende sammenhæng til de generelle egenskabers operationer:
  • Læs: GET / <objektid>
  • List: GET / <?parametre>
  • Søg: GET / <?parametre>
  • Slet: DELETE /<objektid>
  • Opret: POST <data>
  • Ret: PUT /<objektid> <data>
  • Import: PUT /<objektid> <data>
  • Passiver: PUT /<objektid> <data livscyklus=’PASSIV’>
POST
Header Brugerid, brugerrolle, token mv. sendes med http-header med de tilsvarende betegnelser. Content-Type sættes til det pågældende indhold. Content-Type = application/json

Referencer

  1. http://digitaliser.dk/resource/1567856