Categories
RDF Technology Weblogging

A credible coder

Recovered from the Wayback Machine.

I’ve been silent in this weblog, primarily because I’ve been working on a couple of other projects. I had talked with a good, and wise, friend of mine about this effort and he made a point that I felt was valid: that I should implement those applications or functionalities I’ve talked about previously first, before taking on a new project. It’s all about credibility you see.

Of course, I could point that I’ve delivered numerous tricks, tips, code fixes, not to mention how-tos and tutorials and what not, as well as helping to install 109 weblogs, and answering whatever questions others have asked. I had assumed that this gave me some credibility; Still, I understand what he was saying: complete applications shout where help and tips and fixes only whisper.

So I’ve been working on three major projects. The first is a ‘comment package’ that has much of the nifty comment functionality out at Burningbird, wrapped up into a package that could be used by people using other weblogging tools. This includes live preview, spell check, and post-edit functionalities. I have it finished for WordPress, but I’m also creating a Movable Type and Textpattern backend. These latter are for a couple of friends that have asked for the functionality. More to the point, though, I wanted to demonstrate that one can extend the tools outside of the traditional plug-in environment, and with that extension, make the functionality available to a variety of tools because the data and functionality between the tools is so similar.

This one is almost finished, but incorporating these changes into the templates for the other tools is a bit tricky because they are a changing, not the least because of that nofollow nonsense.

The second project is to provide updates to the material in my chapters for the Practical RDF book. This has been interesting and fun, and I am pleased to see a maturity in both specs and data. I’d like to see the technology a little more easily embeddable, which means lightweight language specific frameworks. But they’re coming.

I’m actually using the technology that I’m covering above in the final project, which is a variation of the Poetry Finder I talked about long ago. However, rather than just poetic annotation, this application will allow one to specify any field of data, such as legal, political, genetics, whatever, and annotate it using RDF statements, which are then added into the MySQL database for a specific weblog post.

It’s not going to require that users understand RDF, or even that developers understand RDF. The developers will be able to define a set of statements they want to capture as a model, and this will be used to generate form statements of the nature of _______________ issomething _____________________. An example would be “bird” IS METAPHOR FOR “freedom”, with the issomething provided by the model developer, and the values provided by the user.

Then, when a post is accessed (either WordPress, or Movable Type implemented as a dynamic PHP weblog) with an “/rdf” extension, .htaccess rules will trigger functionality that will deliver a complete RDF/XML output of all the data that is defined for a resource defined with the URL of the article. So, a specific article could have poetic and political annotation, and both would be combined into one model and returned when the URL is accessed with the “/rdf” extension.

Sure the statements defined using this extension are simple, but most models will consist of simple assertions. A case in point is the example data that I’m using at Practical RDF’s original Query-o-Matic: a listing of all terrorist acts since 1988. Simple, yet; but still managing to capture a lot more context that the other folksonomy/tags implementations I’ve seen.

The tricky part on this is getting the PHP together to maintain the backend services. There is RAP (RDF API in PHP), but it doesn’t implement SPARQL (the W3C RDF query language spec) yet, and I had hoped to use this query language.

My hope is by the time I’m finished with these projects, WordPress 1.5 will be out. I’ll then follow through on Wordform, but based on the final 1.5 product, not one in process. It will also be less ambitous than my original intent, primarily because its for my own use and as a curiousity to others — I don’t expect much interest in it.

What it will have is:

1. All data operations are pulled into a separate file rather than have bits and pieces of SQL scattered about. This makes it a whole lot easier to make changes, especially to the data model.

2. I’ll most likely be altering the comment and trackback spam prevention to incorporate my own ideas, which have shown themselves to be working relatively nicely in Burningbird. I’ve talked about these previously in this weblog.

3. I’m going to change the conditional checks in the code. All of them are as follows:

if ( ’spam’ != $approved ) {

In other words, the literal is first, the variable second. In all my years of programming, you put the variable first, because if it’s null (hasn’t been assigned a value) the conditional fails at that point without having to check the second value. I wasn’t aware that PHP differed in this regard, and I have no idea why the developers of WordPress do it this way. But it bugs me, so I’m changing them for no other reason than it bugs me, unless someone pops in with the reason for this, in which case I won’t. Who knows, maybe PHP does handle this all differently.

4. I’m making the admin more dynamic. Well, I’ve already made this change. With this, you can add a new comment or post status, high level menu item, and individual post menu item by updating tables, as these will not be table driven. In line with this, the semantic data extension talked about earlier will be incorporated into Wordform’s administration pages, as well as my existing fullpage preview functionality, per comment moderation, and post status of ‘insert’.

I won’t be adding multiple weblog support, primarily because it’s a lot of work, I won’t be using it, and Wordform is mainly for my use. The separation of SQL into a separate file should help with this if I ever get energetic about this application again.

When finished with all the various application, I will put them online as GPL open source for others to do with as they will. I’ll be posting on these changes, as well as links to the code, at Burningbird rather than this weblog; except for the Practical RDF book updates, of course, which will go to the book weblog.

Categories
RDF

PHP API for SPARQL?

Recovered from the Wayback Machine.

Does anyone know of a PHP implementation of SPARQL? Not the adorable kitten who I happen to be god-mother to (and who I can’t connect to at the moment); the W3C RDF/XML query language.

I have my old Query-o-Matic that works — barely — using RDQL, but need to create a updated, hotter version.

Categories
Semantics

Semantic web enabler of the year

If there was a Semantic Web Enabler of the Year award, I would nominate the site rdfdata.org (and the creator, Bob DuCharme) daily, and twice on Sunday. Especially when you see data such as details of terrorist acts since 1988, organized in OWL. My jaw dropped when I looked through it. My, my, what the warbloggers wouldn’t give for query tools on this data store. And I wouldn’t know about it if it weren’t for rdfdata.org bringing all these disparate data stores together in one spot.

As I progress in my update on the chapters in the book, I plan on using this site to find data for new examples and demonstrations, primarily because it deserves all the recognition we can give it.

Categories
RDF

Folksonomies

Recovered from the Wayback Machine.

This isn’t a post as much as it is a placeholder for some articles I want to examine and write about later, after I finish a couple of promised applications and the rest of the updates for the chapters here.

I’m not quite sure what to make of ‘folksonomies’ –simple user defined tags within the same namespace. I hear the word ‘grassroots’ though, and have a knee jerk reaction to reject the concept out of hand. But I want to see why people are jumping up and down about this, so putting this in for a later, closer look.

Links

WikiPedia

paper

Categories
RDF Writing

2005 Errata and book updates: Chapter 1

I still like my analogy to the elephant and the blind men, in chapter 1. People still see RDF, and more generally, the Semantic Web (or my preferred, the lowercase semantic web), from different viewpoints, and with different expectations. That hasn’t changed, and by the nature of the beast, never will.

Good. Keeps life interesting.

The W3C RDF working group has issued new and revised versions of the RDF specifications. This doesn’t impact on Chapter 1 that much, but will in the other chapters, and where differences in the writing as compared to the specifications arise, I will make a note.

One change in the book is that any reference to the URI yasd.com has no relevance to anything actually existing. I dropped this domain when it was so badly overrun with email spam, it was no longer usable. As for the URLs in the chapter, those related to the specifications are:

RDF/XML Syntax Specification (revised)

RDF Vocabulary Description Language 1.0: RDF Schema

The RDF Primer

Resource Description Framework (RDF): Concepts and Abstract Syntax

RDF Semantics

RDF Test Cases

The graphic depicting the differences between RDF/XML and XML by Semaview no longer exists; sorry about that. However, I do believe my textual description does a decent job of explaining the difference. Comments, though, are welcome on this.

Page 8 references the ‘new’ ontology language work. Well, this group released specifications the same time as the final specifications were released for RDF, and can still be found here.

As for the rest of the chapter, most of the material in chapter 1 is more of a introduction for the rest of the book, so I’ll be updating the material as we come to it in the other chapters.