Duomenų tipai#
- type.absent#
Nebepalaikoma nuo 0.2 versijos: Šis tipas buvo naudojamas migracijoms ir versijavimui, tačiau nuo 0.2 versijos, versijavimo struktūros aprašuose atsisakyta.
Žymi savybę, kuri buvo ištrinta ir nebenaudojama.
Taip pat žiūrėkite
- type.boolean#
Loginė reikšmė, pateikiama skaitine forma:
0
Neigiama reikšmė (false).
1
Teigiama reikšmė (true).
- type.integer#
Sveikas skaičius.
property.ref
stulpelyje, nurodomi Matavimo vienetai.
- type.number#
Realusis skaičius, apvalinamas naudojant slankiojo kablelio aritmetiką.
property.ref
stulpelyje, nurodomi Matavimo vienetai.Sveikoji dalis atskiriama
.
simbolių.
- type.binary#
Dvejetainiai duomenys. Bendras baitų skaičius turi būti ne didesnis nei 1G.
Jei reikšmė yra didesnė nei 1G reikųtu naudoti
type.file
.
- type.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.
Jei
property
pavadinimas turi kalbos žymę@
, tadastring
tipas tampatext
tipo dalimi. Kablos kodas nurodomas naudojant ISO 639-1 kodų sąrašą.Jei tekstas turi kalbos žyme,
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
string
description@lt
string
html
description@en
string
html
Šiame pavyzdyje
@lt
nurodo, kad šalies pavadinimai ir aprašymai pateikti Lietuvių kalba, tačiau laukasdescription
papildomai turi vertimą į anglų kalbą. Papildomai, šalies aprašymo teksto formatas yra HTML tipo.
- type.text#
Natūraliaja žmonių kalba užrašytas tekstas, susidedantis iš vieno ar kelių
string
tipo duomenų laukų, pateikiant atskirą duomenų lauką, kiekvienai kalbai.Dažniausiai tiesiogiai
text
tipas nenaudojamas, kadangi jeistring
tipas turi kalbos žymę, tai duomenų laukas yra interpretuojamas kaiptext
tipo.Pavyzdžiui jei
property
pavadinimas yratitle@lt
, tadatitle
duomenų laukas yratext
tipo.Atskirai
text
tipo duomenų laukas gali būti nurodomas tais atvejais, kai reikia pateikti aprašymą ir URI pačiamtext
tipo laukui, o ne vienam iš vertimų.Pavyzdys
dataset
model
property
type
ref
uri
title
example
prefix
rdfs
http://www.w3.org/ 2000/01/rdf-schema#
Country
name@lt
name
text
rdfs:label
Pavadinimas
name@lt
string
- type.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
- type.date#
Tas pats kas
datetime
tik dienos tikslumu. Šio tipo reikšmės taip pat turi atitikti ISO 8601:YYYY-MM-DD
property.ref
stulpeyje nurodomas datos tikslumas:Reikšmė
Prasmė
Y
Metai
M
Mėnesiai
Q
Metų ketvirčiai
W
Savaitės
D
Dienos
Jei duomenys pateikti žemesniu nei dienos tikslumu, tada datos rekšmės turi būti nurodytos
YYYY-MM-DD
formatu, pakeičiantMM
ir arbaDD~ į `01
.Pavyzdys
Turint tokį struktūros aprašą:
model
property
type
ref
Country
id
id
integer
independence
date
Y
Nors
independence
duomenų lauko tiksluas yra metų, tačiau pateikiant duomenis būtina nurodyti mėnesį ir dieną taip pat:{ "id": 1, "independence": "1990-01-01", }
Šiuo atveju, kadangi datos tiksluas yra metai,
-01-01
dalis datoje neturi jokios reikšmės ir yra pateikiama tik tam, kad reikšmė atitiktu ISO 8601 reikalavimus.
- type.time#
Dienos laikas, be konkrečios datos. Šio tipo reikšmės, kaip ir kiti su laiku susiję 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
- type.temporal
Nebepalaikoma nuo 0.2 versijos.
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.
- type.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.
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.
Pavyzdys
pateikiant duomenis LKS 94 (SRID:3346) ir WGS84 (SRID:4326) koordinačių sistemose į ADP Saugyklą turi būti laikomasi eiliškumo: pirmiausia pateikiama X (į šiaurę/platumos/latitude), o po to Y (į rytus/ilgumos/longitute) reikšmės;
tačiau pateikiant duomenis WGS84/Pseudo-Merkator (SRID:3857) koordinačių sistemoje jau atvirkščiai – pirmiausia pateikiama rytų ilgumos, o po to šiaurės platumos reikšmės.
Pilną SRID kodų sąrašą galite rasti epsg.io svetainėje. Keletas dažniau naudojamų SRID kodų:
SRID
CRS
Pavyzdys
ašys
orientacija
WGS84
lat, lon
north, east
LKS94
north, east (x, y)
north, east
WGS84 / Pseudo-Merctor
lon, lat
east, north
ETRS89
lat, lon
north, east
Pastaba
Atkreipkite dėmesį, kad LKS94 koordinačių sistemoje geometrinės ašys neatitinka įprastinio ašių eiliškumo naudojamo GIS sistemose. LKS94 pirmas skaičius yra apytiksliai 6,000,000 metrų nuo pusiaujo į šiaurę, o antrasis skaičius apytiksliai 500,000 metrų į rytus, skaičiuojant nuo 24º rytų meridiano, atėmus 500km. Teikiant duomenis, taškai turėtu atrodyti taip:
6000000 500000
, pirmas ilgesnis, antras trumpesnis.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.
Išvyniojus cilindrą, gaunamos stačiakampės koordinatės su x šiaurinės abscisės pradžia pusiaujuje ir y rytinės ordinatės reikšme 24°C meridiane 500 000 metrų.
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}
)
Pavyzdinės
property.type
reikšmėsgeometry
- 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.
Pavyzdys (duomenys)
Vilniaus Katedros varpinės bokšto taškas, LKS94 (EPSG:3346) koordinačių sistemoje:
{ "koordinates": "POINT (6061789 582964)" }
- type.spatial
Nebepalaikoma nuo 0.2 versijos.
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.
- type.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
- type.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, kaip vardinius argumentus.Pavyzdys
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
- type.image#
Paveiksliukas.
image
tipas turi tokias pačias savybes kaipfile
tipas.
- type.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.Taip pat žiūrėkite
- type.backref#
Atgalinis ryšys su modeliu.
Jei ryšys tarp dviejų modlių yra daug su vienu, tada
property
pavadinimas nurodomas su[]
simboliu.Pavyzdys
Koncepcinis modelis
classDiagram direction LR class Country { + id: integer [1..1] + name@lt: string [1..1] } class City { + id: integer [1..1] + name@lt: string [1..1] } City --> "[1..1]" Country : country City "[1..*]" <-- Country : cities
Struktūros aprašas
model
property
type
ref
Country
id
id
integer
name@lt
string
cities[]
backref
City
City
id
id
integer
name@lt
string
country
ref
Country
Taip pat žiūrėkite
- type.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
Š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.
- type.object#
Sudėtinis tipas, apjungiantis kelias savybes į grupę, po vienu pavadinimu.
Š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.
- type.array#
Sudėtinis tipas, nurodo reikšmių masyvą.
Š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.
- type.url#
Unikali resurso vieta (URL) (angl. Uniform Resource Locator).
Šis tipas naudojamas pateikiant nuorodas į išorinius šaltinius.
- type.uri#
Universalus resurso identifikatorius (URI) (angl. Universal Resource Identifier).
Šis tipas naudojamas tais atvejais, kai pateikiamas išorinio resurso identifikatorius, RDF duomenų modelyje tai yra subjeto identifikatorius.