Categories
Photography Weblogging Writing

Big Water

Recovered from the Wayback Machine.

Pretty tired today, and no, it has nothing to do with the peace party that happened in the comments to the last post. The participants worked things out for themselves, which is as it should be. I’m not sure what Happy Tutor is doing and where he’s taking it, but he’s a big boy and can handle burning material. Since he’s taken said burning material elsewhere, I am content.

I’m currently working on three articles for O’Reilly and some other promotional activity for the Practical RDF book. Additionally, I’ve been out virtually knocking on the doors of several local and national publications trying to re-awaken my moribund writing career. The end result of this activity is that I need to write. A lot. Knock a bit more, write a bit more, and repeat.

I also need to drop some of the bad writing habits I’ve picked up with weblog writing, such as the assumptions, the higher level of familiarity, the creative spelling and sentence construction, the use of ’so’, and the other quaint little short-cuts that fit this format, but not necessarily others.

So … I’m organizing my photos into online albums and am surprised at how many there are. Once finished, I need to select the best 50 for one portfolio, and then the best 20 of that number for another portfolio. However, when I think of my photos in something like a portfolio, my view of them changes and I become more critical of the work. It’s hard to explain but when you look at a photo one way, it can look good; but look at the photo from a different perspective – and I’m not talking the photo’s perspective – and it doesn’t quite work. At the rate I’m going, I’ll be lucky if I find five that work.

This phenomena happens with writing, too.

I’m planning a little trip South and along the Gulf in the nature of a combined vocational challenge/public interest jaunt. In September when the kiddies are in school, the weather cools, and the gas and motels are cheaper.

I don’t think I’ve posted the following photo previously. It’s the Chain of Rocks Bridge again, part of the old Route 66. I’m not saying the photo’s a portfolio member, but it’s cheerful, don’t you think? Imagine Nat King Cole singing in the background, and being in a convertible wearing a soft summer dress and iron maid bra, breeze blowing your hair in the warm, humid night. Get your kicks on Route 66.

rt66bridge.jpg

Categories
Writing

I am Alice or writing through the looking glass

Recovered from the Wayback Machine.

Sometimes enough disparate elements come together and you have to write about it because to do otherwise would be to toss fate’s good idea down the drain. So I find myself writing about writing and weblogging and self-censorship, when I think I should be writing about a girl and a bicycle and trees with eyes.

Last week I wrote about Fight or Flight, an essay about me coming to terms with how I deal with the negative comments that can occur with much of my writing – usually my technical writing, though I’ve attracted a few wasps with my political writing. I mentioned in the essay that I was inspired by another post but didn’t want to link to it because I didn’t want to bring relationships into a story, which ultimately was about my own journey for understanding. Unfortunately, the linkage occurred anyway, but fortunately, it didn’t leak into my writing – the words were accepted at face value, on their own worth, for good or bad.

There are times, though, such as now, when I’m not only inspired by others’ writing, I link to it because they’ve started a conversation and I’m only one voice in it. I am not so clever as to write with multiple voices in one writing; I can only write in my own.

Happy Tutor’s been writing quite a bit about the anger, aggressiveness, and the flaming that can creep into our conversations at times: here and here. In particular, one essay highlighted the conflict of differentiating between the flames of passion and the flames of cruelty and how, at times, the only difference between the two is one of perception. He writes:

Any time you talk about gender differences in a profession, you might as well expect a bashing. All I would ask, if you are seething with indignation, if your selfhood is now in play, is a) discharge yourself fully b) respect other people’s right to be wrong and c) recognize that we are all fearful and sometimes immobilized on this ground strewn with landmines. So, in other words, make allowances, if you can, for other people’s vulnerability, as you would hope they do for you – still, discharge the emotion fully. Any one with a good maternal instinct, or paternal, for that matter, is welcome to bind up the wounds we inflict on one another. The truth is just a word for what might emerge if we had the courage of our convictions, and the courage to learn by putting them at risk.

For a woman who writes from a platform of passion, I see these words as a benediction and a bane. If selfhood is engaged then we have to recourse but to expend our emotions, but does this mean we should not allow our selfhood to be engaged? Or does this mean, when we do, we have no option but to respond honestly, even passionately if passion is how our truth is conveyed?

