- From: Garret Wilson <garret@globalmentor.com>
- Date: Thu, 26 Jul 2007 08:29:47 -0700
- To: Semantic Web <semantic-web@w3.org>
Just when I thought I had introduced a nice compromise to help get vCard RDF wrapped up, and after delivering an updated spec to Harry, all hell breaks loose when I point out (just trying to be completely open about the pluses and minuses of everything!) that lists have problems with literals in RDF+XML. May I point out just a few things: * We're using RDF because we think it's a good way to model information about the world. * Names are very common things in the world, but they are also very, very, very simple things. If you think modeling names is hard, try modeling the concept of a "contract" in common law countries or even in civil law countries. But contracts and the like are things that we want to model in RDF. If you can't model a little old name in RDF, you're screwed. * It's really difficult to model a little old name in RDF. * The uproar and confusion over vCard names has to do with a simple property of names: name components may be single entities or there may be several of them, with order important. This is not a unique situation---perhaps it's the rule with real-world data, not the exception. But everybody agrees about the real-world data here---the problem is with its representation in RDF, and (with the most recent discussion) its serialization in XML (i.e. you can't easily represent literals in a list). But take a step back and see what we're doing: we're not arguing about the real-world data, we're arguing because our modeling language of choice makes us jump through all sorts of hoops to model that real-world data. The teeny, tiny very, very, very simple real-world data. The issue here is not just that restricting cardinality of all properties will be hard for Garret converting legacy vCard data. It's that restricting the cardinality of all properties doesn't model the (very, very, very simple) real-world data very well, and the only reason we're considering restricting cardinality is that we have to jump through all sorts of ridiculous hoops just to model something that can either be a single object or a list; or a list of literals. That's an inherent problem of the modeling language we're using. Doesn't that worry you? It worries me. This is nothing new. When I was co-chair of the Open eBook Publication Structure 2.0 effort circa 2001, I spent untold effort trying to convince the group to switch to RDF for representation of its package format. Renato Iannella and Patrick Stickler will vouch for me on this---one of my last emails to Renato before the whole effort stalled was extolling the virtues of using a semantic modeling language such as RDF over a syntax-only format such as XML. But even with RDF, there were major problems for a packaging language. Take externally declaring stylesheets of an XML document, for example. With the resulting XPackage format (which made it into the RDF Primer), I finally settled on having a single x:style property (see http://www.xpackage.org/specification/#x:style ), but the same problem crops up: XML documents may have multiple styles, but they may be ordered (by priority) as well! So should we make x:style have a range of rdf:List? Why not give everything a range of rdf:List? Consider an ontology for representing test questions such as my MAQRO. A particular question may provide a hint. It may provide multiple hints. These hints may have an order (the most opaque hints first, for example). I broke down and made maqro:hints take a a range of rdf:List for exactly the issue we're dealing with (see http://www.maqro.org/specification/#maqro:Question ), even though in most cases a question may only have one hint and rdf:List is overkill. And representing question text as literals? I created an entire class, maqro:Dialogue, just to use the rdf:value hack to get literals into a list. (see http://www.maqro.org/specification/#maqro:Dialogue ). The problems were having with single/multiple cardinality and order; and representing literals in a list; are nothing new---they are problems inherent in RDF. They rear their heads in very, very, simple ontologies. And they aren't going away. That worries me greatly. Garret
Received on Thursday, 26 July 2007 15:30:53 UTC