<html>

<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:"Trebuchet MS";
        panose-1:2 11 6 3 2 2 2 2 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Trebuchet MS";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Trebuchet MS";}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 115.65pt 1.0in 115.6pt;}
div.Section1
        {page:Section1;}
-->
</style>

</head>

<body lang=EN-US link=blue vlink=purple>

<div class=Section1>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>Thanks, Tom Heath, for your point about <a
href="http://en.wikipedia.org/wiki/SPARQL">SPARQL</a>; I added it to the <a
href="http://tagcommons.org/2007/03/02/ontologies-vs-formats-vs-schema-vs-apis/">sharing
mechanisms list on the blog post</a>.</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>(Group: Here is a <a
href="http://www.xml.com/pub/a/2005/11/16/introducing-sparql-querying-semantic-web-tutorial.html">good
introductory article on SPARQL</a> that explains that it is both a query
language and a data access protocol layered on Web Services.  I would also
point people to the tools and services enabled by the <a
href="http://librdf.org/">Redland RDF Libraries</a> maintained by Dave Beckett,
who is on this list).</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'> </span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>Your example of revyu.com and del.icio.us is instructive. 
 As you and others have pointed out, the various ontologies for tagging we
have looked at all have core concepts that could be mapped to the data that
both revyu.com and del.icio.us expose through APIs.  The main difference
seems to be in the completeness of the inferential/retrieval services exposed.
 I don't know whether being a compliant SPARQL endpoint implies returning
results for all legal (and computationally tractable) queries in the language
(does SQL?  I think so).  The del.icio.us API only answers some kinds
of queries, such as "return all the tag assertions by me".</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'> </span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>If we specified a tag ontology, and showed how it mapped to various
APIs (possibly by just writing some of them as in the XSLT example from Marja),
then we would have the ability to write brokers and mediators that could query
across sources -- with one caveat.  The broker / mediator would have to
know the computational capabilities and limitations of each endpoint, and
reason about that.  For example, one service might be able to directly
return the set of tag labels for a given item by a given person, whereas another
could only return the whole row set of tag assertions by any person using any
tag label for the item.   The output of the latter would need to be
buffered and transformed in some way to return the requested query
results.  This is isomorphic to the operations done internally by a
relational database engine, except that it is distributed over systems with
unknown performance characteristics on various queries.  I imagine some
people are doing research in this area.</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'> </span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>Another approach would be use RDF as a kind of canonical form for a
data warehouse, where tag data from various systems are crawled/synchronized
and put into a common pool of data, which in turn could be accessed using a
SPARQL query service.   Is this the sort of thing that <a
href="http://esw.w3.org/topic/SweoIG/TaskForces/CommunityProjects/LinkingOpenData">Linking
Open Data</a> is doing?</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'> </span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>--tom</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'> </span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'><snip></span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> -----Original Message-----</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> From: wg-bounces@tagcommons.org [mailto:wg-bounces@tagcommons.org]
On</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> Behalf Of T.Heath</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> Sent: Friday, March 02, 2007 5:38 AM</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> To: Tag Commons Working Group</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> Subject: Re: [TagCommons-WG] mechanisms for sharing tag data</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> </span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> Hi all,</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> </span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> </span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> This looks like a really useful basis for our discussions, and
pretty</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> comprehensive. The one change/addition I would make is to
explicitly add</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> SPARQL into the list. It goes a tiny bit along with point 3 but
mostly</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> with point 7. It's worth noting that SPARQL itself doesn't assume
any</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> particular data model (so different from 3 in that sense), only
the</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> query writer needs to know about the underlying data model of the
SPARQL</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> endpoint (and in some cases even that isn't required; but that's a</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> discussion for elsewhere).</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>...</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> Perhaps another useful exercise would be to think about specific</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> examples of services and how they fit in with the points above, or
where</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> specific services fit in a space defined by those dimensions. It's</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> always useful to have something tangible to look at; for example,
the</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> del.icio.us API doesn't allow for real querying. The RSS1.0 output
is</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> cool and quite flexible, but (AFAIK) you can't get directly from</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> del.icio.us (e.g.) all the URLs that I've tagged "blog"
since an</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> arbitrary date. In that sense it scores well on processibility due
to</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> the RSS1.0 output, but less well on queryibility. I hope that
Revyu.com</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> via it's SPARQL endpoint [1] scores well on all the dimensions.</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> </span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> [1] http://revyu.com/sparql/welcome (temporarily quite locked down
-</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> contact me if you'd like access)</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> ...as an application developer/researcher/Semantic Web person, I
can't</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> advocate strongly enough an approach based on URIs+RDF+SPARQL.
There</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> would no doubt be a lot of learning to do along the way, but we
stand to</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> gain an awful lot. Moves such as the Linking Open Data project [2]
are</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> working through many of the issues; tag sharing initiatives such
as this</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> could easily piggyback on the project's findings.</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> </span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> [2]</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>>
http://esw.w3.org/topic/SweoIG/TaskForces/CommunityProjects/LinkingOpenD</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> ata</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> </span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> > - How can ontologies be layered on top of existing tag data
sources ></span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> that we don't own (for example, how does Annotea talk to</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> > del.icio.us?</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> </span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> Exposing del.icio.us data (or at least the x latest items tagged
y)</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> according to Richard's or Tom's tag ontology should be quite</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> straightforward using a SPARQL CONSTRUCT query. I'll have a look
into</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'>> this.</span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'></snip></span></font></p>

<p class=MsoPlainText><font size=2 face="Trebuchet MS"><span style='font-size:
10.0pt'> </span></font></p>

</div>

</body>

</html>