Now that’s Semantic Web(?)

Danny pointed out SemaView’s new calendar based product, Sherba, congratulating them on a …winning application of SemWeb technologies.

The company is using the iCal RDF Schema to create a windows-based application to manage and share event information through an interconnected calendaring system. My first reaction when I saw “window-based application” is to wince at the use of semantic web to what sounded like another Groove-like product that just happens to use RDF/XML for the data. Or does it?

According to the developer documentation, though the company’s application generates the RDF/XML data, it’s not hidden into the bowels of an application only accessible through archane, proprietary rituals or other perversions of openness. (And yes I’m including web services in this because to me, open means open — wide out there baby, just like this web page is. )

There are web services available, but more importantly to me, me being a person who believes that the semantic web is about data rather than applications, the product produces lovely RDF/XML files. Crawlable, open, plain view, accessible RDF/XML files.

Better, it gets better. Not only does the company produce the RDF/XML, it allows organizations that use the product to register their calendars in a global search directory called SherpaFind. Now you can search for events based on a set of parameters, view the calendar, download it, or best of all, directly access the RDF/XML for the calendar.

This is open. This is data within context, though Tim Berners-Lee hates that word . This is data that’s saying: excuse me little bots, sirs, kind sirs, but this data you’re slurping up isn’t just a mess of words waiting to be globally gulped and spit out in a bizarre search based on weights and links; it’s data that has some meaning to it. This data is calendaring data, and once you know that, you know that a lot.

Having said this, though, some of what I read leads me to think this isn’t as open as I thought at first glance. First, if I read this correctly, the Sherpa calendar information is centralized on the Sherpa servers. I’m assuming by this, again with just a first glance, that Semaview is providing the P2P cloud through which all of the clients interact in a manner extremely similiar to how Groove works. If this is true, I’ve said it before and will again — any hint of centralization within a distributed application is a point of weakness and vulnerability, the iron mountain hidden within the cloud.

Second, I can’t find the calendar RDF/XML out at the sites that use the product. There are no buttons at these sites that give me the RDF/XML directly. Additionally, trying variations of calendar.rdf isn’t returning anything either. Again, this is a fast preliminary read and I’ll correct my assumptions if I’m wrong — but is the only way to access the RDF/XML calendar information through SherpaFind? How do bots find this data?

Let’s compare Sherpa with that other popular use of RDF/XML: RSS. I generate an RSS 1.0 file that’s updated any time my weblog pages are updated. You can find it using multiple techniques, including searching for index.rdf files, following a link on my page or using RSS autodiscovery. You can find my site originally by me pinging a central server such as However, most of us find each other because we follow a link from another weblog. If we like what we read, we then subscribe to each other and use aggregators to keep up with updates. The golden gateway in this distributed application is through the links, rather than through an organization’s P2P cloud.

This is almost a pure P2P distributed application, enabled bya common vocabulary (RSS 1.0), serialized using a common syntax (RDF/XML), defined using a common data model, (RDF). Since it is dependent on the Internet and DNS, there’s an atom of iron in this cloud, but we can’t all be perfect. The only way to break this connection between the points is to take my site down (micro break), in which case there is no data anyway; or if we take the Internet down (macro break).

When you have a centralized cloud, like Groove’s, then you’re dependent on an organization to always and consistently provide this service. For Groove the product to work, Groove the company must continue to exist. If Groove no longer exists and the Groove cloud is no longer being maintained, hundreds, thousands, of connections to each other are lost.

The SemaView site mentions Sherpa Calendar in the context of Napster, as regards its functionality, except that calendaring information is shared rather than music. (We also have to assume the RIAA isn’t out to sue your butt if you use the application.) But Napster is based on the data being stored on the nodes — the end computers, not on the web. (Well, not directly on the wide open Web.) Is it, then, that the calendar data is stored on the individual PCs, only accessible through the Sherpa cloud? If this is so, then ingenous use of RDF/XML or not — this isn’t an application of the Sematic Web. This is just another application of web services.

(Though Tim B-L believes that the Semantic Web is based on functionality such as web services rather than data in context, I don’t agree. And many in the semantic web community wouldn’t, either. )

Without a closer look at how the product works, the documentation only tells me so much so my estimations of how this product functions overall is somewhat guesswork at this moment. When I have access to the product, I’ll do an update.

Page and comments are archived in the Wayback Machine

People Photography

Hot sun and Pow Wow

The photos here are included in the story O Si Yo, about the Cherokee Pow Wow held in Hopinksville, Kentucky at the Trail of Tears park there.

All photos were taken in hot mid-day sun, and wasn’t sure any would turn out. As with other photos, some I prefer to leave in color, others I prefer to desaturate and publish as black and white.

