Commits

Toby Inkster  committed a1dde6e

release XML-Atom-FromOWL 0.100

  • Participants
  • Parent commits d4fdba9

Comments (0)

Files changed (18)

File Changes

-############################################################################
-## Changes #################################################################
-############################################################################
-
-XML-Atom-FromOWL
-================
-
-Created:      2011-01-12
-Home page:    <http://search.cpan.org/dist/XML-Atom-FromOWL/>
-Bug tracker:  <http://rt.cpan.org/Dist/Display.html?Queue=XML-Atom-FromOWL>
-Maintainer:   Toby Inkster <mailto:tobyink@cpan.org>
-
-0.003 [2011-01-19]
- - (Addition) Export triples of the form { ?e ?p ?o . } where ?e is a feed
-   or entry and ?o is a literal, using Atom+RDFa
- - (Addition) Support for Atom Feed Paging and Archiving.
- - (Addition) Support for Atom Threading Extensions.
- - (Addition) Support for exporting links which do not use AtomOWL's
-   reified Link construct.
- - (Addition) Support for hNews.
-
-0.002 [2011-01-14]
- - Force <entry> and <feed> elements to contain an <id> even if none is
-   provided in the input data.
- - use Data::UUID
-
-0.001 [2011-01-13] # Initial release
-

File Changes.ttl

