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/> .