RDF-Service
view release on metacpan or search on metacpan
bin/serv1.pl view on Meta::CPAN
warn "New session $session_key\n" if $DEBUG;
$session_key =~ s/[^\w\-\.]//g;
$session_key = $q->param('s') if $q->param('s');
my $session_res = new RDF::Service( NS_LD."/service/$session_key" );
$session_res->connect("RDF::Service::Interface::DBI::V01",
{
connect => "dbi:Pg:dbname=wraf_v01a",
name => "wwwdata",
});
$session_res->init_rev_subjs;
unless( $session_res->exist_pred( NS_LS.'#updated' ) )
{
$session_res->set_props(
{ NS_LS.'#updated' => [time_string()] }, 1 );
}
return $session{$session_key} = $session_res;
}
}
######## Action functions #########################
sub do_person_add
{
# my $model = $s->get_model(NS_LD.'#M1');
my $model = $s;
my $person = $model->get();
my $r_fn = $q->param('r_fn') or die "No first name specified";
my $r_ln = $q->param('r_ln') or die "No last name specified";
# my $l_fn = $model->create_literal(NS_LD.'#Person_1-fn', \$r_fn);
# my $l_ln = $model->create_literal(NS_LD.'#Person_1-ln', \$r_ln);
my $l_fn = $model->create_literal(undef, \$r_fn);
my $l_ln = $model->create_literal(undef, \$r_ln);
my $types = [$model->get(NS_LD.'/Class#Person')];
my $props =
{
NS_LD.'/Property#first_name' => [$l_fn],
NS_LD.'/Property#last_name' => [$l_ln],
};
$person->set( $types, $props );
return "Person created";
}
sub do_person_delete
{
my $r_person = $q->param('r_person') or die "No node specified";
# my $model = $s->get_model(NS_LD.'#M1');
my $model = $s;
my $person = $model->get($r_person);
if( $person->delete_node_cascade() )
{
return "Deleted person";
}
else
{
return "Person NOT deleted";
}
}
sub do_initiate_db
{
my $model = $s->get_model(NS_LD.'#M1');
$model->get(NS_LD.'/Class#Person')->set( [NS_RDFS.'Class'] );
$model->get(NS_LD.'/Property#first_name')->set( [NS_RDF.'Property'] );
$model->get(NS_LD.'/Property#last_name')->set( [NS_RDF.'Property'] );
return "DB initiated";
}
sub do_person_edit
{
my $r_person = $q->param('r_person') or die "No node specified";
# my $model = $s->get_model(NS_LD.'#M1');
my $model = $s;
my $person = $model->get($r_person);
my $r_fn = $q->param('r_fn') or die "No first name specified";
my $r_ln = $q->param('r_ln') or die "No last name specified";
$person->arc_obj(NS_LD.'/Property#first_name')->li->set_literal(\$r_fn);
$person->arc_obj(NS_LD.'/Property#last_name')->li->set_literal(\$r_ln);
return "Person edited";
}
sub do_person_login
{
my $r_person = $q->param('r_person') or die "No node specified";
my $model = $s;
my $person = $model->get($r_person);
$s->set_props({NS_LS.'#agent' => [$person]});
return "Logging in";
}
sub dlines
{
open FILE, "/tmp/RDF-Service-0_04.log" or die $!;
use Fcntl;
our $llines = 0;
our $loffset = 0;
unless( seek FILE, $loffset, SEEK_SET )
{
$llines = 0;
$loffset = 0;
}
( run in 0.643 second using v1.01-cache-2.11-cpan-df04353d9ac )