I was considering this and not sure if I wanted to write about it when I received an email from Elaine about a posting she wrote in response to a Chris Locke diatribe, written in response to another weblogger’s posting. It would seem that the recipient of the Rageboy writing was so upset by it that she pulled not only the one posting, but her entire weblog.

Elaine writes Shame on you for shutting down a female blogger’s weblog:

So when bad boy Rage Boy spoilingly shuts down a fellow female’s blog for fun and fame, I say shame, shame on you, you sad, bad, boy blogger. Is that what blogging is about? Slash and burn? If you don’t like it kill it? (Sounds an awful lot like Dumbya, doesn’t it?)

I couldn’t read the original post that set Rageboy off, but I did see a piece of it at Blog Sisters. In it, the writer, Lindsay, talks about seeing a personal ad that read, in part, SWF, 40, attractive. Looking for man aged 40-55 for friendship, maybe more. Of the ad, and the need for relationships in general, she wrote:

t’s not so rare for me to talk to someone, who is about my age and has never had a relationship, and hear them saying “I feel so lonely. I wish someone wanted to be with me.” I even read in one person’s online journal that he wanted someone “to fill this hole inside of me.” The confusion of it all is so crazy, the thought that we need someone to fill the gaps in our lives, that we cannot live fully until we find our “soulmate” who is going to make us feel complete, and we can finally be happy and carefree and la la la.

I think most of this is due to laziness and insecurity. People don’t want to do the work on themselves so that they can feel complete independently. They want someone else to do it..

The problem is not that you haven’t found “the one.” The problem is that people are often too lazy to spend much time working on themselves alone, when they have the chance to do so, before they end up in a relationship and a situation where they will almost inevitably end up codependent.

There is much to agree with in Lindsay’s writing and I’ve written before that other people cannot make us whole, we can only do this ourselves. However, regardless of our wholeness or not, to see loneliness and react, at a minimum, without understanding and with intolerance is just as ‘ugly’ as to use words that overtly burn on their reading. It’s easy to condemn and criticize the woman in her 40’s who is lonely and seeking companionship, when one is not in that person’s shoes. Or, in Chris Locke’s shoes, worn loafers of a man in his 50’s, also lonely, always attracted to the flame that will ultimately burn him.

I, too, am lonely, without the closeness of a dear companion, a warm body to hold at night, a warm soul to hold during the day; I also am my 40’s and on the shady side of life, but where the lady in the ad sought companionship, I submerge my loneliness in my writing, and use it to give my writing depth. Does this make me superior? Or just different? Regardless, there’s pain in loneliness and to dismiss it with jejune assumptions of laziness is to invite response. Yes, even passionate response.

In Elaine’s comments, Lindsay wrote:

I didn’t actually choose to run. I had been thinking about shutting down my blog for awhile, because I’d been getting sick of all the nastiness going on in the blogosphere, especially on forums. Nothing like this had happened to me before though, and I figured it was the most opportune time to do what I’d already been planning on doing anyway.

I find it amusing how throughout this whole thing, there have been many comments about my age and implications about my lack of maturity and/or life experience, while at the same time the “adults” are the ones behaving in a way that is reminiscent of recess in Kindergarten. I’m sorry, but you’ll have to play without me.

I’m not defending Chris – as Lindsay wrote in Elaine’s comments, he also attacked her beliefs in addition to her writing, and I can’t defend that. But I can also understand his anger – easy for you to talk about laziness babe, when you’re not the one hurtin’.

The issue, though demonstrated effectively by this interchange, really has to do with that civility that Happy Tutor writes about. The problem with civility, though, is that it’s so open to interpretation. Some would say that being civil implies agreement, others that the discussion stay passionless and non-personal, and still others that anything goes as long as the parties agree to engage at a certain level.

It’s not easy to figure this all out. I think of reducing our writing in disagreement to assertions that begin with “I beg to differ”, and my blood runs cold; we have sold the heart of us, traded it in kind for polite political correctness. One person’s ugliness, is another’s beauty, and perhaps that’s what Tutor was saying – we must continue as we start because to do otherwise, is a lie.

