load example data (cities) into triples
This commit is contained in:
parent
9350627e9c
commit
5df7eceb27
4 changed files with 69 additions and 13 deletions
38
examples/cities/pgsql/fload.sql
Normal file
38
examples/cities/pgsql/fload.sql
Normal 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;
|
||||||
18
examples/cities/pgsql/lmeta.sql
Normal file
18
examples/cities/pgsql/lmeta.sql
Normal 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
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -2,13 +2,13 @@
|
||||||
-- create triggers for triples table
|
-- create triggers for triples table
|
||||||
|
|
||||||
create or replace function insert_triple() returns trigger as $$
|
create or replace function insert_triple() returns trigger as $$
|
||||||
declare
|
declare
|
||||||
trid bigint;
|
trid bigint;
|
||||||
begin
|
begin
|
||||||
trid := load_triple(new.stname, new.stext, new.ptext,
|
trid := load_triple(new.stname, new.stext, new.ptext,
|
||||||
new.otname, new.otext, new.creation);
|
new.otname, new.otext, new.creation);
|
||||||
return new;
|
return new;
|
||||||
end;
|
end;
|
||||||
$$ language plpgsql;
|
$$ language plpgsql;
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue