Thursday, November 27, 2008

Who's to blame?


Testing a new data-level validator for RDF and just found that Dan Brickley has a problem with his LiveJournal FOAF export, which states that he has the empty literal "" as a value for the InverseFunctionalProperty foaf:icqChatID.

So Dan, if you're reading this, I don't blame you (although I do perhaps blame LiveJournal for not having more rigorous data-checks... they do export millions of FOAF files after all).

Overall though, I blame the lack of a tool that you can use to check for such problems. If you get people hacking away on their RDF documents problems will arise in the data (I'm as much to blame as anyone else). You need a tool to assist you in debugging your RDF on the data-level.

We're working on it.

Wednesday, November 19, 2008

The knowledge-base sapper, and his four explosive triples.

Okay, so here's some non-standard use of RDFS/OWL that Axel Polleres came up with:

rdfs:subClassOf rdfs:subPropertyOf rdfs:Resource .
rdfs:subClassOf rdfs:subPropertyOf rdfs:subPropertyOf .
rdf:type rdfs:subPropertyOf rdfs:subClassOf .
rdfs:subClassOf rdf:type owl:SymmetricProperty .

Full reasoning on this according to some ruleset (say pD*: -- i.e., OWL-Horst -- rules rdf1, rdfs4a, rdfs4b, rdfs7x, rdfp3) gives everything. I'll let you work that one out. By everything, I mean every possible (albeit finite) combination of identifiers that constitute a valid RDF triple: the number of resulting triples equals the number of unique identifiers, cubed. Stick those four statements into a web-crawl, do some happy-go-lucky rule-based reasoning and you have problems. Of course this is only one such example. Watch this space.

...oh, and before I go, it doesn't even take four triples (pD*: rdf1, rdfs4a, rdfs4b, rdfp6, rdfp7, rdfp9, rdfp10, rdfp11).

rdf:type owl:sameAs owl:sameAs .


Friday, November 14, 2008

RSS 1.0... old and broken.

I guess it's a bit old hat, but RSS 1.0 uses the exact same URI for image as a property which relates a channel to an image, as for image as a class. Seems to stem from trying to create an RDF spec which closely resembles some older XML version... at the cost of the RDF spec (RSS isn't the only victim of an XML porting hangover).

No RDF(S)/OWL document exists for the spec (it is quite old -- from 2000) but the above issue also pretty-much precludes the possibility of one being created.

Maybe time for a half-decent (and maybe even less obtuse) replacement. A quick scan of this RSS 1.1 document and it seems to be a candidate. In fairness, it's hardly rocket science... and that's a good thing.

Plus, they capitalise Channel. What's not to like?