NAME

Bio::Phylo::NeXML::Meta - Single predicate/object annotation, attached to an xml-writable subject

SYNOPSIS

use Bio::Phylo::Factory;
use Bio::Phylo::Util::CONSTANT ':namespaces';
my $fac = Bio::Phylo::Factory->new;
my $url = 'http://purl.org/phylo/treebase/phylows/study/TB2:S1787';
my $proj = $fac->create_project->add_meta(
    $fac->create_meta(
        '-namespaces' => { 'cdao' => _NS_CDAO_ },
        '-triple'     => { 
            'cdao:hasMeta' => $fac->create_meta(
                '-namespaces' => { 'cdao' => _NS_CDAO_ },
                '-triple'     => { 'cdao:has_External_Reference' => $url }
            )
        }
    )
);

DESCRIPTION

To comply with the NeXML standard (http://www.nexml.org), Bio::Phylo implements metadata annotations which consist conceptually of RDF triples where the subject is a container object that subclasses Bio::Phylo::NeXML::Writable, and the predicate and object are defined in this class.

The objects of the triples provided by this class can be of any simple type (string, number) or one of XML::DOM, XML::GDOME, XML::LibXML, XML::Twig, XML::DOM2, XML::DOMBacked, XML::Handler, XML::Element, XML::API, XML::Code or XML::XMLWriter or RDF::Core::Model.

When serialized, the Bio::Phylo::NeXML::Meta object in NeXML is typically written out as an element called 'meta', with RDFa compliant attributes.

METHODS

CONSTRUCTOR

new()
Type    : Constructor
Title   : new
Usage   : my $anno = Bio::Phylo::NeXML::Meta->new;
Function: Initializes a Bio::Phylo::NeXML::Meta object.
Returns : A Bio::Phylo::NeXML::Meta object.
Args    : optional constructor arguments are key/value
		   pairs where the key corresponds with any of
		   the methods that starts with set_ (i.e. mutators) 
		   and the value is the permitted argument for such 
		   a method. The method name is changed such that,
		   in order to access the set_value($val) method
		   in the constructor, you would pass -value => $val

MUTATORS

set_triple()

Populates the triple, assuming that the invocant is attached to a subject.

Type    : Mutator
Title   : set_triple
Usage   : $meta->set_triple( $predicate, $object );
Function: Populates the triple.
Returns : Modified object.
Args    : $predicate - a CURIE whose namespace prefix must 
                       have been bound previously using 
                       $meta->set_namespaces( $prefix, $uri );
          $object    - any of the valid object types: a number,
                       a string, a url, a nested annotation
                       or anything that can be adapted by
                       Bio::Phylo::NeXML::Meta::XMLLiteral 

ACCESSORS

get_object()

Returns triple object

Type    : Accessor
Title   : get_object
Usage   : my $val = $anno->get_object;
Function: Returns triple object
Returns : A triple object
Args    : NONE
get_predicate()

Returns triple predicate

Type    : Accessor
Title   : get_predicate
Usage   : my $val = $anno->get_predicate;
Function: Returns triple predicate
Returns : A triple predicate
Args    : NONE
get_predicate_namespace()

Returns predicate namespace

Type    : Accessor
Title   : get_predicate_namespace
Usage   : my $val = $anno->get_predicate_namespace;
Function: Returns predicate namespace
Returns : A namespace
Args    : NONE
get_predicate_local()

Returns predicate without prefix

Type    : Accessor
Title   : get_predicate_local
Usage   : my $val = $anno->get_predicate_local;
Function: Returns predicate without prefix
Returns : A predicate
Args    : NONE
get_object_type()

Returns data type of object

Type    : Accessor
Title   : get_object_type
Usage   : my $val = $anno->get_object_type;
Function: Returns data type of object
Returns : A local predicate, e.g. 'boolean'
Args    : NONE

TESTS

is_resource()

Returns whether the object is a resource (e.g. an href or a nested XMLLiteral)

Type    : Accessor
Title   : is_resource
Usage   : my $val = $anno->is_resource;
Function: Returns whether object is a resource
Returns : Boolean
Args    : NONE
is_xml_literal()

Returns whether the object is a nested XMLLiteral

Type    : Accessor
Title   : is_xml_literal
Usage   : my $val = $anno->is_xml_literal;
Function: Returns whether object is a nested XMLLiteral
Returns : Boolean
Args    : NONE

SERIALIZERS

to_dom()
Type    : Serializer
Title   : to_dom
Usage   : $obj->to_dom
Function: Generates a DOM subtree from the invocant and
          its contained objects
Returns : a DOM element object (default: XML::Twig flavor)
Args    : DOM factory object
Note    : This is the generic function. It is redefined in the 
          classes below.

SEE ALSO

There is a mailing list at https://groups.google.com/forum/#!forum/bio-phylo for any user or developer questions and discussions.

Bio::Phylo::Dictionary

Annotation objects are combined into a dictionary.

Bio::Phylo::NeXML::Writable

This object inherits from Bio::Phylo::NeXML::Writable, so methods defined there are also applicable here.

Bio::Phylo::Manual

Also see the manual: Bio::Phylo::Manual and http://rutgervos.blogspot.com.

CITATION

If you use Bio::Phylo in published research, please cite it:

Rutger A Vos, Jason Caravas, Klaas Hartmann, Mark A Jensen and Chase Miller, 2011. Bio::Phylo - phyloinformatic analysis using Perl. BMC Bioinformatics 12:63. http://dx.doi.org/10.1186/1471-2105-12-63