Pow Wows attract a diverse group of people as this gentleman with the POW/MIA outfit demonstrates.

A Traditional Dance competitor.

A Fancy Dress Dance competitor. It’s extremely difficult to photograph these dancers as they move so quickly. Beautiful, though, when you can grab an image.

Participants heading in for an Intertribal dance. I used a wide angle lens for this photo, to try and capture the feel of the Pow Wow surroundings.

It was either show the baby in the grandfather’s arms, or this little girl getting her hand shaken. I liked the fact that the adults would shake the hands of the children during the dance.

Either mother or grandmother, couldn’t tell, but this picture needs no other words.

The following two images were included in the post Hail Mary, and were of a Mexican Aztec Fire Dancer.

If you’ve seen Aztec ruins, you’ll recognize this stance.

Fire Dancer with foot in fire.

Bonus pic — not included in posting:


Couple during dance of couples only.


You’ve been comment spammed. Life as you know it, is over.

Recovered from the Wayback Machine.

There’s nothing that will bring me off my bed faster than the word, “blacklisted”. That and getting 22 trackback pings in the last week having to do with my old comment spam quick fix. I guess the spammers have paid a visit and you’re all mad as hell and aren’t going to take it anymore.

Except for this weekend when I turned all comments off, I haven’t used any comment spam protection, including my own suggestion that was so heavily pinged. Reason? I was curious about Mr. or Ms. Comment Spammer and wanted to see how they operated.

There’s at least two different types of spammers operating: the smart spammers and the hit nor missers.

The recent Lolita blitz is a hit nor miss spammer that just sends posts to deduced web entry posts based on known weblogs using Movable Type, and the fact that Movable Type uses sequential numbering for weblog posts. My simple solution of a hidden form field could have blocked this spammer; I wish I had it in place when I had to delete 57 comment spams from the little buggers, as soon as I turned comments back on.

The other type of spammer is smarter, more devious, and a lot more interesting. This one tests our parameters and also changes code to fit our discussions and modifications. They listen to us. They are out there.

I mention a hidden form field used to protect against ad-hoc spammers, and then I’m hit with spam posts that pull the form data and use it with the comment post. Someone else mentions about putting timers between when the page is accessed and the comment is posted and the code soon reflects this. This spammer sometimes re-directs to a porn site, but most often leaves just a calling card — a domain that doesn’t exist.

I have really enjoyed watching the smart spammer operate, but now the ante was upped when the primitive hacker hits a comment post 57 times in a row; I had to discontinue my little experiment and implement whatever anti-comment solutions I could find, primarily because there is no way in Movable Type to deal with this type of comment.

When you receive a comment spam, you have to delete the comment directly using SQL, or manually by deleting each in turn from within Movable Type. Then you have to regenerate all the pages to get them to disappear. Multiply that by 57? Ugh.

Hark, though, a knight in shining armor, Jay Allen, gives up all sleep for it sounds like a week to hack through a comment de-spammer that uses sophisticated regular expression processing to block known keywords and relative URLs when a comment is posted. It also blocks duplicate comments. Best of all, it gives you a little link in the email you get with your email notification that lets you delete the comment and rebuild the page in one fell swoop.

This is cool stuff, and Jay deserves a big damn gummy bear to munch in appreciation. However, it wasn’t this that brought me out of my sickbed, with holes in my gut and feeling achy, to comment. It was this casual chit chat about blacklisting. Oh, you know I don’t like that word. It’s a Bad Word.

It never fails to amaze me that webloggers will cry foul at the slightest hint of impartiality or censorship in mainstream publications, but willingly, happily, blindly adopt any and all thought of blacklisting without a backwards thought. It seems with Jay’s tool that you can not only list keywords and URLs you want to block comments for — you can export your list and others can import your items. Wow, web of trust.

Lesse now. Well, Dave Winer has said some pretty nasty things to me in the past so I think I’ll add ‘harvard’ to the list to block Dave. And you know, Mark Pilgrim has been on my back for six months now, so I think diveintomark goes. Wait a sec — I’ll just put ‘mark’ on the list.

Anyone want to use my list now? What’s the matter? Don’t you trust me?

The thing is that Dave Winer, for all of his willingness to explain our faults in infinite detail, is a real person posting as himself and I opened the comments to him to talk. There’s been a couple of times when I’ve been mad enough to block him, but I can’t believe in ‘free speech’ if I block people from speaking freely with me, and he’s been unblocked and free to comment for months now.

