Posts

Showing posts from April, 2004

DMOZ URIs for dc:subject

As a first step, using DMOZ categories for dc:subject is very simple. In Movable Type, just place the dmoz URI (eg, http://dmoz.org/Computers/Internet/On_the_Web/Weblogs/ for blogging) as a category in your blog configuration.

dc:subject wants a Literal as a value, so the URI from dmoz will show up as a Literal. I believe the Semantic Blog Demonstrator has a more full schema for blogging. Once it starts to work again, I'll see how best to indicate a blog entry's subject in a more RDF friendly way (ie, make the DMOZ URI a Resource and not a Literal).

Just adding more semantic web friendly triples.

A Trust Web Might Help

phil ringnalda dot com: TypeKey from a different angle

Phil Ringnalda writes:

Now, I'm not so sure that's the right angle to take. If instead of seeing TypeKey as a slightly more tolerable (because you only have to lie about your email address once instead of many times) way to implement registration, you look at it as way to implement comment moderation, it begins to look a tad bit better.


He's right about this. TypeKey alone won't stop any problems. We need authorization controls, which are above authentication. TypeKey is only a first step.

I am investigating using Semantic Web technologies to help with the authorization problem. There's a concept of building a trust web that can likely help here.


Use a authenitcation service (TypeKey or PGP signatures) to prove Seth is Seth.
Give Seth a URI. A foaf:mbox_sha1 might be good here.
Put blog comment triples into RSS feeds. The aggregators can pick these up and start to collect where Seth has posted, when, etc.
Some co…

Slight Change to RSS Blog Comments Module

RSS 1.0 and 2.0 Blog Comments Module

The current blog comments module does not render as RDF. The current usage:

<blogcomments:comments>

need to become

<blogcomments:comments rdf:parseType="Collection">

I have made this change, and along with the MTEntryIfComments plugin, I now have validated RSS 1.0 as RDF!

Just doing my part to add more triples to the world.

Of course, now question remains, how best to promote these (and other) triples to other blog authors?

Add Comment Triples To RSS

MT Extensions: MTEntryIfComments 2.0

MovableType has conditional tags that are true when entries and pings are enabled. The following tags allow you to test whether comments or pings exist.

MTEntryIfComments:
A conditional tag that is true if the current entry has one or more (or a specific number of) comments. Useful if you want to add content before/after a list of comments only if the list is not empty, or if you want to display different text based on the number of comments.

This is useful for rendering comment triples if they exist for a particular blog entry.

An External OWL Ontology Creates Order, Promotes Freedom

SemErgence: Comment on Subject metadata to Blog Posts

CaptSolo writes:

Regarding the hard part to make the UI for selecting categories - I think that most blog engines already have UI for entering the blog post categories.

Therefore, instead of adding semantic category to each post and having to create a new UI for that, we may add the semantic meta-information to the existing categories.


This is the route I initially travelled. I have a post that shows how to use OWL to map a blog post that has a particular dc:subject Literal to a OWL Class. For instance, declaring that posts that have a dc:subject of "blogging" are members of the :PostAboutBlogging class.

This leaves each blog owner the freedom to declare any dc:subject they want (literal or Resource) and to use an external OWL ontology to bring some order.

Add dc:references to RSS, Help The World

SemErgence: How To Make Blogging More SemWeb Friendly
Kasei writes:


While the dcterms:references might be easily obtainable from the HTML, I don't see any reason to make people parse the HTML over and over again, when it could easily be done once, and be immediately available as RDF. So here's a Movable Type plugin which does just that; just drop the tag into the RSS 1.0 template.


Thanks kansei! This is great. I'll add this in tonight.

If people do this, it'll make semweb applications that compile and operate on Resources that people are blogging about much easier. How does the semantic web community evangelize movements such as this? My guess would be to get the tool manufacturers to agree to modify their templates. Most blog owners wouldn't know how to manipulate their blog backend.

There is a Semantic Web Best Practices and Deployment Working Group from the W3. Maybe I'll talk to them about ideas for help.

Hacking MovableType, Here I Come

movabletype.org : FAQ


Q: May I modify the Movable Type source code?
A: Yes, as long as you do not redistribute the modified code without permission. In addition, if you modify any of the code and feel that your changes would be useful to all Movable Type users, we encourage you to make your work available to the community of users by sharing it on the independent plug-ins site, http://www.mt-plugins.org.


Looks like Six Apart doesn't mind too much if we hack Movable Type. Sounds good to me. I think we have enough ideas to keep us busy.

I think first up will be to include dmoz and/or yahoo category forests as selectable Categories. The modification of the RSS template to include the dmoz URI as a rdf:resource of dc:subject will be next. If I can do all that as a plugin, then all the better!

Oh, and I'm focusing on Movable Type because that seems to be pretty popular.

Subject metadata to Blog Posts

SemErgence: How To Make Blogging More SemWeb Friendly

Morten Frederiksen writes:


While it would certainly be nice, I think you'll find that the hardest part of (3) is agreeing on a taxonomy of subjects (or mapping between differing taxonomies). For this reason, something like dmoz:category or yahoo:index might be interesting.


I agree that it would be hard to map all that data. His suggestion of using dmoz and yahoo is great. The easiest thing would be to take any URIs found in the blog post (perhaps via dcterms:references?) and query for them in dmoz or yahoo. Of course, that would only be correct about 5% of the time.

It would be nice, then, to have Movable Type and other blog posting software, to give a quick tree view of dmoz and yahoo. A good blog posting software would save the favorite categories for quick retrieval (a sort of hot subjects collection).

I just upgraded to Movable Type 2.661. I don't believe it's Open Source, but wonder how much I can hack in?

OWL Shows Off

Re: Does Euler support owl:hasValue ? from Jos De_Roo on 2004-04-14 (www-rdf-logic@w3.org from April 2004)

I was very lucky to get help from Bejamin Nowack and Mr. Euler Jos De Roo. I asked the www-rdf-logic list about how to declare an object is a member of a owl:Class based on a Literal value of a Property. I was close, only backwards. The correct OWL would be something like:


[ a owl:Restriction ; owl:onProperty dc:subject ; owl:hasValue "blogging"^^xsd:string ] rdfs:subClassOf :PostAboutBlogging .
:PostAboutBlogging a owl:Class .
dc:subject a owl:DatatypeProperty ; rdfs:range xsd:string .


Then, with a fact like the following (easily taken from some RSS):


:blogitem a owl:Thing ; dc:subject "blogging"^^xsd:string .


I could tell:


:blogitem a :PostAboutBlogging .


I hope this at least illustrates my goal: to map different dc:subjects from different blogs into a locally understood set of owl:Classes. Then, provide a way to create Planet*.com sites with ad hoc aggregation b…

How To Make Blogging More SemWeb Friendly

After thinking about this for a little while, and with the discussions on this blog, I offer some suggestions to make blogs more friendly and useful to the semantic web.


Put triples describing comments and comment authors inside RSS - This would help with the comment spam problem and start to build a web of trust wrt posting to blogs. Movable Type's TypeKey system solves the authentication problem. By finding triples of the blog comments, I feel we can help with the second level to the problem: authorization.
RSS feeds should populate dc:references with URIs used in blog entry body - Typically, blog entries include one or more URIs in the body of the entry. By making those URIs explicitly available via triples inside the RSS, more accurate and interesting information becomes available. Specifically, the question of "What are people blogging about?" becomes easier to answer.
Encourage Blog authors to include dc:subject, and help define what might go in there - By startin…

RDF Should Make This Easy

Peter Van Dijck's Guide to Ease:

Peter, along with Danny, likes PlanetRDF the way it is. I completely respect that, and just try to point out that if implemented correctly, then the filtering using semweb technologies that I'm proposing would allow everyone to have their blogrolls just the way they like.

Each person would be able to create a personal PlanetRDF by declaring which dc:subject's they are interested in reading about. This allows for smarter Planet* because, as PlantRDF has shown, blogs cover many different topics.

If XFML is a way to accomplish this, then certainly RDF and OWL would, too! And thanks to help on #rdfig, I think I have the OWL statements to accomplish this. More soon.

It’s more ’sucks’ as in ‘wanted to grab attention’ and ‘could be better’

Raw: I don't think it 'sucks' as in 'blows goats'...

Thanks to Danny Ayers for chiming in. I agree that some of the appeal of Planet RDF is the semi-randomness of the entries. I was trying to bring awareness up for the fact that we have these nice semweb technologies, and a planetrdf.com, let's see if we can make them work to our advantage. Danny's filtering would be loose, while my filter would be strict.

Danny also mentioned an RDF Thesaurus, which definitely be better than string matching.

Though, if dc:subject can have an rdfs:range of rdf:Resource, I think we get more sem webbiness out of it.

Maybe I'll check out the planetrdf.com code? (sorry, couldn't find a URI for the code)