In a technical post that was almost guaranteed to generate flames, I wrote about Pie/Echo/Atom and a recent seeming rejection of using RDF/XML for its primary format. How odd that a topic so seated in technology can be so potentially explosive, but any who know the players should, at this point, be shuddering at the implications. In this case, though there was disagreement and a combination of players that should have resulted in burning bits of cinder raining down on all – the conversation stayed civil. Not without bite, and not without passion, and there were hooks aplenty on which to launch flames, but it stayed civil.

I consider this thread a triumph for all the participants, but would others point to it and say, “See, lack of civility”?

This issue is only compounded because so many of us know each other, either through months, years of communication through our weblogs and phone calls and emails, or even in person.

Happy Tutor uncannily, or perhaps knowingly, also writes on self-censorship because of assocations we make with each other. This follows from Steve Himmer’s essay, where Steve talks about the impact knowing our audience has on us:

I’ve been thinking about an aspect of reading weblogs that I hadn’t considered before as I approached them as literature and whatnot. Namely, what difference does it make to our reading(s) when the blogger in question is an offline acquaintance, let alone someone we consider a friend.

So we lose the anonymity, and gain richer friendships, suggesting that we are forced (or feel forced) to censor ourselves more closely, be more careful about how we write ourselves and, perhaps more importantly, how we write about others…This suggests a dovetail between questions of audience and issues of acquaintance, but that makes sense: part of the shift from anonymity to known entity we undergo as webloggers as we become more and more social, on- and offline, corresponds to a shift our audience undergoes from nameless, faceless readers (or, when we begin writing, no readers) to known and named readers.

Tutor responds with:

In the course of this perceptive and congenial post, Steve suggests that as we become better known face to face, and via email, among our blogging circle, that we necessarily begin to censor ourselves, for fear of hurting those we now know, and for fear of the repercussions in the larger social world. Some might say that such self-censorship is a step towards civility. It can also be like “coming out,” an act of courage – or stupidity.

(Neither edge of Tutor’s sword is dull. I wonder if this is natural, or if he deliberately hones the safe side to keep his readers from experiencing comfort? )

Steve and Tutor both make a point: unlike other writing, the audience we have here is not that unknown Reader, but people we have come to know. Does this effect our writing? How can it not? But does this, then, lead to a lie – that unexpressed emotion that Tutor wrote about earlier?

Returning to my essay Fight or Flight, and my hesitancy to link to another weblog post. I did not link because I did not want to write to an audience of close friends – I wanted my audience to be Reader. I did not want to join a conversation, or invite a conversation, unless it had to do with the words, not past associations. This isolation is almost unheard of in weblogging, but it’s essential for writing. Writing centers around the words and the intent, the passion and that pesky truth – not friends’ expectations and feelings, old baggage and civility.

I hesitate now before I link to another weblogger’s writing. I think to myself, “Will this person want to be invited into this conversation?” and “Do I want this writing to become a conversation?” If I can’t unequivocally answer either of these questions with Yes, then I am not going to linclude a reference to their writing. Yet, this is considered uncivil. Do we choose writing, or do we choose community?

This would be all so much easier if we had thick skin and little sensitivity; but then we’d also be lacking in empathy and passion, joy as well as sorrow – pleasure and pain; what good the writing without the wonderful highs and lows?

I know one thing without ambiguity: I am a writer. Anything else, is and must be secondary; and the consequences of same is, all too often, more loneliness in which to feed the muse.

desertalone.jpg

Categories
RDF Writing

Even chickens can learn RDF

In a clever play on my For Poets weblogs, specifically my Semantic Web for Poets – a warped menage a duo of technology and art with images of rusting robots and silent metallic forests with moblogged fallen trees – Danny Ayers has created variations on the theme, all based on my RDF book.

There’s:

RDF for Woodcarvers
RDF for BellRingers
RDF for Chickens
RDF for Painters

…and others, all with their associated photographs.

And they say technical people are smart but not artistes. Ha! They say, let them say!

for-woodcarvers.jpg

Categories
RDF Writing

RDF and Grounding

I was so caught up in the Pie/Echo/Atom stuff yesterday that I missed Jon Udell’s discussion about my book. He wrote:

To get a better picture of how the CVM works, I read Shelley Powers’ very well-written new book, Practical RDF. I read it online, actually. Very cool to be able to do that. (Tank, I need a pilot program for a B-212 helicopter.) My eyelids fluttered for a while, and when I opened them again it was Chapter 10: Querying RDF: RDF as Data that emerged as pivotal.