As for Mark, these ‘A Year Ago’ posts I’ve been running at Burningbird have shown comment after comment from Mark when we did get along, or at least were neutral, and I miss those times. However, I’ve crossed Mark’s line and am therefore told to Dive out of Mark, and I’m not necessarily fond of some of his newer comments. Still, I can’t bitch about Mark’s inflexibility as regards differences of opinion if I block him from making comments, can I?

So I guess I’ll remove these two items — harvard and mark. Now, do you want my list? Trust me. I wouldn’t lead you wrong. Besides, I know you all know how to use regular expressions to check to make sure I haven’t snuck a block in against a friend of yours among the foes. I wouldn’t do that. No siree. I’s good, I is.

But speaking of ‘good’ and opposite thereof, does anyone want to have the blacklist.txt file from Little Green Footballs? Would you trust it? How about other more extreme folks who have shown themselves less than amenable to disagreement?

Of course, you don’t have to know that you’re getting Little Green Football’s items. You could get someone else’s 3560 entries, and LGF’s items could be a part of this. That’s the problem with non-signed and non-identified entries in a mega-list of blacklisted items — you lose some good with the bad.

No biggie. Right?

You all know Allan Moult and Jonathon Delacour. I’ve known both of them through weblogging for going on two years now. From time to time, I send both an email to say hi, let them know the minute and uninteresting details of my life, or maybe send a link to an interesting article. At least, I used to send them emails before a week ago. I can’t send either of them an email now, because the IP address for my SMTP server is part of an entire block of IP addressed that have been blacklisted by SPEWS. And when I went to SPEWS and said that I can’t be held responsible for my ISP renting out IP addresses to spammers, I’m not a spammer, the response was basically, “Tough. Change ISPs” Sure, as if I have an extra few bucks to forgo what I’ve paid for and moved just because SPEWs decided to punish my ISP using me as the weapon.

(My ISP’s response? “Tell your friends not to use SPEWS for filtering.” Pot, meet kettle. Kettle, meet Pot.)

Blacklisting is never going to be an effective, long-term solution for any, and I mean any, internet-based problem. Period.

I had an email conversation about comment spam earlier today with Dorothea on this issue. In addition to the Bad Word, my conversation with D also sparked glimmers of weblogging interest deep within this tired old body.

Dorothea mentioned about SPEWS being different from the comment spammer thing because it’s centralized. My response was:


Actually, the problem with SPEWS is that it’s not centralized — there are no people you can contact directly to say, you’re hurting me by your blanket IP block blacklisting. There are no faces taking responsibility. There is no accountability, no compassion, no individuality. It is group behavior at its worst.


Group behavior at its worst. Hmmm. Sometimes when things like this comment spammer hit, you can feel the world tilt by the movement of webloggers in one direction. See what you did? You all made me fall over.

I trust in the individual, which means each person should consciously decide on what is, or is not, acceptable, when it comes to the flow of information to them or from them. Filters are non-discriminating in their ruthless discrimination. Communication, and the so-called freedom of speech we rant about, is based on work and deliberate determination — not quick fix global blacklisting.

Still, my concerns about blacklisting are just so much paranoia — nothing like this could ever happen in weblogging. Could it? Nah, not a chance. About as silly as comment spamming.

My preferred solution for comment spam? Close the barn door. Comments were added into Movable Type with a lot of openings and it’s time to provide better functionality for managing them — not comment spam, comments.

Ben and Mena Trott of Movable Type ask, what can we do? Well for starters:


Give me the ability to list all comments by a specific IP, URL, email, or name.

Give me the ability to mark all or part of them, using bulk update techniques, for deletion.

Give me the ability to then rebuild just those pages where the comments were deleted.

Give me the ability to turn off new comments temporarily for those days when I may not be around to deal with the baddies, and to provide information to people automatically about why they can’t post comments momentarily.

Finally, give me the ability to add Jay’s functionality, and others, to not let in the possibility of spam comments if I want to add this additional functionality in. Of course, we have this now — but it doesn’t take the place of the other items on this list.


I want all of this — greedy bugger that I am — and following through on Jay’s excellent ideas, give me the ability to do so with one push of the button. Don’t give me new functionality such as user registration and fancy uses of RegEx processing. Give me the ability to manage the data I already have. Give me better comment management.

If I had this with the 57 items for Lolita, I could have selected all the comments based on the one IP or URL, marked them for deletion, and rebuilt the pages that contained them in one click of a button. End of problem, minor irritation.

Now what happens is that I have to add Jay’s perl-based Regex handling into my system for all comments that come in (yes, take a serious pause with this), slowing what is an already very slow process at times. I have to punish the many for actions of the few, rather than being provided a way to clean up after the few so that the many can happily chat away. And then I have to make sure my regular expressions don’t accidentally filter a friend. Or foe. Accidentally. Of course.