-#############################################################
-
-@prefix :        <http://usefulinc.com/ns/doap#> .
-@prefix dcs:     <http://ontologi.es/doap-changeset#> .
-@prefix dc:      <http://purl.org/dc/terms/> .
-@prefix foaf:    <http://xmlns.com/foaf/0.1/> .
-@prefix my:      <http://purl.org/NET/cpan-uri/dist/XML-Atom-FromOWL/> .
-@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
-@prefix toby:    <http://tobyinkster.co.uk/#> .
-@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
-
-#############################################################
-
-<>
-
-	dc:title         "Changes" ;
-	dc:description   "Revision history for Perl extension XML::Atom::FromOWL."@en ;
-	dc:subject       my:project ;
-	dc:creator       toby:i .
-
-#############################################################
-
-my:v_0-001
-
-	a               :Version ;
-	dc:issued       "2011-01-13"^^xsd:date ;
-	:revision       "0.001"^^xsd:string ;
-	:file-release   <http://backpan.cpan.org/authors/id/T/TO/TOBYINK/XML-Atom-FromOWL-0.001.tar.gz> ;
-	rdfs:label      "Initial release"@en .
-
-my:v_0-002
-
-	a               :Version ;
-	dc:issued       "2011-01-14"^^xsd:date ;
-	:revision       "0.002"^^xsd:string ;
-	:file-release   <http://backpan.cpan.org/authors/id/T/TO/TOBYINK/XML-Atom-FromOWL-0.002.tar.gz> ;
-	dcs:changeset [
-		dcs:versus my:v_0-001 ;
-		dcs:item   [ rdfs:label "use Data::UUID"@en ] ;
-		dcs:item   [ rdfs:label "Force <entry> and <feed> elements to contain an <id> even if none is provided in the input data."@en ]
-		] .
-
-my:v_0-003
-
-	a               :Version ;
-	dc:issued       "2011-01-19"^^xsd:date ;
-	:revision       "0.003"^^xsd:string ;
-	:file-release   <http://backpan.cpan.org/authors/id/T/TO/TOBYINK/XML-Atom-FromOWL-0.003.tar.gz> ;
-	dcs:changeset [
-		dcs:versus my:v_0-002 ;
-		dcs:item   [ rdfs:label "Support for Atom Feed Paging and Archiving."@en ; a dcs:Addition ; rdfs:seeAlso <http://tools.ietf.org/rfc/rfc5005.txt> ] ;
-		dcs:item   [ rdfs:label "Support for Atom Threading Extensions."@en ; a dcs:Addition ; rdfs:seeAlso <http://tools.ietf.org/rfc/rfc4685.txt> ] ;
-		dcs:item   [ rdfs:label "Support for hNews."@en ; a dcs:Addition ; rdfs:seeAlso <http://microformats.org/wiki/hnews> ] ;
-		dcs:item   [ rdfs:label "Support for exporting links which do not use AtomOWL's reified Link construct."@en ; a dcs:Addition ] ;
-		dcs:item   [ rdfs:label "Export triples of the form { ?e ?p ?o . } where ?e is a feed or entry and ?o is a literal, using Atom+RDFa"@en ; a dcs:Addition ]
-		] .
-
-#############################################################
-
-my:project
-
-	a               :Project ;
-	:name           "XML-Atom-FromOWL" ;
-	:shortdesc      "export RDF data to Atom"@en ;
-	:programming-language  "Perl" ;
-	:homepage       <https://metacpan.org/release/XML-Atom-FromOWL> ;
-	:download-page  <https://metacpan.org/release/XML-Atom-FromOWL> ;
-	:bug-database   <http://rt.cpan.org/Dist/Display.html?Queue=XML-Atom-FromOWL> ;
-	:repository     [ a :SVNRepository ; :browse <http://goddamn.co.uk/svn-web/perlmods/browse/XML-Atom-FromOWL/> ] ;
-	:maintainer     toby:i ;
-	:developer      toby:i ;
-	:documenter     toby:i ;
-	:tester         toby:i ;
-	:created        "2011-01-12"^^xsd:date ;
-	:license        <http://dev.perl.org/licenses/> ;
-	:release        my:v_0-001 , my:v_0-002 , my:v_0-003 .
-
-#############################################################
-
-toby:i
-
-	a               foaf:Person ;
-	foaf:name       "Toby Inkster" ;
-	foaf:homepage   <http://tobyinkster.co.uk/> ;
-	foaf:page       <https://metacpan.org/author/TOBYINK> ;
-	foaf:mbox       <mailto:tobyink@cpan.org> ;
-	<http://www.w3.org/2002/07/owl#sameAs> <http://purl.org/NET/cpan-uri/person/tobyink> .
-
-#############################################################

File Changes.xml

-<?xml version="1.0" encoding="utf-8"?>
-<rdf:RDF xmlns:dbug="http://ontologi.es/doap-bugs#" xmlns:dc="http://purl.org/dc/terms/" xmlns:dcs="http://ontologi.es/doap-changeset#" xmlns:doap="http://usefulinc.com/ns/doap#" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
-<rdf:Description rdf:nodeID="rC6E733E223CC11E0A224D092506B46D9r0">
-	<dcs:item rdf:nodeID="rC6E733E223CC11E0A224D092506B46D9r1"/>
-	<dcs:item rdf:nodeID="rC6E733E223CC11E0A224D092506B46D9r2"/>
-	<dcs:versus rdf:resource="http://purl.org/NET/cpan-uri/dist/XML-Atom-FromOWL/v_0-001"/>
-</rdf:Description>
-<rdf:Description rdf:nodeID="rC6E733E223CC11E0A224D092506B46D9r1">
-	<rdfs:label xml:lang="en">use Data::UUID</rdfs:label>
-</rdf:Description>
-<rdf:Description rdf:nodeID="rC6E733E223CC11E0A224D092506B46D9r2">
-	<rdfs:label xml:lang="en">Force &lt;entry> and &lt;feed> elements to contain an &lt;id> even if none is provided in the input data.</rdfs:label>
-</rdf:Description>
-<rdf:Description rdf:nodeID="rC6E733E223CC11E0A224D092506B46D9r3">
-	<dcs:item rdf:nodeID="rC6E733E223CC11E0A224D092506B46D9r4"/>
-	<dcs:item rdf:nodeID="rC6E733E223CC11E0A224D092506B46D9r5"/>
-	<dcs:item rdf:nodeID="rC6E733E223CC11E0A224D092506B46D9r6"/>
-	<dcs:item rdf:nodeID="rC6E733E223CC11E0A224D092506B46D9r7"/>
-	<dcs:item rdf:nodeID="rC6E733E223CC11E0A224D092506B46D9r8"/>
-	<dcs:versus rdf:resource="http://purl.org/NET/cpan-uri/dist/XML-Atom-FromOWL/v_0-002"/>
-</rdf:Description>
-<rdf:Description rdf:nodeID="rC6E733E223CC11E0A224D092506B46D9r4">
-	<rdf:type rdf:resource="http://ontologi.es/doap-changeset#Addition"/>
-	<rdfs:label xml:lang="en">Support for Atom Feed Paging and Archiving.</rdfs:label>
-	<rdfs:seeAlso rdf:resource="http://tools.ietf.org/rfc/rfc5005.txt"/>
-</rdf:Description>
-<rdf:Description rdf:nodeID="rC6E733E223CC11E0A224D092506B46D9r5">
-	<rdf:type rdf:resource="http://ontologi.es/doap-changeset#Addition"/>
-	<rdfs:label xml:lang="en">Support for Atom Threading Extensions.</rdfs:label>
-	<rdfs:seeAlso rdf:resource="http://tools.ietf.org/rfc/rfc4685.txt"/>
-</rdf:Description>
-<rdf:Description rdf:nodeID="rC6E733E223CC11E0A224D092506B46D9r6">
-	<rdf:type rdf:resource="http://ontologi.es/doap-changeset#Addition"/>
-	<rdfs:label xml:lang="en">Support for hNews.</rdfs:label>
-	<rdfs:seeAlso rdf:resource="http://microformats.org/wiki/hnews"/>
-</rdf:Description>
-<rdf:Description rdf:nodeID="rC6E733E223CC11E0A224D092506B46D9r7">
-	<rdf:type rdf:resource="http://ontologi.es/doap-changeset#Addition"/>
-	<rdfs:label xml:lang="en">Support for exporting links which do not use AtomOWL's reified Link construct.</rdfs:label>
-</rdf:Description>
-<rdf:Description rdf:nodeID="rC6E733E223CC11E0A224D092506B46D9r8">
-	<rdf:type rdf:resource="http://ontologi.es/doap-changeset#Addition"/>
-	<rdfs:label xml:lang="en">Export triples of the form { ?e ?p ?o . } where ?e is a feed or entry and ?o is a literal, using Atom+RDFa</rdfs:label>
-</rdf:Description>
-<rdf:Description rdf:nodeID="rC6E733E223CC11E0A224D092506B46D9r9">
-	<doap:browse rdf:resource="http://goddamn.co.uk/viewvc/perlmods/XML-Atom-FromOWL/"/>
-	<rdf:type rdf:resource="http://usefulinc.com/ns/doap#SVNRepository"/>
-</rdf:Description>
-<rdf:Description rdf:about="file:///home/tai/src/perlmods/XML-Atom-FromOWL/Changes.ttl">
-	<dc:creator rdf:resource="http://tobyinkster.co.uk/#i"/>
-	<dc:description xml:lang="en">Revision history for Perl extension XML::Atom::FromOWL.</dc:description>
-	<dc:subject rdf:resource="http://purl.org/NET/cpan-uri/dist/XML-Atom-FromOWL/project"/>
-	<dc:title>Changes</dc:title>
-</rdf:Description>
-<rdf:Description rdf:about="http://purl.org/NET/cpan-uri/dist/XML-Atom-FromOWL/project">
-	<doap:bug-database rdf:resource="http://rt.cpan.org/Dist/Display.html?Queue=XML-Atom-FromOWL"/>
-	<doap:created rdf:datatype="http://www.w3.org/2001/XMLSchema#date">2011-01-12</doap:created>
-	<doap:developer rdf:resource="http://tobyinkster.co.uk/#i"/>
-	<doap:documenter rdf:resource="http://tobyinkster.co.uk/#i"/>
-	<doap:download-page rdf:resource="http://search.cpan.org/dist/XML-Atom-FromOWL/"/>
-	<doap:homepage rdf:resource="http://search.cpan.org/dist/XML-Atom-FromOWL/"/>
-	<doap:license rdf:resource="http://dev.perl.org/licenses/"/>
-	<doap:maintainer rdf:resource="http://tobyinkster.co.uk/#i"/>
-	<doap:name>XML-Atom-FromOWL</doap:name>
-	<doap:programming-language>Perl</doap:programming-language>
-	<doap:release rdf:resource="http://purl.org/NET/cpan-uri/dist/XML-Atom-FromOWL/v_0-001"/>
-	<doap:release rdf:resource="http://purl.org/NET/cpan-uri/dist/XML-Atom-FromOWL/v_0-002"/>
-	<doap:release rdf:resource="http://purl.org/NET/cpan-uri/dist/XML-Atom-FromOWL/v_0-003"/>
-	<doap:repository rdf:nodeID="rC6E733E223CC11E0A224D092506B46D9r9"/>
-	<doap:shortdesc xml:lang="en">export RDF data to Atom</doap:shortdesc>
-	<doap:tester rdf:resource="http://tobyinkster.co.uk/#i"/>
-	<rdf:type rdf:resource="http://usefulinc.com/ns/doap#Project"/>
-</rdf:Description>
-<rdf:Description rdf:about="http://purl.org/NET/cpan-uri/dist/XML-Atom-FromOWL/v_0-001">
-	<dc:issued rdf:datatype="http://www.w3.org/2001/XMLSchema#date">2011-01-13</dc:issued>
-	<doap:file-release rdf:resource="http://backpan.cpan.org/authors/id/T/TO/TOBYINK/XML-Atom-FromOWL-0.001.tar.gz"/>
-	<doap:revision rdf:datatype="http://www.w3.org/2001/XMLSchema#string">0.001</doap:revision>
-	<rdf:type rdf:resource="http://usefulinc.com/ns/doap#Version"/>
-	<rdfs:label xml:lang="en">Initial release</rdfs:label>
-</rdf:Description>
-<rdf:Description rdf:about="http://purl.org/NET/cpan-uri/dist/XML-Atom-FromOWL/v_0-002">
-	<dcs:changeset rdf:nodeID="rC6E733E223CC11E0A224D092506B46D9r0"/>
-	<dc:issued rdf:datatype="http://www.w3.org/2001/XMLSchema#date">2011-01-14</dc:issued>
-	<doap:file-release rdf:resource="http://backpan.cpan.org/authors/id/T/TO/TOBYINK/XML-Atom-FromOWL-0.002.tar.gz"/>
-	<doap:revision rdf:datatype="http://www.w3.org/2001/XMLSchema#string">0.002</doap:revision>
-	<rdf:type rdf:resource="http://usefulinc.com/ns/doap#Version"/>
-</rdf:Description>
-<rdf:Description rdf:about="http://purl.org/NET/cpan-uri/dist/XML-Atom-FromOWL/v_0-003">
-	<dcs:changeset rdf:nodeID="rC6E733E223CC11E0A224D092506B46D9r3"/>
-	<dc:issued rdf:datatype="http://www.w3.org/2001/XMLSchema#date">2011-01-19</dc:issued>
-	<doap:file-release rdf:resource="http://backpan.cpan.org/authors/id/T/TO/TOBYINK/XML-Atom-FromOWL-0.003.tar.gz"/>
-	<doap:revision rdf:datatype="http://www.w3.org/2001/XMLSchema#string">0.003</doap:revision>
-	<rdf:type rdf:resource="http://usefulinc.com/ns/doap#Version"/>
-</rdf:Description>
-<rdf:Description xmlns:ns1="http://www.w3.org/2002/07/owl#" rdf:about="http://tobyinkster.co.uk/#i">
-	<rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
-	<ns1:sameAs rdf:resource="http://purl.org/NET/cpan-uri/person/tobyink"/>
-	<foaf:homepage rdf:resource="http://tobyinkster.co.uk/"/>
-	<foaf:mbox rdf:resource="mailto:tobyink@cpan.org"/>
-	<foaf:name>Toby Inkster</foaf:name>
-	<foaf:page rdf:resource="http://search.cpan.org/~tobyink/"/>
-</rdf:Description>
-</rdf:RDF>

File MANIFEST.SKIP

-^MANIFEST.bak$
-^Makefile.old$
-^Makefile$
-^blib/
-^pm_to_blib
-^blibdirs
-\.svn
-^example.*\.pl$
-^[^/]+\.(tar\.gz|tar\.bz2|tgz|tbz2|tbz|zip|tar)$
-^MYMETA.yml

File META.yml

----
-abstract: 'export RDF data to Atom'
-author:
-  - 'Toby Inkster <tobyink@cpan.org>'
-build_requires:
-  ExtUtils::MakeMaker: 6.42
-  Module::Signature: 0.66
-  Test::More: 0.61
-configure_requires:
-  ExtUtils::MakeMaker: 6.42
-distribution_type: module
-generated_by: 'Module::Install version 1.00'
-keywords:
-  - Atom
-  - RDF
-  - 'Semantic Web'
-  - OWL
-  - Feed
-license: perl
-meta-spec:
-  url: http://module-build.sourceforge.net/META-spec-v1.4.html
-  version: 1.4
-name: XML-Atom-FromOWL
-no_index:
-  directory:
-    - inc
-    - t
-requires:
-  Data::UUID: 0
-  RDF::TrineShortcuts: 0.100
-  Scalar::Util: 0
-  XML::Atom::Content: 0
-  XML::Atom::Entry: 0
-  XML::Atom::Feed: 0
-  XML::Atom::Link: 0
-  XML::Atom::Person: 0
-  common::sense: 0
-  namespace::clean: 0
-  perl: 5.8.0
-resources:
-  bugtracker: http://rt.cpan.org/Dist/Display.html?Queue=XML-Atom-FromOWL
-  homepage: http://search.cpan.org/dist/XML-Atom-FromOWL/
-  license: http://dev.perl.org/licenses/
-  repository: http://goddamn.co.uk/viewvc/perlmods/XML-Atom-FromOWL/
-version: 0.003
-use strict;
-use warnings;
-
-use inc::Module::Install;
-
-my $dist = 'XML-Atom-FromOWL';
-my $fn   = "lib/$dist.pm"; $fn =~ s#-#/#g;
-
-name                $dist;
-perl_version_from   $fn;
-version_from        $fn;
-abstract_from       $fn;
-readme_from         $fn;
-author              'Toby Inkster <tobyink@cpan.org>';
-license             'perl';
-
-requires            'common::sense'       => 0;
-requires            'Data::UUID'          => 0;
-requires            'namespace::clean'    => 0;
-requires            'RDF::TrineShortcuts' => '0.100';
-requires            'Scalar::Util'        => 0;
-test_requires       'Test::More'          => '0.61';
-requires            'XML::Atom::Content'  => 0;
-requires            'XML::Atom::Entry'    => 0;
-requires            'XML::Atom::Feed'     => 0;
-requires            'XML::Atom::Link'     => 0;
-requires            'XML::Atom::Person'   => 0;
-
-resources(
-	'homepage'   => "https://metacpan.org/release/$dist",
-	'repository' => "http://goddamn.co.uk/svn-web/perlmods/browse/$dist/",
-	'bugtracker' => "http://rt.cpan.org/Dist/Display.html?Queue=$dist",
-	);
-
-keywords("Atom", "RDF", "Semantic Web", "OWL", "Feed");
-	
-write_doap_changes;
-write_doap_changes_xml;
-auto_license;
-auto_manifest;
-
-auto_install;
-WriteAll(
-	'meta' => 1,
-	'sign' => 1,
-	);
+use inc::Module::Package 'RDF:standard';

File README

-NAME
-    XML::Atom::FromOWL - export RDF data to Atom
-
-SYNOPSIS
-     use LWP::UserAgent;
-     use XML::Atom::OWL;
-     use XML::Atom::FromOWL;
- 
-     my $ua       = LWP::UserAgent->new;
-     my $r        = $ua->get('http://intertwingly.net/blog/index.atom');
-     my $atomowl  = XML::Atom::OWL->new($r->decoded_content, $r->base);
-     my $model    = $atomowl->consume->graph;  ## an RDF::Trine::Model
- 
-     my $exporter = XML::Atom::FromOWL->new;
-     print $_->as_xml
-            foreach $exporter->export_feeds($model);
-
-DESCRIPTION
-    This module reads RDF and writes Atom feeds. It does the reverse of
-    XML::Atom::OWL.
-
-  Constructor
-    *   "new(%options)"
-
-        Returns a new XML::Atom::FromOWL object.
-
-        There are no valid options at the moment - the hash is reserved for
-        future use.
-
-  Methods
-    *   "export_feeds($input, %options)"
-
-        Returns a list of feeds found in the input, in no particular order.
-
-        The input may be a URI, file name, RDF::Trine::Model or anything
-        else that can be handled by the "rdf_parse" method of
-        RDF::TrineShortcuts.
-
-        Each item in the list returned is an XML::Atom::Feed.
-
-    *   "export_feed($input, $subject, %options)"
-
-        As per "export_feeds" but exports just a single feed.
-
-        The subject provided must be an RDF::Trine::Node::Blank or
-        RDF::Trine::Node::Resource of type awol:Feed.
-
-    *   "export_entries($input, %options)"
-
-        Returns a list of entries found in the input, in no particular
-        order.
-
-        The input may be a URI, file name, RDF::Trine::Model or anything
-        else that can be handled by the "rdf_parse" method of
-        RDF::TrineShortcuts.
-
-        Each item in the list returned is an XML::Atom::Entry.
-
-    *   "export_entry($input, $subject, %options)"
-
-        As per "export_entry" but exports just a single entry.
-
-        The subject provided must be an RDF::Trine::Node::Blank or
-        RDF::Trine::Node::Resource of type awol:Entry.
-
-  RDF Input
-    Input is expected to use AtomOwl
-    <http://bblfish.net/work/atom-owl/2006-06-06/#>.
-
-  Feed Output
-    This module doesn't attempt to enforce many of OWL's semantic
-    constraints (e.g. it doesn't enforce that an entry has only one title).
-    It relies on XML::Atom::Feed and XML::Atom::Entry for that sort of
-    thing, but if your input is sensible that shouldn't be a problem.
-
-SEE ALSO
-    XML::Atom::OWL, HTML::Microformats, RDF::TrineShortcuts,
-    XML::Atom::Feed, XML::Atom::Entry.
-
-    <http://bblfish.net/work/atom-owl/2006-06-06/>.
-
-    <http://www.perlrdf.org/>.
-
-AUTHOR
-    Toby Inkster <tobyink@cpan.org>.
-
-COPYRIGHT
-    Copyright 2011 Toby Inkster
-
-    This library is free software; you can redistribute it and/or modify it
-    under the same terms as Perl itself.
-
-TODO:
-* Add some more items to this list.
-* Add keywords to Makefile.PL
+- atom:source
+- georss:point
+- better support for activitystrea.ms

File example1.pl

-#!/usr/bin/perl
-
-use lib "lib";
-use RDF::TrineShortcuts;
-use RDF::RDFa::Parser;
-use XML::Atom::FromOWL;
-
-my $atom = <<ATOM;
-<feed xmlns="http://www.w3.org/2005/Atom"
-	xmlns:hnews="http://ontologi.es/hnews#"
-	xmlns:thr="http://purl.org/syndication/thread/1.0">
-  <title type="text">dive into mark</title>
-  <subtitle type="html">
-	 A &lt;em&gt;lot&lt;/em&gt; of effort
-	 went into making this effortless
-  </subtitle>
-  <updated>2005-07-31T12:29:29Z</updated>
-  <id>tag:example.org,2003:3</id>
-  <logo>http://example.net/logo.jpeg</logo>
-  <link rel="alternate" type="text/html"
-	hreflang="en" href="http://example.org/"/>
-  <link rel="self" type="application/atom+xml"
-	href="http://example.org/feed.atom"/>
-  <rights>Copyright (c) 2003, Mark Pilgrim</rights>
-  <generator uri="http://www.example.com/" version="1.0">
-	 Example Toolkit
-  </generator>
-  <entry xml:lang="en-US">
-	 <title property="dc:title" xmlns:dc="http://example.com/dc#">Atom draft-07 snapshot</title>
-	 <link rel="alternate" type="text/html"
-	  href="http://example.org/2005/04/02/atom"/>
-	 <link rel="enclosure" type="audio/mpeg" length="1337"
-	  href="http://example.org/audio/ph34r_my_podcast.mp3"/>
-    <category term="technology" label="Technology" scheme="http://example.com/categories/" />
-	 <id>tag:example.org,2003:3.2397</id>
-	 <updated>2005-07-31T12:29:29Z</updated>
-	 <published>2003-12-13T08:29:29-04:00</published>
-	 <meta property="hnews:dateline-literal" content="Dateline Literal" xml:lang="en-GB" />
-	 <meta rel="hnews:source-org" href="http://dbpedia.org/resource/IANA" />
-	 <author>
-		<name>Mark Pilgrim</name>
-		<uri>http://example.org/</uri>
-		<email>f8dy\@example.com</email>
-	 </author>
-	 <contributor>
-		<name>Sam Ruby</name>
-	 </contributor>
-	 <contributor>
-		<name>Joe Gregorio</name>
-	 </contributor>
-	 <content type="xhtml" xml:lang="en"
-	  xml:base="http://diveintomark.org/">
-		<div xmlns="http://www.w3.org/1999/xhtml">
-		  <p><i>[Update: The Atom draft is finished.]</i></p>
-		</div>
-	 </content>
-  </entry>
-  <entry>
-	<id>http://example.net/id/2</id>
-	<thr:total>9</thr:total>
-	<thr:in-reply-to source="foo" href="bar" ref="baz" />
-	<content type="image/jpeg" src="data:text/html;base64,PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMC8vRU4iPg0KPGh0bWwgbGFuZz0iZW4iPg0KIDxoZWFkPg0KICA8dGl0bGU%2BVGVzdDwvdGl0bGU%2BDQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI%2BDQogIDwvc3R5bGU%2BDQogPC9oZWFkPg0KIDxib2R5Pg0KICA8cD48L3A%2BDQogPC9ib2R5Pg0KPC9odG1sPg0K" />
-  </entry>
-</feed>
-ATOM
-
-my $cfg   = RDF::RDFa::Parser::Config->new('atom', '1.1', atom_parser=>1);
-my $awol  = RDF::RDFa::Parser->new($atom, 'http://example.net/', $cfg)->consume;
-my $model = $awol->graph;
-
-my $exporter = XML::Atom::FromOWL->new();
-print $_->as_xml foreach $exporter->export_feeds($model);
-print rdf_string($model => 'rdfxml');
-

File examples/with_rdfa_parser.pl

+#!/usr/bin/perl
+
+use lib "../XML-Atom-OWL/lib";
+use lib "lib";
+use RDF::TrineShortcuts;
+use RDF::RDFa::Parser;
+use XML::Atom::FromOWL;
+
+my $atom = <<ATOM;
+<feed xmlns="http://www.w3.org/2005/Atom"
+	xmlns:as="http://activitystrea.ms/spec/1.0/"
+	xmlns:hnews="http://ontologi.es/hnews#"
+	xmlns:thr="http://purl.org/syndication/thread/1.0">
+  <title type="text">dive into mark</title>
+  <subtitle type="html">
+	 A &lt;em&gt;lot&lt;/em&gt; of effort
+	 went into making this effortless
+  </subtitle>
+  <updated>2005-07-31T12:29:29Z</updated>
+  <id>tag:example.org,2003:3</id>
+  <logo>http://example.net/logo.jpeg</logo>
+  <link rel="alternate" type="text/html"
+	hreflang="en" href="http://example.org/"/>
+  <link rel="self" type="application/atom+xml"
+	href="http://example.org/feed.atom"/>
+  <rights>Copyright (c) 2003, Mark Pilgrim</rights>
+  <generator uri="http://www.example.com/" version="1.0">
+	 Example Toolkit
+  </generator>
+  <entry xml:lang="en-US">
+	 <title property="dc:title" xmlns:dc="http://example.com/dc#">Atom draft-07 snapshot</title>
+	 <link rel="alternate" type="text/html"
+	  href="http://example.org/2005/04/02/atom"/>
+	 <link rel="enclosure" type="audio/mpeg" length="1337"
+	  href="http://example.org/audio/ph34r_my_podcast.mp3"/>
+    <category term="technology" label="Technology" scheme="http://example.com/categories/" />
+	 <id>tag:example.org,2003:3.2397</id>
+	 <updated>2005-07-31T12:29:29Z</updated>
+	 <published>2003-12-13T08:29:29-04:00</published>
+	 <meta property="hnews:dateline-literal" content="Dateline Literal" xml:lang="en-GB" />
+	 <meta rel="hnews:source-org" href="http://dbpedia.org/resource/IANA" />
+	 <author>
+		<name>Mark Pilgrim</name>
+		<uri>http://example.org/</uri>
+		<email>f8dy\@example.com</email>
+	 </author>
+	 <as:verb>post</as:verb>
+	 <as:object>
+	   <id>foo:bar:baz</id>
+	   <title>Foo Bar Baz</title>
+	   <as:object-type>note</as:object-type>
+	 </as:object>
+	 <contributor>
+		<name>Sam Ruby</name>
+	 </contributor>
+	 <contributor>
+		<name>Joe Gregorio</name>
+	 </contributor>
+	 <content type="xhtml" xml:lang="en"
+	  xml:base="http://diveintomark.org/">
+		<div xmlns="http://www.w3.org/1999/xhtml">
+		  <p><i>[Update: The Atom draft is finished.]</i></p>
+		</div>
+	 </content>
+  </entry>
+  <entry>
+	<id>http://example.net/id/2</id>
+	<thr:total>9</thr:total>
+	<thr:in-reply-to source="foo" href="bar" ref="baz" />
+	<content type="image/jpeg" src="data:text/html;base64,PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMC8vRU4iPg0KPGh0bWwgbGFuZz0iZW4iPg0KIDxoZWFkPg0KICA8dGl0bGU%2BVGVzdDwvdGl0bGU%2BDQogIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI%2BDQogIDwvc3R5bGU%2BDQogPC9oZWFkPg0KIDxib2R5Pg0KICA8cD48L3A%2BDQogPC9ib2R5Pg0KPC9odG1sPg0K" />
+  </entry>
+</feed>
+ATOM
+
+my $cfg   = RDF::RDFa::Parser::Config->new('atom', '1.1', atom_parser=>1);
+my $awol  = RDF::RDFa::Parser->new($atom, 'http://example.net/', $cfg)->consume;
+my $model = $awol->graph;
+
+my $exporter = XML::Atom::FromOWL->new();
+print $_->as_xml foreach $exporter->export_feeds($model);
+print rdf_string($model => 'Turtle');
+

File lib/XML/Atom/FromOWL.pm

 package XML::Atom::FromOWL;
 
-use 5.008;
+use 5.010;
 use common::sense;
 
 use Data::UUID;
 use XML::Atom::Link;
 use XML::Atom::Person;
 
+use constant AS    => 'http://activitystrea.ms/spec/1.0/';
 use constant ATOM  => 'http://www.w3.org/2005/Atom';
 use constant FH    => 'http://purl.org/syndication/history/1.0';
 use constant THR   => 'http://purl.org/syndication/thread/1.0';
 use constant XHTML => 'http://www.w3.org/1999/xhtml';
 
 sub AWOL  { return 'http://bblfish.net/work/atom-owl/2006-06-06/#' . shift; }
+sub AAIR  { return 'http://xmlns.notu.be/aair#' . shift; }
 sub AX    { return 'http://buzzword.org.uk/rdf/atomix#' . shift; }
 sub FOAF  { return 'http://xmlns.com/foaf/0.1/' . shift; }
 sub HNEWS { return 'http://ontologi.es/hnews#' . shift; }
 
 BEGIN
 {
-	$VERSION = '0.003';
+	$VERSION = '0.100';
 
 	%feed_dispatch = (
 		AWOL('Feed')         => sub {},
 		AWOL('content')      => \&_export_entry_content,
 		AX('total')          => \&_export_entry_thr_total,
 		AX('in-reply-to')    => \&_export_entry_thr_in_reply_to,
+		AAIR('activityVerb') => \&_export_entry_as_verb,
+		AAIR('activityObject') => \&_export_entry_as_ObjectConstruct,
+		AAIR('activityTarget') => \&_export_entry_as_ObjectConstruct,
+		'http://activitystrea.ms/schema/1.0/*' => \&_export_entry_as_object_type,
 		# TODO:- atom:source
 		);
 }
 
 	my $attr = {
 		version => $VERSION,
-		uri     => 'http://search.cpan.org/dist/'.__PACKAGE__.'/',
+		uri     => 'https://metacpan.org/release/'.__PACKAGE__,
 		};
 	$attr->{uri} =~ s/::/-/g;
 	$feed->set(ATOM(), 'generator', __PACKAGE__, $attr, 1);
 			my $code = $entry_dispatch{$triple->object->uri};
 			$code->($self, $entry, $model, $triple, %options);
 		}
+		elsif ($triple->predicate->uri eq RDF('type')
+		and $triple->object->is_resource
+		and defined $entry_dispatch{ ($triple->object->qname)[0] . '*' }
+		and ref($entry_dispatch{ ($triple->object->qname)[0] . '*' }) eq 'CODE')
+		{
+			my $code = $entry_dispatch{ ($triple->object->qname)[0] . '*' };
+			$code->($self, $entry, $model, $triple, %options);
+		}
 		elsif ($triple->object->is_resource)
 		{
 			my $rel  = $triple->predicate->uri;
 	}
 }
 
+sub _export_entry_as_verb
+{
+	my ($self, $thing, $model, $triple, %options) = @_;
+
+	if ($triple->object->is_resource)
+	{
+		my $attr = {};
+		my $verb = flatten_node($triple->object);
+		$verb =~ s#^http://activitystrea\.ms/schema/1\.0/#./#;
+		return $thing->elem->addNewChild(AS(), 'as:verb')->appendText($verb);
+	}
+}
+
+sub _export_entry_as_object_type
+{
+	my ($self, $thing, $model, $triple, %options) = @_;
+
+	if ($triple->object->is_resource)
+	{
+		my $attr = {};
+		my $type = flatten_node($triple->object);
+		$type =~ s#^http://activitystrea\.ms/schema/1\.0/#./#;
+		return $thing->elem->addNewChild(AS(), 'as:object-type')->appendText($type);
+	}
+}
+
+sub _export_entry_as_ObjectConstruct
+{
+	my ($self, $thing, $model, $triple, %options) = @_;
+
+	my $tag = {
+		AAIR('activityObject') => 'object',
+		AAIR('activityTarget') => 'target',
+		}->{$triple->predicate->uri};
+	
+	if ($triple->object->is_resource or $triple->object->is_blank)
+	{
+		my $object_entry = $self->export_entry($model, $triple->object, %options);
+		my $node = $thing->elem->addNewChild(AS(), "as:$tag");
+		$node->appendChild($_->cloneNode(1)) for $object_entry->elem->childNodes;
+		return $node;
+	}
+}
+
 sub _make_id
 {
 	my ($self) = @_;

File meta/changes.ttl

+@prefix :        <http://usefulinc.com/ns/doap#> .
+@prefix dcs:     <http://ontologi.es/doap-changeset#> .
+@prefix dc:      <http://purl.org/dc/terms/> .
+@prefix foaf:    <http://xmlns.com/foaf/0.1/> .
+@prefix my:      <http://purl.org/NET/cpan-uri/dist/XML-Atom-FromOWL/> .
+@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix toby:    <http://tobyinkster.co.uk/#> .
+@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
+
+my:project :release my:v_0-001 .
+my:v_0-001
+	a               :Version ;
+	dc:issued       "2011-01-13"^^xsd:date ;
+	:revision       "0.001"^^xsd:string ;
+	:file-release   <http://backpan.cpan.org/authors/id/T/TO/TOBYINK/XML-Atom-FromOWL-0.001.tar.gz> ;
+	rdfs:label      "Initial release"@en .
+
+my:project :release my:v_0-002 .
+my:v_0-002
+	a               :Version ;
+	dc:issued       "2011-01-14"^^xsd:date ;
+	:revision       "0.002"^^xsd:string ;
+	:file-release   <http://backpan.cpan.org/authors/id/T/TO/TOBYINK/XML-Atom-FromOWL-0.002.tar.gz> ;
+	dcs:changeset [
+		dcs:versus my:v_0-001 ;
+		dcs:item   [ rdfs:label "use Data::UUID"@en ] ;
+		dcs:item   [ rdfs:label "Force <entry> and <feed> elements to contain an <id> even if none is provided in the input data."@en ]
+		] .
+
+my:project :release my:v_0-003 .
+my:v_0-003
+	a               :Version ;
+	dc:issued       "2011-01-19"^^xsd:date ;
+	:revision       "0.003"^^xsd:string ;
+	:file-release   <http://backpan.cpan.org/authors/id/T/TO/TOBYINK/XML-Atom-FromOWL-0.003.tar.gz> ;
+	dcs:changeset [
+		dcs:versus my:v_0-002 ;
+		dcs:item   [ rdfs:label "Support for Atom Feed Paging and Archiving."@en ; a dcs:Addition ; rdfs:seeAlso <http://tools.ietf.org/rfc/rfc5005.txt> ] ;
+		dcs:item   [ rdfs:label "Support for Atom Threading Extensions."@en ; a dcs:Addition ; rdfs:seeAlso <http://tools.ietf.org/rfc/rfc4685.txt> ] ;
+		dcs:item   [ rdfs:label "Support for hNews."@en ; a dcs:Addition ; rdfs:seeAlso <http://microformats.org/wiki/hnews> ] ;
+		dcs:item   [ rdfs:label "Support for exporting links which do not use AtomOWL's reified Link construct."@en ; a dcs:Addition ] ;
+		dcs:item   [ rdfs:label "Export triples of the form { ?e ?p ?o . } where ?e is a feed or entry and ?o is a literal, using Atom+RDFa"@en ; a dcs:Addition ]
+		] .
+
+my:project :release my:v_0-100 .
+my:v_0-100
+	a               :Version ;
+	dc:issued       "2011-10-27"^^xsd:date ;
+	:revision       "0.100"^^xsd:string ;
+	:file-release   <http://backpan.cpan.org/authors/id/T/TO/TOBYINK/XML-Atom-FromOWL-0.100.tar.gz> ;
+	dcs:changeset [
+		dcs:versus my:v_0-003 ;
+		dcs:item   [ rdfs:label "Rudimentary support for ActivityStrea.ms."@en ; a dcs:Addition ; rdfs:seeAlso <http://activitystrea.ms/> ] ;
+		dcs:item   [ rdfs:label "Module::Package::RDF"@en ; a dcs:Packaging ] ;
+		dcs:item   [ rdfs:label "use 5.010"@en ; a dcs:Update ] ;
+		] .

File meta/doap.ttl

+@prefix :        <http://usefulinc.com/ns/doap#> .
+@prefix dcs:     <http://ontologi.es/doap-changeset#> .
+@prefix dc:      <http://purl.org/dc/terms/> .
+@prefix foaf:    <http://xmlns.com/foaf/0.1/> .
+@prefix my:      <http://purl.org/NET/cpan-uri/dist/XML-Atom-FromOWL/> .
+@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix toby:    <http://tobyinkster.co.uk/#> .
+@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
+
+my:project
+	a               :Project ;
+	:name           "XML-Atom-FromOWL" ;
+	:shortdesc      "export RDF data to Atom"@en ;
+	:programming-language  "Perl" ;
+	:homepage       <https://metacpan.org/release/XML-Atom-FromOWL> ;
+	:download-page  <https://metacpan.org/release/XML-Atom-FromOWL> ;
+	:bug-database   <http://rt.cpan.org/Dist/Display.html?Queue=XML-Atom-FromOWL> ;
+	:repository     [ a :SVNRepository ; :browse <http://goddamn.co.uk/svn-web/perlmods/browse/XML-Atom-FromOWL/> ] ;
+	:maintainer     toby:i ;
+	:developer      toby:i ;
+	:documenter     toby:i ;
+	:tester         toby:i ;
+	:created        "2011-01-12"^^xsd:date ;
+	:license        <http://dev.perl.org/licenses/> ;
+	:category
+		[ rdfs:label "Atom"@en ] ,
+		[ rdfs:label "RDF"@en ] ,
+		[ rdfs:label "OWL"@en ] ,
+		[ rdfs:label "Feed"@en ] ,
+		[ rdfs:label "Syndication"@en ] ,
+		[ rdfs:label "ActivityStrea.ms"@en ] ,
+		[ rdfs:label "Semantic Web"@en ] .
+
+toby:i
+	a               foaf:Person ;
+	foaf:name       "Toby Inkster" ;
+	foaf:homepage   <http://tobyinkster.co.uk/> ;
+	foaf:page       <https://metacpan.org/author/TOBYINK> ;
+	foaf:mbox       <mailto:tobyink@cpan.org> ;
+	<http://www.w3.org/2002/07/owl#sameAs> <http://purl.org/NET/cpan-uri/person/tobyink> .

File meta/makefile.ttl

+# This file provides instructions for packaging.
+
+@prefix : <http://purl.org/NET/cpan-uri/terms#> .
+
+<http://purl.org/NET/cpan-uri/dist/XML-Atom-FromOWL/project>
+	:perl_version_from _:main ;
+	:version_from _:main ;
+	:readme_from _:main ;
+	:test_requires "Test::More 0.61" ;
+	:requires "Data::UUID" , "XML::LibXML 1.70", "namespace::clean",
+		"RDF::TrineShortcuts 0.100", "Scalar::Util", "common::sense",
+		"XML::Atom::Content" , "XML::Atom::Entry" , "XML::Atom::Feed" ,
+		"XML::Atom::Link" , "XML::Atom::Person" .
+
+_:main <http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#fileName> "lib/XML/Atom/FromOWL.pm" .
+
+use Test::More;
+eval "use Test::Pod 1.00";
+plan skip_all => "Test::Pod 1.00 required for testing POD" if $@;
+all_pod_files_ok();
+

File xt/02pod_coverage.t

+use Test::More;
+use Test::Pod::Coverage;
+
+my @modules = qw(XML::Atom::FromOWL);
+pod_coverage_ok($_, "$_ is covered")
+	foreach @modules;
+done_testing(scalar @modules);
+

File xt/03meta_uptodate.t

+use Test::More tests => 1;
+use Test::RDF::DOAP::Version;
+doap_version_ok('XML-Atom-FromOWL', 'XML::Atom::FromOWL');
+
+use Test::EOL;
+all_perl_files_ok();