Module-Install-DOAP
view release on metacpan or search on metacpan
lib/Module/Install/Admin/DOAP.pm view on Meta::CPAN
package Module::Install::Admin::DOAP;
use 5.008;
use base qw(Module::Install::Base);
use strict;
use Module::Install::Admin::RDF 0.003;
use RDF::Trine;
our $VERSION = '0.006';
use RDF::Trine::Namespace qw[RDF RDFS OWL XSD];
my $CPAN = RDF::Trine::Namespace->new('http://purl.org/NET/cpan-uri/terms#');
my $DC = RDF::Trine::Namespace->new('http://purl.org/dc/terms/');
my $DOAP = RDF::Trine::Namespace->new('http://usefulinc.com/ns/doap#');
my $DEPS = RDF::Trine::Namespace->new('http://ontologi.es/doap-deps#');
my $FOAF = RDF::Trine::Namespace->new('http://xmlns.com/foaf/0.1/');
my $NFO = RDF::Trine::Namespace->new('http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#');
my $SKOS = RDF::Trine::Namespace->new('http://www.w3.org/2004/02/skos/core#');
sub doap_metadata
{
my ($self, $uri) = @_;
unless (defined $uri)
{
$uri = Module::Install::Admin::RDF::rdf_project_uri($self);
}
unless (ref $uri)
{
$uri = RDF::Trine::Node::Resource->new($uri);
}
my $metadata = sub {
$self->_top->call(@_);
};
my $model = Module::Install::Admin::RDF::rdf_metadata($self);
my $name;
NAME: foreach ($model->objects_for_predicate_list($uri, $DOAP->name, $FOAF->name, $RDFS->label))
{
next NAME unless $_->is_literal;
$name = $_->literal_value;
$metadata->(name => $_->literal_value);
last NAME;
}
my $mname;
MNAME: foreach ($model->objects_for_predicate_list($uri, $CPAN->module_name))
{
next MNAME unless $_->is_literal;
$mname = $_->literal_value;
$metadata->(module_name => $_->literal_value);
last MNAME;
}
if (defined $name and !defined $mname)
{
$mname = $name;
$mname =~ s/-/::/g;
$metadata->(module_name => $mname);
}
DESC: foreach ($model->objects_for_predicate_list($uri, $DOAP->shortdesc, $DC->abstract))
{
next DESC unless $_->is_literal;
$metadata->(abstract => $_->literal_value);
last DESC;
}
LICENSE: foreach ($model->objects_for_predicate_list($uri, $DOAP->license, $DC->license))
{
next LICENSE unless $_->is_resource;
my $license_code = {
'http://www.gnu.org/licenses/agpl-3.0.txt' => 'open_source',
'http://www.apache.org/licenses/LICENSE-1.1' => 'apache_1_1',
'http://www.apache.org/licenses/LICENSE-2.0' => 'apache',
( run in 1.212 second using v1.01-cache-2.11-cpan-98e64b0badf )