Tech solutions to social software problems. I mentioned in the email earlier to Dorothea that most of these automated approaches aren’t social in nature, and therefore not compatible with social software. How come, then, I was asked, that my approach is better? I responded with:


Because they force the individual to take responsibility for the material that is deleted or not from their weblogs.


I wrote you and you didn’t respond.

I didn’t get it. Must have been blocked by email spam filter.

I commented on your weblog but it didn’t show.

I didn’t get it. Must have been blocked by the comment spam filter.

I had something important to say, but you didn’t hear it.


“Oh say can you see,
by the dawn’s early light…

Only if you speak just right!


As for the Google thing or Technorati or Blogdex, or most recently commented lists — sure the URL might get pushed up momentarily. But it’s just as likely to fall off when all of the links disappear. These are dynamic entities, and thus, are self-repairing. So they’re on top for a minute. Who cares?

If we’re that concerned a solution would be in the most recently commented list, just point to the entry with the most recent comments rather than list the individual’s URL, like I do now. As for Google and the comments, create a second individual page template that doesn’t have comments and have it built when the other new page is built. Allow Google access to this page, but not the one with comments.

(Send email if you want instructions — maybe I’ll be able to reply if you’re not in Australia, and I’m not blocked.)

Ben and Mena say, “We don’t know what to do”, and we should be saying back, “Well, for starters, you can do this and this and this.” And no the solutions aren’t using clever coding techniques, as much as I admire them (and Jay’s one smart puppy); but they are using good, common programming sense and practices, which state that a better use of time is to close the friggen door rather than figure out fancy new knots to catch the horses that escape. I respect what Ben and Mena have accomplished with Movable Type to this point, but if they give me comment management, I’ll send them chocolates for Christmas.

Most of all, though, we should push back any time someone even remotely mentions ‘blacklist’ and ‘weblog’, or ‘blacklist’ and ‘internet’ in one breath. Always. These words, they don’t go together.

They never will.

I like wKen’s approach to the whole problem. He loves the comment spammers — gives him an ability to slide on posting, figures he could just let the spammers do it for him. Now that’s a social software solution.

And instead of hating the spammers, maybe we should learn from them, as I wrote Dorothea:


I admire this spammer enormously and have had a wonderful time tracking him/her the last month or so. It’s fascinating to watch someone with this person’s adept understanding of the social aspect of ‘social’ software, as they counter and move around obstacles we clever techs put in their way. Personally, I think Tim O’Reilly should have him or her as a featured speaker at the Emerging Tech conference.

update Winds of Change has had to disable mt-blacklist because the processing is too extreme for the site — Winds of Change is a pretty popular place.

We talked about this issue before, the last time comment spamming was a hot topic — anything clever enough to catch most comment spammers, will be too complex for regular use.

Now, if we had good comment management in MT….

Just Shelley


I discovered the name of the green mystery mineral. It’s Vivianite.


It’s not a perfect sample, but at least it’s not blackened as so many Vivianite samples are with exposure to light (she says as she looks at her sample, sitting in the sun). Obvious holes in the matrix show where better crystals have been pried loose, probably to be sold separately. Personally, I think imperfections in the piece adds to its character.

I have always collected based on beauty and character rather than value and perfection. Because of my undisciplined approach, my collection is interesting rather than profound. That’s not to say that the collection isn’t worth money — sometimes beauty and character do go hand in hand with monetary worth, as demonstrated with this virtually flawless rhodochrosite.


Still, there are a few of my samples I shouldn’t include in the collection photos because they’re obvious fakes, or novelty items and of no serious value. When you show your collection, you don’t show these rocks. You certainly don’t photograph them.

Mineral collectors will only show you their good pieces, the ones they’re most proud of. However, if you look into their dark corners and hidden drawers, you’ll find their bits of fraud, fiction, and flaws — samples they think about tossing someday, but they won’t. The imperfect pieces, the mistakes, and the fakes add life to a collection. They add history. They make a collection interesting.

For instance, the photo below is of bismuth, which is normally a featureless blobby white/grey mineral. However, put it into a centrifuge, spin it at fast speeds and inject a little oxygen, and viola — you have a beautiful bit of color. No value to it, but I like my eccentric no value pieces. This particular one reminds me of an Escher drawing. You can also use it as a pencil — now, how handy is that?


I have a few frauds, too. My favorite is a hand-sized rock with quartz and appetite crystals in it. I have no doubt about the nature and quality of crystals, but the sample itself is an obvious fraud. I knew it was a fraud when I bought it. I still bought it, and therein lies the value of the rock.