Working through the chapter he finds:

This is cool. RDF triples are relations, and here we see that they’re amenable to relational processing. I can grok that.

Well, that made my morning. To hear others say they liked the book is a goodness, but when someone works through one of the chapters, and details an ‘Aha!’ moment, well, that’s what a writer lives for.

Jon also has some tough questions on grounding. What I should do is get with Simon St. Laurent and write an article on namespaces – the Meaning of it All – he from the tree structure, me from the graph point of view.

Categories
RDF Writing

RDF: Ready for Prime Time

Originally published at O’Reilly, and recovered from the Wayback Machine.

Not long ago, Marc Canter, one of the early founders of Macromedia, talked about RDF and the Semantic Web in his weblog. Specifically, he wrote:

“I’ve been spending more and more time trying to grok the RDF folks. I have to say I like what I see and hear, but what I don’t see are many apps and services actually up and running and working.

We have a saying over here: “put up or shut up.” I’m still looking for two different RDF apps or services to work together in some meaningful way. Then bring on the books.”

Considering that I’m “bringing on a book” on RDF this month, I thought it appropriate to answer Marc’s plea for meaningful, working examples of RDF apps and services, especially those that work with other RDF-based services. My problem, though, is that I have only a limited amount of time and space in this article; I can only cover a few of them. However, best to just start, but first, a little digression into RDF and XML.

RDF/XML: The Syntax That Could

You probably know that RDF has both a defined model as well as a preferred serialization, RDF/XML. In many ways there’s been far less criticism of RDF than there has been of the RDF/XML syntax. Tim Bray, one of the creators of XML has said:

“Speaking only for myself, I have never actually managed to write down a chunk of RDF/XML correctly, even when I had the triples laid out quite clearly in my head. Furthermore, once again speaking for myself, I find most existing RDF/XML entirely unreadable. And I think I understand the theory reasonably well.”

Tim even went so far as to offer his own version of RDF/XML, which he called RPV.

I’ve found that the more a person works with markup such as XML, the more they dislike RDF/XML. I’ve also found that no matter the alternative proposed, someone else will dislike it just as much, which makes RDF/XML a bit of a “damned if you do, damned if you don’t” proposition.

Ultimately, if RDF is ready for prime time, then so is RDF/XML. Regardless of our views of it, it’s official, it’s real, and it’s here now. So on to the RDF applications, starting with the basics: the APIs.

RDF APIs

For every programming language you’re interested in, there’s most likely an RDF API and a library implementing it. If you’re interested in Java, one of the most popular Java RDF libraries for RDF is Jena, from HP’s Semantic Web Research Lab. The current version of Jena is 1.6.1, which is the one I’ve used, but there is a beta-release of a new version (Jena2), and it’s the one you’ll most likely want to investigate. As you’ll see later, Jena is used for several utilities and applications.

For those interested in Python, the most popular RDF library — which also includes a triplestore with several different backends — is Daniel Krech’s RDFLib. Want something a little more unusual? Try Wilbur, a Common Lisp RDF library, written by Ora Lassila, one of the creators of RDF.

For those who work primarily with Microsoft development environments, there is a C# RDF Parser called Drive, which provides an API to parse RDF/XML into an in-memory RDF graph for manipulation. It’s fully compatible with the .NET platform, and it can also be used with the open source variant of .NET, Mono.

If Perl is more your thing, there’s Ginger Alliance’s PerlRDF, a library I’ve used in several small applications at my site. And other, popular applications like Six Apart’s weblogging application, Movable Type, are also using it. Six Apart extended the PerlRDF module by creating a new module, XML::FOAF, which enables autodiscovery and processing of FOAF files. FOAF, or Friend-of-a-Friend, is an RDF vocabulary for defining hierarchies of acquaintances and is now one of the most popular uses of RDF/XML.

If you want support for multiple RDF languages as well as a more sophisticated framework and data persistence, you’ll want to check out Dave Beckett’s Redland. In addition to providing a persistent data store, as well as multiple language support (Python, Perl, Java, Tcl, and Ruby), Redland also provides support for an independent RDF parser called Raptor. Raptor has been used, independently, in other applications, including several FOAF apps, as well as RDF Gateway, a commercial product I’ll discuss later in this article.

RDF Vocabularies

