Duomenų tipai
- absent
Žymi savybę, kuri buvo ištrinta ir nebenaudojama. Žiūrėti Struktūros keitimas.
- boolean
Loginė reikšmė.
Brandos lygis
- 1
Duomenyse nėra vientisumo, kartais
true
pateikta kaip1
, kartais akiptaip
, arbayes
.
- 2
Visi duomenys pateikti vienoda, tačiau nestandartine forma.
- 3
Duomenys pateikti standartine forma. Standartinė forma priklauso nuo pasirinkto duomenų saugojimo formato. Pavyzdžiui JSON formatu
boolean
tipas išreiškiamas kaiptrue
irfalse
.
- integer
Sveikas skaičius.
Mažiausia galima reikšmė:
-2147483648
.Didžiausia galima reikšmė:
2147483647
.property.ref
stulpelyje, nurodomi Matavimo vienetai.Brandos lygis
- 1
Duomenys pateikti skirtingais vienetais, pavyzdžui dalis duomenų pateikti metrais, dalis kilometrais ir dalis milimetrais.
Amžius pateiktas atskirai, nurodant metus, menesius ir dienas. Šiuo atveju brandos lygis yra 1, kadangi neaišku, kiek yra dienų metuose ir mėnesiuose, kadangi skirtingi metai ir skirtingi mėnesiai turi skirtingą dienų skaičių. Tokiais atvejais duomenis reikia pateikti dienomis.
- 2
Duomenys pateikti išskaidant vieną reikšmę į kelias reikšmes, skirtingais vienetais. Duomenys turėtu būti pateikti mažiausiu deltaumu, viename duomenų lauke. Pavyzdžiui atstumas pateiktas atskirais duomenų laukais, kur viename nurodomas atstumas kilometrais, kitame metrais, trečiame milimetrais. Šiuo atveju, duomenys turėtu būti pateikiami milimetrais.
- 3
Duomenys yra kiekybiniai, tačiau
ref
stulpelyje nenurodyti vienetai.
- number
Realusis skaičius, apvalinamas naudojant slankiojo kablelio aritmetiką, kur sveikoji skaičiaus dalis gali būti šešių skaitmenų dydžio.
property.ref
stulpelyje, nurodomi Matavimo vienetai.Sveikoji dalis atskiriama
.
simbolių.
- binary
Dvejetainiai duomenys. Bendras baitų skaičius turi būti ne didesnis nei 1G.
Tekstiniai duomenys
Tekstiniai duomenys skirstomi į du skirtingus tipus string
ir text
.
- string
Simbolių eilutė. Neriboto dydžio, tačiau fiziškai simbolių eilutė turėtu būti ne didesnė, nei 1G.
Simboliu eilutė turėtu būti pateikta UTF-8 koduote.
Šiuo tipu žymimi duomenų laukai, kuriuose tekstas pateiktas ne žmonių kalba. Tai gali būti įvairūs kategoriniai duomenys, identifikatoriai ar kito pobūdžio simbolių eilutės, kurios nėra užrašytos natūraliąja žmonių kalba.
- text
Natūraliaja žmonių kalba užrašytas tekstas.
Galima nurodyti kokia kalba užrašytas tekstas naudojant ISO 639-1 kodus. Kalbos kodas nurodomas
property
stulpelyje, prie pavadinimo įrašant@<kodas>
, kur<kodas>
yra pakeičiamas į dviejų raidžių kalbos kodą. Pavyzdžiuipavadinimas@lt
. Plačiau apie tai RDF Turtle specifikacijoje iš kur ir buvo pasiskolintas toks kalbų žymėjimas.Tekstas turėtu būti pateikta UTF-8 koduote. Jei šaltinyje tekstas nėra UTF-8 koduotės, tuomet galima
prepare
stulepyje įrašoų formulių pagalba galima nurodyti transformavimo taisykles iš šatinio naudojamos į UTF-8 koduotę.property.ref
galima pateikti teksto formatą, nadojant vieną iš šių formatų:html
- tekstas pateiktas HTML formatu.md
- tekstas pateiktas Markdown formatu.rst
- tekstas pateitkas reStructuredText formatu.tei
- tekstas pateiktas TEI formatu.
Pavyzdys:
d
r
b
m
property
type
ref
example
Country
name@lt
text
description@lt
text
html
Šiame pavyzdyje
@lt
nurodo, kad šalies pavadinimai ir aprašymai pateikti Lietuvių kalba. Papildomai, šalies aprašymo teksto formatas yra HTML tipo.
Data ir laikas
- datetime
Data ir laikas atitinkantis ISO 8601.
Mažiausia galima reikšmė:
0001-01-01T00:00:00
.Didžiausia galima reikšmė:
9999-12-31T23:59:59.999999
.Pagal ISO 8601 standartą, data gali būti pateikta tokia forma:
YYYY-MM-DD[*HH[:MM[:SS[.fff[fff]]]][+HH:MM[:SS[.ffffff]]]]
Simbolis
*
reiškia, kad galima pateikti bet kokį vieną simbolį, dažniausiai naudojamas tarpo simbolis, arba raidėT
.property.ref
stulpelyje, nurodomas datos ir laiko tikslumas sekundėmis. Tikslumą galima nurodyti laiko vienetais, pavyzdžiuiY
,D
,S
, arba5Y
,10D
,30S
. Visi duomenys turi atitikti vienodą tikslumą, tikslumas negali varijuoti. Galimi vienetų variantai:Reikšmė
Prasmė
Y
Metai
M
Mėnesiai
Q
Metų ketvirčiai
W
Savaitės
D
Dienos
H
Valandos
T
Minutės
S
Sekundės
L
Milisekundės
U
Mikrosekundės
N
Nanosekundžės
Brandos lygis
- 1
Data ir laikas pateikti naudojant skirtingus formatus, pavyzdžiui
2020-01-31
,01/31/2020
,31.1.20
.Data ir laikas pateikti laisvu tekstu, pavyzdžiui
2020 paskutinę pirmo mėnesio dieną
.
- 2
Duomenys pateikti nesatandartiniu formatu, tačiau visi duomenys pateikti vienodu formatu. Pavyzdžiui visi duomenys pateikti
01/31/2020
formatu.Duomenys pateikti atskiruose laukuose, pavyzdžiui metai pateikti viename
integer
tipo lauke, o ketvirtis, kitameinteger
tipo lauke. Norint didesnio brandos lygio, duomenys turi būti vienamedate
tipo lauke suproperty.ref = Q
.
- 3
Duomenys pateikti standartiniu ISO 8601 formatu.
Nenurodytas
property.ref
, kuriame turėtu būti pateiktas duomenų tikslumas.
- date
Tas pats kas
datetime
tik dienos tikslumu. Šio tipo reikšmės taip pat turi atitikti ISO 8601:YYYY-MM-DD
Jei norima nurodyti datą žemesnio nei dienos tikslumo, tada vietoj mėnesio ir dienos galima naudoti
01
irproperty.ref
stulpelyje nurodyti tikslumą:Reikšmė
Prasmė
Y
Metai
M
Mėnesiai
Q
Metų ketvirčiai
W
Savaitės
D
Dienos
- time
Dienos laikas, be konkrečios datos. Šio tipo reikšmės, kaip ir kiti su laiku sisję tipai turi atitikti ISO 8601:
HH[:MM[:SS[.fff[fff]]]][+HH:MM[:SS[.ffffff]]]
Jei norima nurodyti žemesnio nei sekundžių tikslumo laiką, tada vietoj minučių ir/ar sekundžių galima naudoti
00
irproperty.ref
stulpelyje nurodyti tikslumą:Reikšmė
Prasmė
H
Valandos
T
Minutės
S
Sekundės
L
Milisekundės
U
Mikrosekundės
N
Nanosekundžės
- temporal
Apibrėžtis laike.
Šis tipas atitinka
datetime
, tačiau nurodo, kad visas model yra apibrėžtas laike, būtent pagal šią savybę. Tik viena model savybė gali turėtitemporal
tipą. Pagal šios savybės reikšmes apskaičiuojamas ir įvertinamas dct:temporal.
Erdviniai duomenys
- geometry
Erdviniai duomenys. Duomenys pateikiami WKT formatu, naudojant EPSG duomenų bazės parametrus, skirtingoms projekcijoms išreikšti.
property.ref
stulpelyje nurodomas tikslumas metrais. Tikslumą galima pateikti naudojanti SI vienetus, pavyzdžiuim
,km
arba10m
,100km
.geometry
tipas gali turėti du argumentusgeometry(form, crs)
:form
- geometrijos formacrs
- koordinačių sistema
Pats tipas gali būti pateiktas vienu iš šių variantų:
geometry(form, crs)
- nurodant formą ir koordinačių sistemągeometry(crs)
- nurodant tik koordinačių sistemągeometry(form)
- nurodant tik formągeometry
- be argumentų.
Geometrijos forma (
form
)Galimi tokie geometrijos tipai:
point
- taškas.linestring
- linija.polygon
- daugiakampis (pradžios ir pabaigos taškai turi sutapti).multipoint
- keli taškai.multilinestring
- kelios linijos.multipolygon
- keli daugiakampiai (kiekvieno daugiakampio pradžios ir pabaigos taškai turi sutapti).
Kiekviena iš formų gali turėti tokias galūnes nurodančias papildomą dimensiją:
z
- aukštis.m
- pasirinktas matmuo (pavyzdžiui laikas, atstumas, storis ir pan.)zm
- aukštis ir pasirinktas matmuo.
Jei geometrijos forma nenurodyta, tada duomenys gali būti bet kokios geometrinės formos. Jei forma nurodyta, tada visi duomenys turi būti tik tokios formos, kokia nurodyta.
Koordinačių sistema (
crs
)Antrasis
geometry
argumentas nurodomas pateikiant SRID numerį, kuris yra konkrečios koordinačių sistemos identifikacinis numeris EPSG duomenų bazėje. Jei koordinačių sistemos numeris nenurodytas, tuomet daroma prielaida, kad erdviniai duomenys atitinka4326
(WGS84) koordinačių sistemą.Svarbu, kad pateikiant duomenis, koordinačių ašių eiliškumas atitiktų tokį eiliškumą, kuris nurodytas EPSG parametrų duomenų bazėje, konkrečiai koordinačių sistemai, kuria pateikiami duomenys.
Pilną SRID kodų sąrašą galite rasti epsg.io svetainėje. Keletas dažniau naudojamų SRID kodų:
ašis #1
ašis #2
SRID
CRS
kryptis
žymėjimas
kryptis
žymėjimas
vienetai
4326
šiaurė
latitude (platuma)
rytai
longitude (ilguma)
laipsniai
3346
šiaurė
x (abscisė)
rytai
y (ordinatė)
metrai
3857
rytai
x (abscisė)
šiaurė
y (ordinatė)
metrai
4258
šiaurė
latitude (platuma)
rytai
longitude (ilguma)
laipsniai
Atkreipkite dėmesį, kad LKS94 koordinačių sistemoje geometrinės ašys neatitinka matematinių ašių ir yra sukeistos vietomis. Įprastai šiaurė ir y ašis yra viršuje, tačiau LKS94 atveju šiaurėje yra x ašis.
Ašinio meridiano projekcija yra abscisių (x) ašis. Šios ašies teigiamoji kryptis nukreipta į šiaurę. Ordinačių (y) ašies teigiamoji kryptis nukreipta į rytus.
Prieš publikuojant duomenis, galite pasitikrinti, ar koordinačių ašys pateikiamos teisinga tvarka, naudotami taško atvaizdavimo įrankį.
Pavyzdžiui, norint patikrinti Vilniaus Katedros varpinės bokšto taško koordinates, LKS94 (EPSG:3346) sistemoje, galite naršyklės adreso juostoje pateikti šį adresą:
https://get.data.gov.lt/_srid/3346/6061789/582964
Jei ašių eiliškumas teisingas, gausite tašką ten kur tikėjotės, jei ašys sukeistos vietomis, tada taškas žemėlapyje gali būti visai kitoje vietoje, nei tikėjotės.
Adreso formatas:
/_srid/{srid}/{ašis1}/{ašis2}
{srid}
- EPSG duomenų bazėje esančios koordinačių sistemos SRID kodas{ašis1}
- pirmosios ašies reikšmė (kryptis priklauso nuo{srid}
){ašis2}
- antrosios ašies reikšmė (kryptis priklauso nuo{srid}
)
Pavyzdžiai (strukūros aprašas)
geometry
- WGS84 projekcijos, bet kokio tipo geometriniai objektai.geometry(3346)
- LKS94 projekcijos, bet kokio tipo geometriniai objektai.geometry(point)
- GWS84 projekcijos, betpoint
tipo geometriniai objektai.geometry(linestringm, 3345)
- LKS94 projekcijos,linestringm
tipo geometriniai objektai su pasirinktu matmeniu, kaip trečia dimensija.
Pavyzdžiai (duomenys)
Vilniaus Katedros varpinės bokšto taškas, LKS94 (EPSG:3346) koordinačių sistemoje:
POINT (6061789 582964)
Brandos lygis
- 1
Nenurodytas koordinačių sistema ir duomenys pateikti skirtingomis koordinatėmis.
Sumaišytos ašys, pavyzdžiui vieni duomenys pateikiami x, y, kiti y, x.
Sumaišyti vienetai, pavyzdžiui vieni duomenys pateikti metrais, kiti laipsniais.
Pateiktas adresas, nenurodant adreso koordinačių.
- 2
Nenurodyta koordinačių sistema, tačiau visi duomenys pateikti naudojant vienodą koordinačių sistemą.
- 3
Nenurodytas
property.ref
, kuriame turėtu būti pateiktas duomenų tikslumas metrais.
- spatial
Apibrėžtis erdvėje.
Šis tipas atitinka
geometry
, tačiau nurodo, kad visas model yra apibrėžtas erdvėje, būtent pagal šią savybę. Tik viena model savybė gali turėtispatial
tipą. Pagal šios savybės reikšmes apskaičiuojamas ir įvertinamas dct:spatial.
Valiuta
- money
Valiuta. Saugomas valiutos kiekis, nurodant tiek sumą, tiek valiutos kodą naudojant ISO 4217 kodus.
Valiutos kodas nurodomas
property.ref
stulpelyje.Pavyzdys:
d
r
b
m
property
type
ref
source
example
Product
PRODUCT
price
money
EUR
PRICE
Jei valiutos suma ir pavadinimas saugomi atskirai, tuomet valiutą galima aprašyti taip:
d
r
b
m
property
type
ref
source
prepare
example
Product
PRODUCT
amount
PRICE
currency
CURRENCY_CODE
price
money
money(amount, currency)
Šio tipo duomenys pateikiami viena iš šių formų:
123 123.45 123 EUR 123.45 EUR
Failai
- file
Šis duomenų tipas yra sudėtinis, susidedantis iš tokių duomenų:
- id
Laukas, kuris unikaliai identifikuoja failą, šis laukas duomenų saugojimo metu pavirs failo identifikatoriumi, jam suteikiant unikalų UUID.
- name
Failo pavadinimas.
- type
Failo media tipas.
- size
Failo turinio dydis baitais.
- content
Failo turinys.
Šiuos metaduomenis galima perduoti
file()
funkcijai, kai vardinius argumentus. Pavyzdžiui:d
r
b
m
property
type
source
prepare
access
datasets/example
Country
name
string
NAME
open
flag_file_name
string
FLAG_FILE_NAME
private
flag_file_data
binary
FLAG_FILE_DATA
private
flag
file
file(name: flag_file_name, content: flag_file_data)
open
Šiame pavyzdyje, iš
flag_file_name
irflag_file_data
laukų padaromas vienasflag
laukas, kuriame panaudojami duomenys iš dviejų laukų. Šiuo atveju,flag_file_name
irflag_file_data
laukai tampa pertekliniais, todėlaccess
stulpelyje jie pažymėtiprivate
.Analogiškai, tokius pačius duomenis galima aprašyti ir nenaudojant formulių:
d
r
b
m
property
type
source
prepare
access
datasets/example
Country
name
string
NAME
open
flag
file
open
flag._name
FLAG_FILE_NAME
open
flag._content
FLAG_FILE_DATA
open
- image
Paveiksliukas.
image
tipas turi tokias pačias savybes kaipfile
tipas.
Išoriniai raktai
Taip pat žiūrėkite: Ryšiai tarp modelių.
Išoriniai raktai iš dalies yra panašūs į sudėtinius tipus, kadangi laukas, kuris rodo į kitą objektą, yra traktuojamas, kaip kitas objektas.
- ref
Ryšys su modeliu. Šis tipas naudojamas norint pažymėti, kad lauko reikšmė yra
property.ref
stulpelyje nurodyto modelio objektas.Pagal nutylėjimą, jungimas su kito modelio objektais daromas per siejamo pirminį raktą (
model.ref
), tačiau yra galimybė nurodyti ir kitą, nebūtinai pirminį raktą.Jei jungimas daromas, ne per pirminį raktą, tuomet, laukai per kuriuos daromas jungimas nurodomi
property.ref
stulpelyje laužtiniuose sklaustuose, pavyzdžiui:Country[code]
Čia jungiama su
Country
modeliu, perCountry
modeliocode
duomenų lauką.Jei laukas, per kurį daromas jungimas nenurodytas, pavyzdžiui:
Country
Tada, jungimas daromas per
Country
modelio pirminį raktą, kuris nurodytasmodel.ref
stulpelyje.Šio objekto reikšmės yra pateikiamos, kaip dalis objekto į kurį rodoma. Jei
ref
tipo lauko brandos lygis (property.level
) yra 4 ar didesnis, tuomet šio duomenų tipo reikšmės atrodo taip:{"_id": "69c98b0f-9e4e-424b-9575-9f601d79b68e"}
Jei brandos lygis (
property.level
) yra žemesnis nei 4, tada reikšmė atrodo taip:{"id": "69c98b0f-9e4e-424b-9575-9f601d79b68e"}
Čia
id
yramodel.ref
arba kitas laukas, per kurį daromas jungimas. Jei nenurodytas neimodel.ref
, nei kitas laukas, tada jungimas daromas per_id
, tačiau netikrinama ar toks_id
egzistuoja jungiamame modelyje.
- backref
Atgalinis ryšys su modeliu.
Šis tipas naudojamas norint pažymėti, kad tam tikras kitas modelis turi
ref
tipo lauką, kuris rodo į šį modelį. Šis laukas pats duomenų neturi, tai tik papildomas metaduomuo, padedantis geriau suprasti ryšius tarp modelių.Taip pat žiūrėkite Jungimas atgaliniu ryšiu.
- generic
Dinaminis ryšys su modeliu.
Šis tipas naudojamas tada, kai yra poreikis perteikti dinaminį ryšį, t. y. duomenys siejami ne tik pagal id, bet ir pagal modelio pavadinimą. Tokiu būdu, vieno modelio laukas gali būti siejamas su keliais modeliais.
Taip pat žiūrėkite Polimorfinis jungimas.
Šis duomenų tipas yra sudėtinis, susidedantis iš tokių duomenų:
- object_model
Pilnas modelio pavadinimas, su kuriuo yra siejamas objektas.
- object_id
object_model
modelio objekto id.
Sudėtiniai tipai
- object
Kompozicinis tipas.
Šis tipas naudojamas apibrėžti sudėtiniams duomenims, kurie aprašyti naudojant kelis skirtingus tipas. Kompozicinio tipo atveju property stulpelyje komponuojami pavadinimai atskiriami taško simboliu.
Sudarant duomenų modelį, rekomenduojama laikytis plokščios struktūros ir komponavimą įgyvendinti siejant modelius per
ref
argeneric
tipus.
- array
Masyvas.
Šis tipas naudojamas apibrėžti duomenų masyvams. Jei masyvo elementai turi vienodus tipus, tada elemento tipas pateikiamas property pavadinimo gale prirašant [] sufiksą, kuris nurodo, kad aprašomas ne pats masyvas, o masyvo elementas.
Rekomenduojama vengti naudoti šį tipą, siekiant išlaikyti plokščią duomenų modelį. Vietoje
array
tipo rekomenduojama naudotibackref
.
Kiti tipai
- url
Unikali resurso vieta (URL) (angl. Uniform Resource Locator).
Šis tipas naudojamas pateikiant nuorodas į išorinius šaltinius.
- uri
Unikalus resurso identifikatorius (URI) (angl. Uniform Resource Identifier).
Šis tipas naudojamas tais atvejais, kai pateikiamas išorinio resurso identifikatorius, RDF duomenų modelyje tai yra subjeto identifikatorius.