At an outdoor mineral show consisting of tents set up in the parking lot around a rather seedy motel in Tucson, Arizona, I came across one table filled with yellow-green appetite crystals from Mexico. Most were still attached to their rust-red matrix, making the pieces quite pretty overall.

I tried to effect a knowing attitude, but I swear, I must have had rube tattooed on my forehead. The Dealer, an older man who was very gallant to me and kind to my niece (not all that common among the tents if you’re not buying in bulk), sized me up, came to some kind of internal decision, and brought a rock from underneath his table for me to look at — a hand-sized piece with a couple of relatively nice appetite crystals in it.

“That’s what you want”, he said in heavily accented English. “That’s good rock. Nice crystals. I give you good deal on it.”

I picked up the rock and looked more closely at the two larger crystals. They were both wedged into the rock but even a cursory examination showed that the crystals were cut at the bottom and then glued into the rock, with bits and pieces of broken crystal glued around them in an attempt to hide the obvious manipulation. (Crystals in matrix always sell better than those that are loose.)

I looked up at the dealer and he beamed at me, nodding his head, pointing at the rock and kept saying, “Good rock, nice crystals, eh?”

“It looks like the crystals have flat bottoms and aren’t attached to the rock”, I said.

“No, no. This happens sometimes. Pressure on rock force crystals loose, but they held in by rest of rock.” He assured me, shaking his head a modest display of genuine sincerity. “No, this is good rock. Good crystals. I give you good deal.” Pause.

“Fifty dollars.”

I gaped at him. Literally gaped at him, mouth open in astonishment at the chutzpah of the dealer. I held the rock in my left hand, and pointed at the crystals with the index finger on my right hand and just looked at him.

He smiled back, beaming in pride of this treat he was bestowing on me.

“Fifty dollars?”


“Are you kidding? This is a fake!”

His smile faltered. A hurt look entered his big brown eyes (before, bright black and alert, now suddenly taking on aspects of one’s favorite dog just before it dies). His age set more heavily on his shoulders and he shrunk in slightly, as if in despair. His body said it all: His son has died; his daughter has run off with a biker. I even thought that, for a moment, I could see his upper lip trembling, and a hint of moisture appearing in the corner of his eye. I watched his change of expression — from certitude to dejection — with utter fascination, and more than a little consternation.

“Madam,” he said quietly. “You wrong me. This is no fake. Please, I would not do such a thing”

Placing his hand over his heart, he lowered his head slightly and pulled away from the table, turning his shoulder away from me as if flinching from a blow. I looked back at him and I realized in that moment, I have met fraud before, but I have not met artifice. And artifice is a ceremony, as precise as the tea ceremonies in Japan — my response was equivalent to not taking off my shoes, spilling the tea, dropping the cup, and then farting when I go to pick up the pieces.

I didn’t know what to do. Putting the rock down and walking away would have flawed the moment and marred the experience, for both me and my young niece who was with me that day. But I didn’t know how to recover.

“I, uh, I’m sorry,” I stammered. “Uhm…I didn’t mean to..uh”

The dealer was not a cruel man; or perhaps he was used to dealing with gauche Americans who buy their goods marked with barcodes and stickers, with heavy assurances of quality. He turned towards me, his face now that of one’s favorite wise old Uncle, the one mother invites to dinner but then hides the booze.

“Madam, I understand. There is so much evil in the world. You must be careful. But see now, I am an honest man. But I am not a selfish man. I will give you this rock, this pretty rock for … forty dollars. It is a steal at forty dollars.”

Shrewd eyes on my face. Next line was mine. I had my opening. I could have put the rock down and say that I hadn’t that much money and I still needed to buy lunch for my niece and thanked him and walked away and the moment would have been salvaged, but it wouldn’t have been right. Besides, the crystals were good if small, and there were some interesting bits to the piece, not counting the ingenious use of glue.

“I’ll give you ten dollars for it.”

“Madam! Ten dollars! You are joking! No, no. Ten dollars. No, no!” He exclaimed in dismay, but he also smiled at me in approval of my response — there was hope for me yet, me with my wits dulled by years of supermarket shopping and sell-by dates.

“Thirty-five dollars. I will take thirty-five dollars.”

I was about to counter with fifteen, feeling more confident in this bargaining game when the Dealer picked up another crystal on the table — a small one. A very small one. Barely more than pretty dust.

“And I’ll throw in this lovely crystal for your niece. See? It is a fine crystal. Yes? Good offer?”

“That’s very kind of you,” I said, clenching my teeth at the exclamations of delight from my niece who loves getting something for free even more than she likes sparkly things that cost money.