Physical Wikipedia

Semapedia looks pretty cool. The idea is to attach Wikipedia “links” to real-world objects, e.g. famous buildings.

At the web site, you can print out a sheet of paper with a barcode-like encoding of a Wikipedia link which you can then attach to the real-world object. Other folks can then point their mobile phone camera to the barcode. A special software on the phone decodes it and fetches the Wikipedia page.

That’s still a bit convoluted, and the need for special software makes it impractical. But if mobile device manufacturers would standardize on a technology that can encode any kind of URL, not just Wikipedia articles, and include the decoding software in all devices …

(Phone network operators should like this because it would increase internet-over-phone usage, making money for them. I sense a business idea here. I’m sure there are at least ten startups working on this already …)

(via Information Aesthetics; Leo blogged this too last year)

Posted in General | Comments Off on Physical Wikipedia

High-level data models: Apple’s Core Data

There’s a cool video tutorial for Core Data at Apple’s developer site.

Core Data is a part of the Apple technology toolbox that lets developers define an application data model without writing code. Basically, all they have to do is define an entity/relationship diagram in Xcode (Apple’s “Eclipse for Objective-C”), and they get an object model, GUI bindings, load/save, XML import/export and fulltext search for free. The guy in the tutorial cooks up a simple application with a nice Cocoa GUI in ten minutes or so, which certainly makes for a good demo.

The big picture: I don’t have much interest in actually working with Core Data. The desktop application is a dying breed, and especially data-driven applications belong on the server side.

But Core Data is an example of an important trend in software development: It reduces development cost by building on a high-level data model. Lots of infrastructure work like persistence, serialization, API and GUI access to the data, validation and so forth can be partially or completely automated once you have explicitly mapped out your domain.

Another popular example is Ruby on Rails with its ActiveRecord framework. With ActiveRecord, developers define the data model using a database schema with some conventions and a bit of declarative Ruby code. The scaffolding features of Rails, great for quickly getting a prototype up and running, are one of those nice things you get for free with a high-level data model.

Can RDF be a vendor-independent Core Data? That question is the main reason for my involvement with RDF. It may have the potential to become a standardized data model that transcends programming languages, development environments, and could even ship objects across the web.

In a perfect world, I would define a data model for my application, publish it as RDFS and OWL, someone else could import the data model into their own application, and access my data almost transparently, with RDF or or SPARQL in the background. Man, that would rock.

One good-looking project that goes into this direction is ActiveRDF, a framework that provides very natural access to RDF data from Ruby applications, including Ruby on Rails webapps.

Definitely something to watch.

Posted in General, Semantic Web | Comments Off on High-level data models: Apple’s Core Data

Web 2.0 goes mainstream

This just in: My mom asked me, “What’s this RSS thing I keep hearing about?”

Posted in General | Comments Off on Web 2.0 goes mainstream

Google Circles

Google Circles is the latest beta service to come out of Google Labs. It shows what people in certain geographic locations and in certain organizations are searching for.

Is there anything interesting to learn from this? Well, folks at google.com search for “GOOG” and “investment bankers”, employees at apple.com search for “cheap cell phone components” (so the iPhone is coming?), and the Microsoft drones search for “google jobs” and “apple jobs”.

(Update: Gotcha! It was an april fools’ joke. Yes, I fell for it, despite the clues all over the place.)

Posted in General | Comments Off on Google Circles

There are no “shallow end” RDF tutorials

Phil Jones, in my comments:

I think the difficulty in RDF comes from […] confusion with the aims of upper-case SemWeb, means that it’s hard to find documentation that doesn’t throw you into the deep-end. (Maybe someone should produce a “how to hack RDF in 10 minutes without thinking about what it really means” tutorial.)

Good point.

Posted in General, Semantic Web | Comments Off on There are no “shallow end” RDF tutorials

Leo on RDF server architecture

Leo:

Note that an RDF database server (with inference) will probably look like this.

Haha. So true.

Posted in General, Semantic Web | Comments Off on Leo on RDF server architecture

Adding geo cordinates to your FOAF file

