So I was playing with Operator the other day. https://addons.mozilla.org/en-US/firefox/addon/4106 to see what out microformat support looks like and it occured to me we are missing out on one of them... Tags.
We have discussed before that we prefer categories and locales over "tags" becasue they are less freeform. However they are our "tags" and as such we should probably mark them up like that for microformat goodness. It would seem the way to do this is to add rel="tag" in the <a>.
Comments, suggetions, patches?
On Wed, Mar 28, 2007 at 02:47:48PM +0100, Bob Walker wrote:
So I was playing with Operator the other day. https://addons.mozilla.org/en-US/firefox/addon/4106 to see what out microformat support looks like and it occured to me we are missing out on one of them... Tags.
We have discussed before that we prefer categories and locales over "tags" becasue they are less freeform. However they are our "tags" and as such we should probably mark them up like that for microformat goodness. It would seem the way to do this is to add rel="tag" in the <a>.
Comments, suggetions, patches?
No objection to doing this.
Cheers - and see you all in a couple of weeks!
Dominic.
On Wed, Mar 28, 2007 at 06:00:13PM +0100, Dominic Hargreaves wrote:
Cheers - and see you all in a couple of weeks!
"see" virtually that is - I'm offline until then.
Dominic.
On Wed 28 Mar 2007, Bob Walker bob@randomness.org.uk wrote:
We have discussed before that we prefer categories and locales over "tags" becasue they are less freeform. However they are our "tags" and as such we should probably mark them up like that for microformat goodness. It would seem the way to do this is to add rel="tag" in the <a>.
Bob pointed me at http://microformats.org/wiki/rel-tag
for further info, and it looks like it isn't this simple. The only way they allow you to state what the tag actually _is_ (e.g. "pub", "bermondsey") is to have it as the final "component" of the URL that you link to. Having it as a query parameter is no use. Having it as an additional attribute of the <a> element is no use. Having it as some non-final component of the URL in order to be compatible with some other scheme that also wants to have its data as the final component of the URL is no use.
So basically - we can't do this as it stands, and even if we did decide to rewrite all our URLs to fit in with it, we'd be locking ourselves into a particular URL scheme which may well be incompatible with the next cool thing to come along.
It feels rather like something that hasn't been properly thought out yet, particularly given the valid and recent criticisms raised at http://microformats.org/wiki/rel-tag-feedback
Kake
On 28 Mar 2007, at 23:17, Kake L Pugh wrote:
On Wed 28 Mar 2007, Bob Walker bob@randomness.org.uk wrote:
We have discussed before that we prefer categories and locales over "tags" becasue they are less freeform. However they are our "tags" and as such we should probably mark them up like that for microformat goodness. It would seem the way to do this is to add rel="tag" in the <a>.
Bob pointed me at http://microformats.org/wiki/rel-tag
for further info, and it looks like it isn't this simple. The only way they allow you to state what the tag actually _is_ (e.g. "pub", "bermondsey") is to have it as the final "component" of the URL that you link to. Having it as a query parameter is no use. Having it as an additional attribute of the <a> element is no use. Having it as some non-final component of the URL in order to be compatible with some other scheme that also wants to have its data as the final component of the URL is no use.
So basically - we can't do this as it stands, and even if we did decide to rewrite all our URLs to fit in with it, we'd be locking ourselves into a particular URL scheme which may well be incompatible with the next cool thing to come along.
It feels rather like something that hasn't been properly thought out yet, particularly given the valid and recent criticisms raised at http://microformats.org/wiki/rel-tag-feedback
Also, one might prefer RDFa or GRDDL to achieve similar goals.
I'm not expert enough to recommend one over the other, however GRDDL does seem to be dynamic enough that it might be a low-hanging fruit to grab for Open Guides.
Of course Open Guides already outputs actual RDF/XML, so some might argue this whole exercise is somewhat redundant.
Daniel
Yeah, much as I'm a fan of whatever.com/tags/tag style URLs, I'd second Kake's discomfort with having to buy into a particular URL scheme. It works fine if you're starting from scratch and can't muster any more semantics, but I reckon the OpenGuides can do better ;)
As suggested, one option is to exploit the existing RDF/XML "infrastructure", and expose categories and locales as "tags" using Richard Newman's tag ontology [1]. I've used this myself and it works pretty well. Using the whole-hog approach of expressing "who tagged what with what and when" might be a bit tricky, because if you edit an entry that I placed in the Wolverton locale, who did the tagging? me? both of us? and when? I'm not sure if this degree of provenance data is held in the db or not.
Anyway, there is a simpler approach using that same ontology, that achieves what rel-tag does, but just does it "properly" ;) Something like this would do the job:
ex:obj tags:tag [ tags:associatedTag tag:great , tag:interesting ] .
...perhaps with another statement to give each tag a label. (this code comes from the third grey box from the bottom of [1], if that makes sense).
Cheers,
Tom.
[1] http://www.holygoat.co.uk/projects/tags/
On 29/03/07, Daniel Alexander Smith daniel@pling.net wrote:
On 28 Mar 2007, at 23:17, Kake L Pugh wrote:
On Wed 28 Mar 2007, Bob Walker bob@randomness.org.uk wrote:
We have discussed before that we prefer categories and locales over "tags" becasue they are less freeform. However they are our "tags" and as such we should probably mark them up like that for microformat goodness. It would seem the way to do this is to add rel="tag" in the <a>.
Bob pointed me at http://microformats.org/wiki/rel-tag
for further info, and it looks like it isn't this simple. The only way they allow you to state what the tag actually _is_ (e.g. "pub", "bermondsey") is to have it as the final "component" of the URL that you link to. Having it as a query parameter is no use. Having it as an additional attribute of the <a> element is no use. Having it as some non-final component of the URL in order to be compatible with some other scheme that also wants to have its data as the final component of the URL is no use.
So basically - we can't do this as it stands, and even if we did decide to rewrite all our URLs to fit in with it, we'd be locking ourselves into a particular URL scheme which may well be incompatible with the next cool thing to come along.
It feels rather like something that hasn't been properly thought out yet, particularly given the valid and recent criticisms raised at http://microformats.org/wiki/rel-tag-feedback
Also, one might prefer RDFa or GRDDL to achieve similar goals.
I'm not expert enough to recommend one over the other, however GRDDL does seem to be dynamic enough that it might be a low-hanging fruit to grab for Open Guides.
Of course Open Guides already outputs actual RDF/XML, so some might argue this whole exercise is somewhat redundant.
Daniel
-- OpenGuides-Dev mailing list - OpenGuides-Dev@lists.openguides.org http://lists.openguides.org/cgi-bin/mailman/listinfo/openguides-dev
On Thu 29 Mar 2007, Tom Heath tom.heath@gmail.com wrote:
Using the whole-hog approach of expressing "who tagged what with what and when" might be a bit tricky, because if you edit an entry that I placed in the Wolverton locale, who did the tagging? me? both of us? and when? I'm not sure if this degree of provenance data is held in the db or not.
You can get it out of the database, e.g.:
node name | version | category | username -----------------------------+---------+----------------------+-------------- Assa, WC2H 8LH | 2 | Korean Food | bob Assa, WC2H 8LH | 3 | Korean Food | Kake Assa, WC2H 8LH | 1 | Restaurants | Claudia Assa, WC2H 8LH | 2 | Restaurants | bob Assa, WC2H 8LH | 3 | Restaurants | Kake
This means that Claudia added Assa and tagged it as a restaurant, then Bob added the Korean Food tag. It also means that Bob agrees (or, at least, doesn't disagree) with Claudia that it's a restaurant, and that Kake agrees with both Bob and Claudia that it's a restaurant serving Korean Food.
(You can get the dates of the edits too, I just didn't bother in this extract.)
(I talked with zool about this many years ago - in a way, an edit that doesn't remove a category or locale is a "vote" for that category/locale being correct. We were wondering if we could use this in some way to "define" the extent of a locale - as in, if 20 people agree that a point is in Bermondsey, then it probably is. I don't think we have enough contributors for this to work, but theoretically it's a nice idea.)
Here's the SQL, linewrapped for readability; the "substring" stuff was just to make the output fit in 80 characters.
london=> select substring(node.name from 1 for 27) as "node name", content.version, substring(mc.metadata_value from 1 for 20) as "category", mn.metadata_value as "username" from content inner join node on (content.node_id=node.id) inner join metadata as mn on (content.node_id=mn.node_id and content.version=mn.version and mn.metadata_type='username') inner join metadata as mc on (content.node_id=mc.node_id and content.version=mc.version and mc.metadata_type='category' ) order by node.name, mc.metadata_value, content.version;
Kake
On 29/03/07, Kake L Pugh kake@earth.li wrote:
This means that Claudia added Assa and tagged it as a restaurant, then Bob added the Korean Food tag.
I'm glad that the list has finally come around to agreeing with me that our categories are, in fact, tags.
Cool, that's great news that the data is there. From the point of view of modelling this process, I guess I'd argue that each new tag added by a person represents "that person tagging the thing with a certain tag", but that "an edit by person B that leaves in place a tag X added by person A", does not represent an instance of "person B tagging the thing with tag X". This level of pickiness may be a bit anally retentive however.
On the upside, this process (as you point out with the Bermondsey example) does provide a very neat way of establishing the possible trustworthiness of tagging statements. Something along the lines of "if more than X people have edited a node and left in place the category/tag Y, then we're confident to a degree Z that this is the case" may be possible. Obviously still open to spamming of confidence levels, but better than nothing :)
Tom.
On 29/03/07, Kake L Pugh kake@earth.li wrote:
On Thu 29 Mar 2007, Tom Heath tom.heath@gmail.com wrote:
Using the whole-hog approach of expressing "who tagged what with what and when" might be a bit tricky, because if you edit an entry that I placed in the Wolverton locale, who did the tagging? me? both of us? and when? I'm not sure if this degree of provenance data is held in the db or not.
You can get it out of the database, e.g.:
node name | version | category | username
-----------------------------+---------+----------------------+-------------- Assa, WC2H 8LH | 2 | Korean Food | bob Assa, WC2H 8LH | 3 | Korean Food | Kake Assa, WC2H 8LH | 1 | Restaurants | Claudia Assa, WC2H 8LH | 2 | Restaurants | bob Assa, WC2H 8LH | 3 | Restaurants | Kake
This means that Claudia added Assa and tagged it as a restaurant, then Bob added the Korean Food tag. It also means that Bob agrees (or, at least, doesn't disagree) with Claudia that it's a restaurant, and that Kake agrees with both Bob and Claudia that it's a restaurant serving Korean Food.
(You can get the dates of the edits too, I just didn't bother in this extract.)
(I talked with zool about this many years ago - in a way, an edit that doesn't remove a category or locale is a "vote" for that category/locale being correct. We were wondering if we could use this in some way to "define" the extent of a locale - as in, if 20 people agree that a point is in Bermondsey, then it probably is. I don't think we have enough contributors for this to work, but theoretically it's a nice idea.)
Here's the SQL, linewrapped for readability; the "substring" stuff was just to make the output fit in 80 characters.
london=> select substring(node.name from 1 for 27) as "node name", content.version, substring(mc.metadata_value from 1 for 20) as "category", mn.metadata_value as "username" from content inner join node on (content.node_id=node.id) inner join metadata as mn on (content.node_id=mn.node_id and content.version=mn.version and mn.metadata_type='username') inner join metadata as mc on (content.node_id=mc.node_id and content.version=mc.version and mc.metadata_type='category' ) order by node.name, mc.metadata_value, content.version;
Kake
-- OpenGuides-Dev mailing list - OpenGuides-Dev@lists.openguides.org http://lists.openguides.org/cgi-bin/mailman/listinfo/openguides-dev
On Thu 29 Mar 2007, Tom Heath tom.heath@gmail.com wrote:
I don't understand everything on that page (I don't suppose there's a simpler explanation for non-RDF people anywhere? As in, _really_ simple, for Dummies) but I do like that they seem to agree with me on the difference between a tag and a category. That is, I think a category is a consensus thing (as in OpenGuides) or a dictated thing (as in, say, the Dewey Decimal system or something like that), whereas a tag is an individual thing - "The goal of this ontology is to model the relationship between an agent, an arbitrary resource, and one or more tags." (where an "agent" is an individual person)
So: OpenGuides category + username of person who first added it gives an approximation of tag + agent but it's an approximation only because the person will have been affected by the consensus view of which categories are appropriate on that particular guide.
Kake
On Thu 29 Mar 2007, Tom Heath tom.heath@gmail.com wrote:
ex:obj tags:tag [ tags:associatedTag tag:great , tag:interesting ] .
The above line is an example of my Dummy-like status in this respect - I have no idea what language that is or how it should be used. Help?
Kake
On Thu 29 Mar 2007, Tom Heath tom.heath@gmail.com wrote:
ex:obj tags:tag [ tags:associatedTag tag:great , tag:interesting ] .
On Thu 29 Mar 2007, Kake L Pugh kake@earth.li wrote:
The above line is an example of my Dummy-like status in this respect - I have no idea what language that is or how it should be used. Help?
crschmidt explained on IRC that this is "turtle", a shorthand for RDF.
So my next question is - is there anywhere that's using this stuff? As a consumer, I mean. Tom's link had some examples of people _producing_ it, but is there anywhere I can go and look to see it in action?
Kake
On Fri, Mar 30, 2007 at 12:45:42PM +0100, Kake L Pugh wrote:
On Thu 29 Mar 2007, Tom Heath tom.heath@gmail.com wrote:
ex:obj tags:tag [ tags:associatedTag tag:great , tag:interesting ] .
On Thu 29 Mar 2007, Kake L Pugh kake@earth.li wrote:
The above line is an example of my Dummy-like status in this respect - I have no idea what language that is or how it should be used. Help?
crschmidt explained on IRC that this is "turtle", a shorthand for RDF.
So my next question is - is there anywhere that's using this stuff? As a consumer, I mean. Tom's link had some examples of people _producing_ it, but is there anywhere I can go and look to see it in action?
After talking to Kake on IRC, I realized here she didn't mean 'turtle', but instead the tags ontology described in the previously mentioned links.
Regards,
Thanks Chris, for jumping in and clarifying, on both counts. Apologies Kake and others for my kinda cryptic example.
So, the question is, "is anyone actually consuming tag data described using this ontology, and if so where can I see it in action?" Have I got that right?
The simple answer is no, not really. Mainly because tagging tends to be seen as a Web2.0 thing, and ontologies as a Semantic Web thing. Consequently Web2.0 people don't think of exposing tag data in RDF (using this or any other ontology), hence things like rel-tag, and Semantic Web people don't have much tagging data in their own apps that they can readily expose in RDF. Revyu is one exception (although we only produce right now, not consume). This is starting to change, with things like Flickr machine tags being a big step along the path (I gather, but haven't explored them much), but still right now the short answer is 'no'.
However, as with many things where the OpenGuides are ahead of the curve, a 'no' answer is not a reason to not do it ;) The biggest effort that's looking into these issues of tag sharing across services (with a view to making it easier to actually do something meaningful and useful with the data) is TagCommons http://tagcommons.org/, which will hopefully yield more movement in this general direction. RDF-based solutions have some decent traction in this group.
So, assuming other people are interested and prepared to commit the programming effort, I'd say lets just do it, and work out the consuming applications later. I'm sure others will follow the same path in due course.
What dya reckon?
Cheers,
Tom.
On 30/03/07, Christopher Schmidt crschmidt@crschmidt.net wrote:
On Fri, Mar 30, 2007 at 12:45:42PM +0100, Kake L Pugh wrote:
On Thu 29 Mar 2007, Tom Heath tom.heath@gmail.com wrote:
ex:obj tags:tag [ tags:associatedTag tag:great , tag:interesting ] .
On Thu 29 Mar 2007, Kake L Pugh kake@earth.li wrote:
The above line is an example of my Dummy-like status in this respect - I have no idea what language that is or how it should be used. Help?
crschmidt explained on IRC that this is "turtle", a shorthand for RDF.
So my next question is - is there anywhere that's using this stuff? As a consumer, I mean. Tom's link had some examples of people _producing_ it, but is there anywhere I can go and look to see it in action?
After talking to Kake on IRC, I realized here she didn't mean 'turtle', but instead the tags ontology described in the previously mentioned links.
Regards,
Christopher Schmidt Web Developer
-- OpenGuides-Dev mailing list - OpenGuides-Dev@lists.openguides.org http://lists.openguides.org/cgi-bin/mailman/listinfo/openguides-dev
On Fri 30 Mar 2007, Tom Heath tom.heath@gmail.com wrote:
So, the question is, "is anyone actually consuming tag data described using this ontology, and if so where can I see it in action?" Have I got that right?
Quick answer (longer one later): yes, that's it! But not in the sense of "nobody wants it so it's not worth it", more in the sense of "it'd be great/useful/motivating to have somewhere we could check out if we'd done it properly and usefully". Like with the Disco thing, which was very useful for seeing what was missing in our RDF. (Or, as an analogy, writing CSS is much more fun these days since browsers actually support it, and so I can see my mistakes/a return on my hard work instantly.)
Kake
On Fri 30 Mar 2007, Tom Heath tom.heath@gmail.com wrote:
So, the question is, "is anyone actually consuming tag data described using this ontology, and if so where can I see it in action?" Have I got that right?
The simple answer is no, not really.
Could OpenGuides become a consumer?
Kake
On 30/03/07, Kake L Pugh kake@earth.li wrote:
On Fri 30 Mar 2007, Tom Heath tom.heath@gmail.com wrote:
So, the question is, "is anyone actually consuming tag data described using this ontology, and if so where can I see it in action?" Have I got that right?
The simple answer is no, not really.
Could OpenGuides become a consumer?
Yeah, absolutely! I'm not sure if there a list anywhere of sites/services that are exposing data with this ontology, but I can speak for Revyu and say that yes, OpenGuides would be very welcome to become a consumer. Presenting Revyu reviews alongside OpenGuides entries would be a nice use case for this. Sure there are others too using different data sources.
We don't have massive coverage of places or things/objects (yet), but there are some relevant reviews for Milton Keynes, Bristol (if only someone would setup the OG Bristol ;), Oxford, London, Montreal...
There are two ways to approach this. 1) get the RDF from e.g. http://revyu.com/tags/milton-keynes/about/rdf for a list of all things tagged milton-keynes (it's a bit minimal intentionally - the rest of the information is available by looking up those URIs - but I could add more data in there to minise the number of requests required); or 2) do a SPARQL query against the endpoint at http://revyu.com/sparql/welcome to get out any data you want in any format you want using SQL-like queries. The endpoint is currently fairly locked down, but shout if you want access.
HTH for starters,
Tom.
On 29/03/07, Tom Heath tom.heath@gmail.com wrote:
pretty well. Using the whole-hog approach of expressing "who tagged what with what and when" might be a bit tricky, because if you edit an entry that I placed in the Wolverton locale, who did the tagging? me? both of us? and when? I'm not sure if this degree of provenance data is held in the db or not.
I think it's a waste of time to start going down this route before we have any kind of logins sorted out. It's useless data if you can't rely on it, and given that we have no way to prevent or even detect username spoofing, I certainly wouldn't rely on it for anything.
On Thu 29 Mar 2007, Daniel Alexander Smith daniel@pling.net wrote:
Of course Open Guides already outputs actual RDF/XML, so some might argue this whole exercise is somewhat redundant.
My interest in this is mostly along the lines of "if I can make my thing talk to your thing without much trouble on my part or yours, then I'd like to". I know we can always say "hey, just grab our RDF/XML and extract the data yourself", but that's yet another step that someone has to take in order to cooperate with us. I think we should be trying to make it easier for other people to cooperate with us, where we can do that without making any major changes or locking ourselves into a single way of doing things.
Kake
On 29/03/07, Daniel Alexander Smith daniel@pling.net wrote:
Of course Open Guides already outputs actual RDF/XML, so some might argue this whole exercise is somewhat redundant.
But bandwagon-jumping is fun!
openguides-dev@lists.openguides.org