
XML::FOAF - Parse FOAF (Friend of a Friend) data

use XML::FOAF;
use URI;
my $foaf = XML::FOAF->new(URI->new('http://foo.com/my.foaf'));
print $foaf->person->mbox, "\n";

XML::FOAF provides an object-oriented interface to FOAF (Friend of a Friend) data.

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:
An object blessed into any URI subclass. For example:
my $uri = URI->new('http://foo.com/my.foaf');
my $foaf = XML::FOAF->new($uri);
This indicates a reference to a string containing the FOAF data. For example:
my $foaf_data = <<FOAF;
...
FOAF
my $foaf = XML::FOAF->new(\$foaf_data, 'http://foo.com');
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 simple scalar containing the name of a file containing the FOAF data. For example:
my $foaf = XML::FOAF->new('my.foaf', 'http://foo.com');
Returns a XML::FOAF::Person object representing the main identity in the FOAF file.
If the FOAF file indicates a PGP signature in wot:assurance, the URL for the detatched signature file will be returned, undef otherwise.
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.


XML::FOAF is free software; you may redistribute it and/or modify it under the same terms as Perl itself.

Except where otherwise noted, XML::FOAF is Copyright 2003 Benjamin Trott, cpan@stupidfool.org. All rights reserved.