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 )