NAME

SADI::Simple::ServiceDescription - A module that describes a SADI web service.

SYNOPSIS

use SADI::Simple::ServiceDescription;

# create a new blank SADI service instance object
my $data = SADI::Simple::ServiceDescription->new ();

# create a new primed SADI service instance object
$data = SADI::Simple::ServiceDescription->new (
    ServiceName => "helloworld",
    ServiceType => "http://someontology.org/services/sometype",
    InputClass => "http://someontology.org/datatypes#Input1",
    OutputClass => "http://someontology.org/datatypes#Output1",
    Description => "the usual hello world service",
    NanoPublisher ="true",
    UniqueIdentifier => "urn:lsid:myservices:helloworld",
    Authority => "helloworld.com",
    Authoritative => 1,
    Provider => 'myaddress@organization.org',
    ServiceURI => "http://helloworld.com/cgi-bin/helloworld.pl",
    URL => "http://helloworld.com/cgi-bin/helloworld.pl",
    SignatureURL =>"http://foo.bar/myServiceDescription",
);

# get an RDF representation of the service description
my $rdf = $data->getServiceInterface;

# get the service name
my $name = $data->ServiceName;
# set the service name
$data->ServiceName($name);

# get the service type
my $type = $data->ServiceType;
# set the service type
$data->ServiceType($type);

# get the input class URI
my $input_class = $data->InputClass;
# set the input class URI
$data->InputClass($input_class);

# get the output class URI
my $output_class = $data->OutputClass;
# set the output class URI
$data->OutputClass($input_class);

# get the description
my $desc = $data->Description;
# set the description
$data->Description($desc);

# get the NanoPublishing Status
my $desc = $data->NanoPublisher;
# set the nanopublishing status
$data->NanoPublisher($desc);

# get the unique id
my $id = $data->UniqueIdentifier;
# set the unique id
$data->UniqueIdentifier($id);

# get the authority
my $auth = $data->Authority;
# set the authority
$data->Authority($auth);

# get the service provider URI
my $uri = $data->Provider;
# set the service provider URI
$data->Provider($uri);

# get the service URI
my $uri = $data->ServiceURI;
# set the service URI
$data->ServiceURI($uri);

# get the service URL
my $url = $data->URL;
# set the service URL
$data->URL($url);

# get the signature url
my $sig = $data->SignatureURL;
# set the signature url
$data->SignatureURL($sig);
=head1 DESCRIPTION

An object representing a SADI service signature.

AUTHORS

Ben Vandevalk (ben [dot] vvalk [at] gmail [dot] com)
Edward Kawas (edward [dot] kawas [at] gmail [dot] com)

ACCESSIBLE ATTRIBUTES

Details are in SADI::Base. Here just a list of them (additionally to the attributes from the parent classes)

ServiceName

A name for the service.

ServiceType

Our SADI service type.

InputClass

The URI to the input class for our SADI service.

OutputClass

The URI to the output class for our SADI service.

Description

A description for our SADI service.

NanoPublisher

(boolean) Can the service output n-quads compatible with the NanoPublications specifications?

UniqueIdentifier

A unique identifier (like an LSID, etc) for our SADI service.

Authority

The service provider URI for our SADI service.

ServiceURI

The service URI for our SADI service.

URL

The URL to our SADI service.

Provider

The email address of the service provider. Note: This method throws an exception if the address is syntactically invalid!.

Authoritative

Whether or not the provider of the SADI service is an authority over the data. This value must be a boolean value. True values match =~ /true|\+|1|yes|ano/. All other values are false.

Defaults to 1;

Format

The format of the service. More than likely, it will be 'sadi' if it is a SADI web service.

SignatureURL

A url to the SADI service signature.