load example data (cities) into triples

This commit is contained in:
Helmut Merz 2020-02-19 16:02:16 +01:00
parent 9350627e9c
commit 5df7eceb27
4 changed files with 69 additions and 13 deletions

View file

@ -0,0 +1,38 @@
-- create functions for loading cities data as triples
create or replace function load_cities() returns int as $$
declare
count int := 0;
event bigint := new_event();
city record;
rkey text;
begin
for city in
select name, regiokey, ckey, inhabitants from cities
where rectype = '60'
--limit 1
loop
rkey := load_city(city.name, city.regiokey, city.ckey, city.inhabitants, event);
count := count + 1;
end loop;
return count;
end;
$$ language plpgsql;
create or replace function load_city(
name text, regiokey text, ckey text, inhabitants int,
event bigint) returns text as $$
declare
key text := 'xcd:' || regiokey;
begin
insert into vtriples (stname, stext, ptext, otname, otext, creation) values
('node', key, 'rdf:type', 'node', 'xc:City', event),
('node', key, 'rdfs:label', 'text', name, event),
('node', key, 'xc:regiokey', 'text', regiokey, event),
('node', key, 'xc:ckey', 'text', ckey, event),
('node', key, 'xc:population', 'int', text(inhabitants), event);
return regiokey;
end;
$$ language plpgsql;

View file

@ -0,0 +1,18 @@
-- load metadata triples for cities example project
select load_namespace('http://cyberconcepts.org/cco-example/cities#', 'xc');
select load_namespace('http://cyberconcepts.org/cco-example/cities_data#', 'xcd');
select new_event() as event
\gset
insert into vtriples (stname, stext, ptext, otname, otext, creation) values
('node', 'xc:City', 'rdf:type', 'node', 'rdfs:Class', :event),
('node', 'xc:District', 'rdf:type', 'node', 'rdfs:Class', :event),
('node', 'xc:FedCountry', 'rdf:type', 'node', 'rdfs:Class', :event),
('node', 'xc:regiokey', 'rdf:type', 'node', 'rdf:Property', :event),
('node', 'xc:ckey', 'rdf:type', 'node', 'rdf:Property', :event),
('node', 'xc:population', 'rdf:type', 'node', 'rdf:Property', :event);
-- property name -> rdfs:label

View file

@ -1,11 +1,6 @@
-- load base data -- load base data
select new_event() as event
\gset
-- load data
select load_namespace('http://cyberconcepts.org/cco-blank#', '_'); select load_namespace('http://cyberconcepts.org/cco-blank#', '_');
select load_namespace('http://cyberconcepts.org/cco-common#', 'cco'); select load_namespace('http://cyberconcepts.org/cco-common#', 'cco');
select load_namespace('http://www.w3.org/1999/02/22-rdf-syntax-ns#', 'rdf'); select load_namespace('http://www.w3.org/1999/02/22-rdf-syntax-ns#', 'rdf');
@ -21,8 +16,13 @@ select load_datatype('int');
select load_datatype('decimal'); select load_datatype('decimal');
select load_datatype('timestamp'); select load_datatype('timestamp');
select new_event() as event
\gset
insert into vtriples (stname, stext, ptext, otname, otext, creation) values insert into vtriples (stname, stext, ptext, otname, otext, creation) values
('node', 'rdf:type', 'rdf:type', 'node', 'rdf:Property', :event), ('node', 'rdf:type', 'rdf:type', 'node', 'rdf:Property', :event),
('node', 'rdf:Property', 'rdf:type', 'node', 'rdfs:Class', :event), ('node', 'rdf:Property', 'rdf:type', 'node', 'rdfs:Class', :event),
('node', 'rdfs:Class', 'rdf:type', 'node', 'rdfs:Class', :event), ('node', 'rdfs:Class', 'rdf:type', 'node', 'rdfs:Class', :event),
('node', 'rdfs:label', 'rdf:type', 'node', 'rdf:Property', :event); ('node', 'rdfs:label', 'rdf:type', 'node', 'rdf:Property', :event),
('node', 'rdfs:domain', 'rdf:type', 'node', 'rdf:Property', :event),
('node', 'rdfs:range', 'rdf:type', 'node', 'rdf:Property', :event);