Išoriniai žodynai#
Išorinių žodynų pagalba, galima susieti aprašomus duomenis su išoriniais
žodynais. Susiejimas atliekamas model.uri
ir property.uri
,
naudojant išorinių žodynų URI prefiksus.
Pavyzdžiui turint tokį duomenų šaltinį:
country |
|
---|---|
id |
name |
1 |
Lietuva |
city |
||
---|---|---|
id |
name |
country |
1 |
Vilnius |
1 |
Ir šį šaltinį atitinkančią DSA lentelę:
id |
d |
r |
b |
m |
property |
type |
ref |
uri |
---|---|---|---|---|---|---|---|---|
prefix |
locn |
http://www.w3.org/ns/locn# |
||||||
dbpedia-owl |
http://dbpedia.org/ontology/ |
|||||||
datasets/example/geo |
||||||||
salys |
sql |
|||||||
Country |
id |
locn:Location |
||||||
id |
integer |
dct:identifier |
||||||
name@lt |
text |
locn:geographicName |
||||||
capital |
ref |
City |
dbpedia-owl:capital |
|||||
City |
id |
locn:Location |
||||||
id |
integer |
dct:identifier |
||||||
name@lt |
text |
locn:geographicName |
||||||
country |
ref |
Country |
dbpedia-owl:country |
Jei property
pavadinimai turi @
žymes, tada generuojant RDF, prie
reikšmės pridedama atitinkama kalbos žymė.
Galima duomenis eksportuoti RDF Turtle formatu, kas atrodytų taip:
@base <https://get.data.gov.lt/> .
@prefix dct: <http://purl.org/dc/terms/> .
@prefix locn: <http://www.w3.org/ns/locn#> .
@prefix dbpedia-owl: <http://dbpedia.org/ontology/> .
<datasets/example/geo/Country/eb09946c-26e1-4698-a298-7bb1e468b165>
a locn:Location ;
dct:identifier 1 ;
locn:geographicName "Lietuva"@lt ;
dbpedia-owl:capital <datasets/example/geo/City/b54c21f6-08b8-4bdd-b785-be1cb2e93a98> .
<datasets/example/geo/City/b54c21f6-08b8-4bdd-b785-be1cb2e93a98>
a locn:Location ;
dct:identifier 1 ;
locn:geographicName "Vilnius"@lt ;
dbpedia-owl:country <datasets/example/geo/Country/eb09946c-26e1-4698-a298-7bb1e468b165> .
Analogiškai, tie patys duomenys gali būti eksportuojami RDF/XML formatu:
<?xml version="1.0" encoding="utf-8"?>
<rdf:RDF
xml:base="https://get.data.gov.lt/"
xmlns:dct="http://purl.org/dc/terms/"
xmlns:locn="http://www.w3.org/ns/locn#"
xmlns:dbpedia-owl="http://dbpedia.org/ontology/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<locn:Location
rdf:about="datasets/example/geo/Country/eb09946c-26e1-4698-a298-7bb1e468b165"
dct:identifier="1">
<locn:geographicName xml:lang="lt">Lietuva</locn:geographicName>
<dbpedia-owl:capital
rdf:resource="datasets/example/geo/City/b54c21f6-08b8-4bdd-b785-be1cb2e93a98" />
</locn:Location>
<locn:Location
rdf:about="datasets/example/geo/City/b54c21f6-08b8-4bdd-b785-be1cb2e93a98"
dct:identifier="1">
<locn:geographicName xml:lang="lt">Vilnius</locn:geographicName>
<dbpedia-owl:country
rdf:resource="datasets/example/geo/Country/eb09946c-26e1-4698-a298-7bb1e468b165" />
</locn:Location>
</rdf:RDF>
Išoriniai žodynai suteikia galimybę eksportuoti duomenis RDF formatu.
Jei struktūros apraše nėra užpildytas uri
stulpelis, tada, turėtu būti
generuojamas tokie RDF duomenys:
@base <https://get.data.gov.lt/> .
@prefix dct: <http://purl.org/dc/terms/> .
@prefix locn: <http://www.w3.org/ns/locn#> .
@prefix dbpedia-owl: <http://dbpedia.org/ontology/> .
<datasets/example/geo/Country/eb09946c-26e1-4698-a298-7bb1e468b165>
a <datasets/example/geo/Country> ;
<datasets/example/geo/Country/id> 1 ;
<datasets/example/geo/Country/name> "Lietuva"@lt ;
<datasets/example/geo/Country/capital> <datasets/example/geo/City/b54c21f6-08b8-4bdd-b785-be1cb2e93a98> .
<datasets/example/geo/City/b54c21f6-08b8-4bdd-b785-be1cb2e93a98>
a <datasets/example/geo/City> ;
<datasets/example/geo/City/id> 1 ;
<datasets/example/geo/City/name> "Vilnius"@lt ;
<datasets/example/geo/City/country> <datasets/example/geo/Country/eb09946c-26e1-4698-a298-7bb1e468b165> .
Subjekto URI#
Pagal nutylėjimą subjekto URI yra automatiškai generuojamas ir atrodo taip:
https://get.data.gov.lt/datasets/example/geo/Country/eb09946c-26e1-4698-a298-7bb1e468b165
Tačiau naudojant kontroliuojamus žodynus, galima nurodyti kitą identifikatorių tokiu būdu:
m |
property |
type |
ref |
uri |
---|---|---|---|---|
Country |
id |
locn:Location |
||
id |
integer |
|||
uri |
uri |
locn:Location |
||
name@lt |
text |
Jei property.uri
sutampa su model.uri
ir property.type
yra uri
, tada formuojant duomenis RDF formatu naudojame ne generuotą
subjekto URI, o naudojame lauko reikšmę, kurio property.uri
sutampa su
model.uri
.
Gali būti ne daugiau kaip vienas property.uri
su property.type
uri
, kuris sutampa su model.uri
.
Jei yra keli uri
tipo laukai, kurie identifikuoja tą patį subjektą,
tada kitiems atvejams reikia naudoti ne model.uri
, o owl:sameAs.
Jei uri
reikšmė bus https://sws.geonames.org/597427/
, tada gautume tokius
RDF duomenis:
@base <https://get.data.gov.lt/example/> .
@prefix locn: <http://www.w3.org/ns/locn#> .
<https://sws.geonames.org/597427/>
a locn:Location ;
<Country/id> 1 ;
<Country/name> "Lietuva"@lt .
Atkreipkite dėmesį, kad pats uri
laukas nėra įtrautkas į RDF duomenis.
Analogiškai, jei ref
tipo laukas rodo į modelį, kurio model.uri
sutampa su property.uri
kuris yra ref
tipo, tada ref
lauko reikšmė taip pat įgyja ne generuotą URI, o URI iš duomenų.
Pratęsiant tą patį pavyzdį:
m |
property |
type |
ref |
uri |
---|---|---|---|---|
Country |
id |
locn:Location |
||
id |
integer |
|||
uri |
uri |
locn:Location |
||
name@lt |
text |
|||
City |
id |
locn:Location |
||
id |
integer |
|||
name@lt |
text |
|||
country |
ref |
Country |
locn:Location |
Gautume tokius duomenis:
@base <https://get.data.gov.lt/example/> .
@prefix locn: <http://www.w3.org/ns/locn#> .
<https://sws.geonames.org/597427/>
a locn:Location ;
<Country/id> 1 ;
<Country/name> "Lietuva"@lt .
<City/b54c21f6-08b8-4bdd-b785-be1cb2e93a98>
a locn:Location ;
<City/id> 1 ;
<City/name> "Vilnius"@lt ;
<City/country> <https://sws.geonames.org/597427/> .