use strict;
use XML::Parser;

my $xp = new XML::Parser(Style => 'Stream');
my %sawThis;

$xp->parsefile($ARGV[0]);

sub StartDocument
{
    print "\@prefix rddl: <http://www.rddl.org/> .\n";
}

sub StartTag
{
    my ($parser, $type) = (@_);
    my $n = $_{'rddl:nature'};
    my $p = $_{'rddl:purpose'};
    return unless ($n || $p);
    my $r = $_{href};
    &consider("<> rddl:related <$r> ;");


    if ($n)
    {
	&consider("<$r> rddl:nature <$n> ;");
    }
	    
    if ($p)
    { 
	&consider("<$r> rddl:purpose <$p> ;");
    }
}

sub EndTag {};
sub Text {}

sub consider
{
    my $n3 = shift;
    return if $sawThis{$n3};

    print "$n3", "\n";
    $sawThis{$n3}++;
}
