NAME XML::FOAF - Parse FOAF (Friend of a Friend) data SYNOPSIS use XML::FOAF; use URI; my $foaf = XML::FOAF->new(URI->new('http://foo.com/my.foaf')); print $foaf->person->mbox, "\n"; DESCRIPTION *XML::FOAF* provides an object-oriented interface to FOAF (Friend of a Friend) data. USAGE XML::FOAF->new($data [, $base_uri ]) Reads in FOAF data from *$data* and parses it. Returns a *XML::FOAF* object on success, "undef" on error. If an error occurs, you can call XML::FOAF->errstr to get the text of the error. *$base_uri* is the base URI to be used in constructing absolute URLs from resources defined in your FOAF data, and is required unless *$data* is a URI object, in which case the *$base_uri* can be obtained from that URI. *$data* can be any of the following: * A URI object An object blessed into any *URI* subclass. For example: my $uri = URI->new('http://foo.com/my.foaf'); my $foaf = XML::FOAF->new($uri); The URI can be either for a FOAF file (for example, the above), or an HTML page containing a "" tag for FOAF auto-discovery: If the URI points to an HTML page with FOAF auto-discovery enabled, *XML::FOAF* will parse the HTML to find the FOAF file automatically. * A scalar reference This indicates a reference to a string containing the FOAF data. For example: my $foaf_data = <new(\$foaf_data, 'http://foo.com'); * A filehandle An open filehandle from which the FOAF data can be read. For example: open my $fh, 'my.foaf' or die $!; my $foaf = XML::FOAF->new($fh, 'http://foo.com'); * A file name A simple scalar containing the name of a file containing the FOAF data. For example: my $foaf = XML::FOAF->new('my.foaf', 'http://foo.com'); $foaf->person Returns a *XML::FOAF::Person* object representing the main identity in the FOAF file. $foaf->assurance If the FOAF file indicates a PGP signature in *wot:assurance*, the URL for the detatched signature file will be returned, "undef" otherwise. $foaf->verify Attempts to verify the FOAF file using the PGP signature returned from *assurance*. *verify* will fetch the public key associated with the signature from a keyserver. If no PGP signature is noted in the FOAF file, or if an error occurs, "undef" is returned. If the signature is invalid, 0 is returned. If the signature is valid, the PGP identity (name and email address, generally) of the signer is returned. Requires *Crypt::OpenPGP* to be installed. REFERENCES http://xmlns.com/foaf/0.1/ http://rdfweb.org/foaf/ LICENSE *XML::FOAF* is free software; you may redistribute it and/or modify it under the same terms as Perl itself. AUTHOR & COPYRIGHT Except where otherwise noted, *XML::FOAF* is Copyright 2003 Benjamin Trott, cpan@stupidfool.org. All rights reserved.