FOAF is one of the more popular vocabularies of RDF/XML. Just a quick perusal at the FOAF web site will show dozens of uses of FOAF in tools ranging from a FOAFBot, created by Edd Dumbill and used to provide services within chat forums, to uses of FOAF in desktop tools within the OS X environment for managing contacts. My own FOAF file is at http://weblog.burningbird.net/foaf.rdf, and consists of pointers to friends I know online, though the list is incomplete.

The beauty of FOAF lies in its simple way of describing personal information, including our work and academic affiliations. The power of FOAF lies in its ability to list acquaintances who themselves may have FOAF files. Over time, this interlinked network can expand until it’s a simple matter of mapping out who is connected, directly to indirectly, to each other.

Another RDF vocabulary in popular use is RSS 1.0. Webloggers and other online publications use RSS 1.0 to provide information about updates at their web sites, including the date of the update, the author, an excerpt of the material and so on.

A third RDF vocabulary is the RDF/XML used to describe Creative Commons licenses, a new way to provide more detailed information about use of copyrighted material.

All three vocabularies use, in one way or another, elements from the Dublin Core Metadata Initiative (DCMI), as defined in RDF/XML. However, these vocabularies aren’t the only ones available using RDF/XML. In fact, the W3C uses RDF/XML to define the underlying syntax for its own Web Ontology Language (OWL) effort. With RDF providing the underlying model, and OWL adding higher-level ontology support, it’s only a matter of time before a host of sophisticated, domain-specific ontologies spring up, all of them interoperable because of the underlying use of RDF/XML.

In fact, there’s a host of tools and utilities people can use right now to work with RDF/XML directly or with OWL.

Tools and Utilities to Work with RDF/XML

As much as I like RDF/XML, even I’ll admit that it requires time to understand and work with, and not everyone has either a desire or an inclination for this effort. Thankfully, there’s plenty of tools available to allow people to manually create or read RDF/XML.

The most commonly used RDF utility is the RDF Validator, a tool to check your RDF/XML to ensure that it’s valid, as well as to generate different views of the model data. I find that when working with an API, I’ll use the Validator to validate my sample RDF/XML, view the model to ensure I’ve created the appropriate one, and then create the triples to use as a pattern with my RDF/XML API calls, in whatever language I’m coding.

Another handy utility for working with RDF/XML is the BrownSauce RDF Browser. This web application uses Jena. It can open an RDF/XML document and provide easily readable and hypertext-linked pages of the RDF data contained in the document. Best of all, the browser also opens any associated RDF Schema documents that provide information about the RDF elements themselves, through the relationships described in the schema, and through comments provided with the schema elements.

A long-time advocate of RDF and a friend of mine, Danny Ayers, has been busy at work on Ideagraph, a tool for visually mapping ideas and then generating RDF/XML from the results. In addition to this effort, the tool can also act as a RDF-based weblogging tool, as well as an RSS aggregator.

Isaviz is another popular visual-editing tool for creating, importing, and working with RDF documents in RDF/XML, and within other serialization formats such as Notation 3 and N-Triple format. It’s particularly useful when you’re creating a new RDF vocabulary and want to use a visual tool for this effort rather than trying to create the vocabulary in RDF/XML manually. However, I prefer to use the tool to work with existing RDF/XML documents, particularly larger ones, because the tool has a way of being able to zoom in on components of a model, to create snapshots of particular paths, and to query on specific elements. In particular, if you’re documenting an existing RDF/XML vocabulary, Isaviz can be useful for providing snapshots of particular instances of data.

Most of these tools are geared more for working directly with RDF/XML vocabularies. If you’re working with an ontology instead, then you must look at Protege, from Stanford University. This tool not only allows you to define an ontology using an easy-to-use user interface, you can then create forms to capture the ontology data. Once the forms are defined, the tool can then be used to capture instances of data based on the ontology. Currently. effort is underway to provide support for OWL files, and mapping between Protege’s own ontology language and the W3C language. Regardless, the data captured by Protege can be output in multiple formats, most particularly RDF/XML.

Peripheral RDF Support in Other Tools and Utilities

Of course, tools that focus purely on RDF, whether to create RDF or to consume RDF, are handy when you’re starting work with RDF–but what about RDF in the real world?