What Sucks About PlanetRDF.org

First off, let me mention that I think the idea of PlanetRDF.com is great, and I find it a very valuable resource.

My problem with planetrdf.com is that it syndicates all posts from blogs it has chosen, instead of those posts that deal only with RDF and the semweb. For instance, planetrdf.com might show posts on RDF and someone's new car. While I might be interested in that new car (especially if it's a Mini), I would like planetrdf.com to filter out items that do not have anything to do with the semweb or RDF. For a site that is all about RDF, I think we have all the tools necessary.

It should be straightforward for planetrdf.com to say, "This item (blog post) has something to do with one of the categories I syndicate. Let's show it.&quot. Also, it should be just as easy to say "This item is from a category that I do not syndicate, so I'll silently drop it".

In RSS 1.0 (RDF) there should be a triple to indicate an item's category. From the im…

Testing Comments in RSS

I found a Blog Comments Module for RSS, so I've hacked it into my Movable Type's index.rdf generation. My index.rdf is still RSS 1.0 (RDF).

First, I put this block in my template:



<blogcomments:comments>
<MTComments>
<blogcomments:comment>
<blogcomments:name><$MTCommentAuthor></blogcomments:name>
<blogcomments:email
rdf:resource="mailto:<$MTCommentEmail spam_protect="0"$>"/>
<blogcomments:ip><$MTCommentIP></blogcomments:ip>
<blogcomments:date><$MTCommentDate></blogcomments:date>
<blogcomments:body>
<![CDATA[<$MTCommentBody convert_breaks="0"$>]]>
</blogcomments:body>
</blogcomments:comment>
</MTComments>
</blogcomments:comments>