You don’t have a FOAF file yet? No? Then go create one!

You have a FOAF file, but it doesn’t have geo coordinates? Then go add them!

This link leads to a little service that helps you locate the latitude and longitude of the place where you live. I’ve built it today. It’s based on the Google Maps API, which is a lovely piece of technology, by the way.

So, there’s no more excuse! Add those coordinates, then view your profile on Alexandre Passant’s FOAFMap.net. Here’s mine.

(Update: There’s another FOAF geolocation service that determines the location from your street address.)

(Update2: Now with street maps for most of Europe!)

Posted in General, Semantic Web | 1 Comment

Ask an ignorantselfishertarianist

Scott Adams, author of the Dilbert comic strip, started a blog a while ago, and it’s been one of the most enjoyable reads on my blogroll ever since. His pragmatic outlook on the world, his tendency to take everything at face value, to believe only what his own eyes can see, and to never overestimate his fellow men, mixed with a dash of cynicism, might be weird, but it’s … consistent. (He labels himself an ignorantselfishertarianist.)

Anyway, a couple of days ago he challenged his readers to ask him his opinion on any topic. Many did, and they certainly were not easy on him. His answers are full of gems:

Q. Why do most people end up living mediocre, “regular” lives?

A. It’s easier.

Q. What’s your opinion on abortion?

A. It’s bad for the fetus. It’s convenient for the adult who wants one. Arguing about when “life begins” is an attempt to offload a tough question on the dictionary or the courts or a superstition. I support the majority opinion in favor of keeping abortion legal. I value the quality of life for adults higher than the unrealized life of a fetus. And I trust the majority (the mob) to figure out the most realistic place to draw that line.

Q. Who, out of any person, would do the best job of dictator with total control of the world, and please give a real response.

A. Bill Gates. He’s rational, experienced, and has a good track record of helping the disadvantaged through his charitable trusts.

Q. Do you think that a great goal in life is to leave the world a better place than it was when you arrived?

A. I think you should live your life so that the maximum number of people will attend your funeral.

Q. Does a human life have a significant innate worth, or is that worth instead largely determined by what that human accomplishes, experiences, and how the human treats and burdens others?

A. In my opinion, some people are worth more than others. But I wouldn’t judge people by accomplishment because that’s mostly a matter of luck. And I wouldn’t judge people by their mistakes, because that would mean everyone is worthless. I do however think you can judge people by how they learn from their mistakes.

Q. Most futuristic thing you wish would be invented now?

A. Orgasm ray gun.

Posted in General | Comments Off on Ask an ignorantselfishertarianist

Spellchecking vocabularies with SPARQL

Dan Brickley experiments with using SPARQL queries to check on the vocabularies used in an RDF file.

Here’s a query that checks my FOAF file for properties that are in the FOAF namespace, but not declared in the FOAF RDFS file.

PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT DISTINCT ?property
FROM <http://richard.cyganiak.de/foaf.rdf>
FROM NAMED foaf:
WHERE {
    ?s ?property ?o
    GRAPH foaf: {
        OPTIONAL {
            ?property a ?t
            FILTER (?t = owl:ObjectProperty || ?t = owl:DatatypeProperty
                || ?t = rdf:Property || ?t = owl:FunctionalProperty
                || ?t = owl:InverseFunctionalProperty)
        }
    }
    FILTER (!BOUND(?t))
    FILTER (REGEX(STR(?property), "^http://xmlns\\.com/foaf/0\\.1/"))
}

This query actually finds some stuff — here are the results as of today:

-------------------------
| property              |
=========================
| foaf:withOrganization |
| foaf:hpmepage         |
| foaf:linkedWith       |
-------------------------

One’s a typo, and I’ve no idea how I got the idea that the other two were in FOAF.

SPARQL: SPellchecker And RDF Query Language!

Posted in General, Semantic Web | Comments Off on Spellchecking vocabularies with SPARQL

Yet another new blog: Steffen Pingel

Noticed today that Steffen Pingel, one of the guys behind StatCvs-XML, has started a blog.

Posted in General | Comments Off on Yet another new blog: Steffen Pingel