A univesal feed -> RDF mapping for Emeka

I found a nice mapping from Universal Feed Parser to RDF (SKOS,DC,AtomOWL), that Emeka will employ:

Each entry is an instance of (atomOwl:Entry,rss:item)

  • The URL of the feed -> an instance of atomOwl:Feed
  • Feed - atomOwl:entry -> entries
  • entry (link or id as URI) - rdfs:label,skos:prefLabel,dc:title -> entry.title
  • entry - dc:description,atomOwl:summary,rdfs:comment -> entry.summary
  • entry,feed - dc:creator, foaf:maker -> foaf:Person
  • entry.author_detail.name -> foaf:name
  • entry.author_detail.email -> foaf:mbox
  • entry.author_detail.href is the URL of the author
  • entries.tags -> skos:Collection
  • entries.tags.label -> skos:prefLabel
  • entries.tags.scheme + entries.tags.term (URI resolution) -> URI of skos:Concept
  • entry - dc:created,dc:date,atomOwl:published -> entry.published

Chimezie Ogbuji

via Copia

RDF IRC Agent - Emeka

I've recently been working on an IRC bot (based on Sean Palmer's phenny) called Emeka which is meant as a tool for demonstrating Versa and other related RDF facilities. Currently, it supports two functions:

  • .query <abritrary URI> " .. Versa Query .. "
  • .query-deep <arbitrary URI> steps " .. Versa Query .. "

The first, causes Emeka to parse the RDF document (associated with the given URI) as RDF/XML and then as N3 (if the first attempt fails). He then evaluates the submitted Versa Query against the Graph and responds with a result. The second function does the same with the exception that it recursively loads RDF graphs (following rdfs:seeAlso statements) N times, where N is the second argument. This is useful for extracting FOAF communities from a starting document (which was my original motivation for this).

By default Emeka has the following namespace prefixes bound:

daml,rdf,rdfs,owl,xsd,log (n3's log), dc,rss,foaf

Emeka is a work in progress and is currently idling in #swhack and #4suite (as we speak and #foaf,#swig eventually). Some ideas for other services available from this bot:

  • augmenting it's default namespace mapping
  • stored queries (for example: query for retrieving the latest rss:item in a feed)
  • Rule invokation (through FuXi's prospective-query function)
  • Interactive question and example demonstration of Versa function(s)
  • More sophisticated interaction with Del.icio.us RSS feeds (for web page cataloging)

Other suggestions are welcome

see #swhack logs for an example

Chimezie Ogbuji

via Copia