Probably one of the first uses of RDF/XML was by those involved in the Mozilla effort, which still uses RDF/XML for all of its automated Table of Contents data and processing. In fact, it was through my interest in the Mozilla development environment that I became exposed to RDF/XML (see www.mozilla.org/rdf/doc/).

If you’ve worked with Linux then you’re most likely familiar with RPM, a way of packaging Linux applications for easy installation. What you may not know is that RDF has been used with RPM to provide metadata about the package being installed. A utility created by Daniel Veillard, rpmfind, uses RDF to discover RPM installations on Rpmfind.Net, a database of RPM packages maintained by the W3C. Though the original creator of the product is no longer maintaining rpmfind directly, the source is now located at sources.redhat.com, and I’m still using rpmfind for my own server.

Earlier I mentioned Movable Type and its use of RDF for autodiscovery of FOAF files. The application also uses RDF/XML to annotate weblog entries with trackback information, which can be used to document links from one weblog to another and provide reverse link information. This same functionality has been isolated for use by other tools, weblogging or otherwise.

Spring, a Mac OS X desktop tool created by Robb Beal, provides support for dragging and dropping FOAF files. Find an FOAF link in a web page? Click on it and drag it to Spring in order to automatically transform the FOAF contents into the tool.

As ubiquitous as RDF is becoming, creeping its way into a favorite tool or utility near you, the power of the RDF model’s inferential capability is particularly apparent when you look at some of the larger applications that are being built on RDF.

Larger Applications

People at MIT are working on an application, called DSpace, which will maintain a digital repository of information. The application is geared to any larger organization such as a college or university that wants to maintain a searchable index of publications from its members. DSpace is a freely available, open source application that makes use of an ontology, Harmony/ABC and RDF to maintain the historical subsystem. RDF Gateway is a Semantic Web application server that uses RDF as the core of all of its services. With the Gateway, you get access to a persistent data store that can be queried using an inferential engine that goes beyond normal SQL-like queries. Included with the application is support for server-side scripting similar in nature to both ASP (Active Scripting Pages) and JSP (Java version of same).

Siderean Software’s Seamark is another commercial application that makes use of RDF and a persistent data source, but Seamark focuses primarily on site navigation. Plugged In Software’s Tucana Knowledge Store provides sophisticated knowledge-based querying of large stores of data, again based on RDF.

These companies are just the first to start looking at RDF and the RDF data model for use in large-scale, sophisticated applications. And then there’s the Semantic Web.

The Semantic Web

It’s funny in a way, but I can sit down and rattle off a dozen uses for the RDF data model and the associated RDF/XML without once mentioning its primary purpose, which is to provide support for the Semantic Web efforts. All uses of RDF for any purpose are good because they increase our familiarity with the specification as well as the syntax. In addition, applications that increase the level of RDF/XML out on the web add to the pool of accessible data on which we are slowly building the Semantic Web. Through the use of RDF, we know that all of the vocabularies are compatible.

Beyond these good and practical uses of RDF I’ve described earlier in the article, and unlike XML or HTML or XHTML, the RDF model, and its associated syntax, brings with it the ability to define statements about data, rather than to just record pieces of data. Add to this the use of OWL, and we begin to have the ability to mine for knowledge, not just words.

Consider poetry. My favorite poem is Walt Whitman’s “Song of the Open Road”, with its friendly and positive imagery of life as an adventure, a road to follow with glee. In fact, the use of “road” as a metaphor for life and life’s journey is quite common in poetry. (See an excellent article, “Poetry of the Open Road.”) However, it’s the very use of imagery and metaphor in poetry that defeats traditional web discovery techniques.

Currently we have the ability to use keyword searches within search engines such as Google, and with this we can find poems that mention the word “road”. This is all well and good, but in the future, as the use of RDF and RDF/XML expands, we’ll be able to do searches that not only provide links to poems that have used “road”, but also know which poems use the word as a metaphor for life, which have used it metaphorically to describe freedom, and which are just talking about roads as roads.

Eventually as RDF insinuates itself throughout the web, as it has already started, you’ll be able to search on “road” and “poem” and “metaphor for life” and not get this article back as a result. As much as I like the thought of people reading this article, that search result will be a good thing because this article is not about poems, metaphors, and life. It’s about RDF and how it is now more than ready for prime time.