Creating a PHP Extension out of Redland and Raptor

Recovered from the Wayback Machine.

Since I’ve worked with compiles of Redland before (though long ago), and have Visual Studio 6.0 and am experienced with its use, I’m going to take a shot at creating the PHP extension of Raptor and possibly Redland for Windows. These won’t be a general purpose binary of the libraries. They will be built specifically as extensions for PHP. If anyone has done this before, with VS 6.0, warnings of any odd quirks would be welcome.

C is a powerful language, and I have a lot of respect for it. But I like cross-platform solutions. I like not having to deal with binaries from OS to OS. That’s why I bought into Java long ago, and Perl, PHP, and environments like Mono/C#. However, with each of these languages, you hear folks talk about how they’re ‘too slow’. You ask for specifics, and you’re told they’re ‘too slow’. You ask for requirements, and all you get is ‘too slow’.

Well, sometimes all it takes is a little extra effort, or a fresh perspective, and you might be able to get a cross-platform solution that could work. But you’ll never know because all you get when you ask for details is, “it’s too slow”. Well, chances are the native libraries will also be ‘too slow’, too. How will we know? Without a formal requirement of what’s needed, and specific performance test cases, there’s no way to judge if the native library will even make a difference.

However, I haven’t previously tried creating a PHP extension; this will be a chance to learn something new. These will be external extensions, though, hopefully dropped into PECL, which should be good enough. I wouldn’t try to get PHP to bundle these with the PHP distribution. Too much weight for too little return.


Unfortunately, I haven’t had success with this porting effort. I’ve put the call out to others to see if I can get some help, but at this time, looks like Redland is staying a Unix-based solution.

And I’ve also been reminded how much I really dislike working with C; about as much I like working with PHP, Perl, Python, and Java. Oh, and now C#.

Sorry to disappoint.


New for me

Recovered from the Wayback Machine.

You all probably know about this already, but version 0.8 of RAP or RDF API for PHP was released in June. Among other things, such as an integrated RDF server, RAP provides support for the RDQL (a query language for RDF), now a W3C submission–which you’ve probably also heard about.

One advantage of taking a hiatus away from a technology is that when you come back, all the things you wished for are now a reality. Of course, the disadvantage is that you’re saying things like, “Hey, cool! Look at this!” and everyone has seen it before.

I guess it’s just me, myself, and I in this little journey of rediscovery. That’s okay – at least the audience will agree with me. For the most part.


Mining passive social networks

Recovered from the Wayback Machine.

Marc Canter pointed to an upcoming conference, the 1st Workshop on Friend of a Friend, Social Networking, and the Semantic Web (also mentioned at RDFWeb and Danny Ayers). I wasn’t sure about a conference focusing primarily on Friend of a Friend, but looking through the Call for Papers topic list, the conference goes beyond the concept of friend of a friend, if we think of this as primarily focusing on people describing their current, active associations. It also has the potential to go beyond, I think, the current understanding of social networks.

Though social networks have past the hot, new meme phase, we’re still trying to figure out everyday uses for these beasties. Or I should say, I’m trying to find practical and unique uses for social networks. If they continue on as they are, they’re really nothing more than a combination of popularity contest, dating service, job search, mini-blog, and Usenet.

However, the thought of associations defined online in a format that can be mined using standard technologies has a great deal of appeal–and not just within the context of making associations for jobs or professional advancement. If we look at FOAF as a way of enabling open source social networks, and then extend the definition of social networks to include passive associations rather than, or in addition to, active associations–then we have something really unique, and rather exciting.

For instance, I’ve been trying for the last year to find out what happened to others who graduated in 1986 with computer science degrees from Central Washington University. The Alumni directory of CWU isn’t particularly useful because it mainly lists information about people who actively post some new events about themselves, and most of us don’t. I also don’t have access to classmates’ addresses (the Alumni association is wary of giving these out); even if I did, I would hesistate to send them notes because I wouldn’t be sure if these people would want the contact with their old classmates.

If I modify my FOAF file to include information about me attending Central Washingtion University and getting a degree in Computer Science in 1986, this is a node, albeit a passive one, in an existing social network comprised of people who I went to school with. Now if this information were specifically searchable, someone else wanting to connect up with fellow classmates would find my information, including my email address, and they could send me an email, saying hi.

How is this different than the means I have today to connect up with others of my old class? It differs in two important ways:

First of all, the information is publicly available and searchable on the Net. Not only that, but it’s also constrained to specific assertions: I have a degree in computer science; this degree is from Central Washington University; I received this degree in 1986. Someone searching on just these assertions would find my data, rather than get 10,000 records back with a lot of accidental associations based on random scraping of pages in Google.

Secondly, and most importantly, by putting this information into my FOAF file I am acknowledging that I am a part of this particular social network, with an implication that I would welcome associations from other members of this same network. It is a passive node in the network, true; but with FOAF/RDF/OWL and data mining, these passive associations can be converted to active ones in the future.

Orkut leaves me lukewarm and Friendster leaves me cold. Even the Semantic Web doesn’t do much more than elicit a relatively unenthusiastic “yeah, smart shit” out of me. But give me this functionality in the future and I’ll dance from dawn to dusk.

Hopefully Workshops such as this one in Ireland (oh, I’d love to go), will help make this functionality a reality.

Just Shelley Weblogging

Nudging Burningbird out of the way

Recovered from the Wayback Machine.

Another change I’ve made recently is add my full name to both my syndication feeds and to the weblog pages.

Perhaps I’ll be more careful with what I write, now that my name is so prominently attached to the pages. Or I’ll feel more ownership of what I write, I don’t know. But I want to begin the process of nudging Burningbird to the side; I am no superhero, and don’t need a mask to protect my identity.

Last week I received an email from a weblogger I’ve been reading some time, and I totally blanked on his name – I was so used to thinking of him by his weblog name. In fact, I’ve been doing this too much lately, an unfortunate consequence of using an aggregator such as Bloglines or Feedster.

Now that we’re nameless in aggregators, yet another step away from the person, does this make us a little meaner to each other? Do we hurt each other with more impunity? Dammit, I don’t know the names of half the webloggers I read. That doesn’t seem right.

In fact, I remember someone suggesting a while back that all non-anonymous webloggers attach our names to our syndication feeds, just so we don’t forget who the people are behind the links. That was a good idea and I should have made my ‘name’ change then.

I am Shelley Powers. I write a weblog called “Burningbird”. Now who are you?