Next up, I will add a smidge of OWL to say that a blogcomments:email is the sameAs foaf:mbox.

Then, the next simple step is to get ever…

So Much For The P in PURL

IIR, the P in PURL.ORG stands for permanent. Well, tonight I couldn't resolve it (for whatever reason). DOH!

Fighting Comment Spam

My Movable Type install is now fighting comment spam with mt-blacklist.

This would be great if it reported spam hits in real time via XML-RPC to a central server. And, of course, if this plugin could then pull that list or check it in real time, all the better! This is a great use for P2P, or at least, automated collection and retrieval of information.

TypeKey and the Trust Web

After browsing Movable Type, I read that they have created TypeKey. TypeKey is, from the looks of it, a single sign on for blogs.

TypeKey primarily has been created to fight comment spam appearing in blogs.

I ponder how the semweb could help with this problem. There has been an effort to generate a trust web using semantic web technologies. Can this web be used to help fight comment spam?

My guess, though untested, would be yes. If blog owners require sign in before posting a comment, then an identity is collected. My blog system can then query the semantic web and get a trust metric for the ID.

TypeKey only provides authentication services. It leaves authorization up to the blog backend. This is a wise choice, and it leaves open an implementation for authorization based on the semweb's trust web.

I can see a authorization system based on the trust web, where users have certain trust metrics for posting to blogs. Note that a blog posting trust metric would be different than a &…