- From: Henry Story <henry.story@bblfish.net>
- Date: Wed, 21 Dec 2005 17:00:53 +0100
- To: Frank Manola <fmanola@acm.org>
- Cc: Joshua Allen <joshuaa@microsoft.com>, semantic-web@w3.org
On 20 Dec 2005, at 23:14, Frank Manola wrote: > I don't think this is necessarily the use of rdf:type that the OO > vs. duck type distinction is really about. If all you mean to do > by identifying something as being of a given type is to indicate > that it is a member of a set of things having a common > characteristic associated with the set (and this certainly is the > semantics of rdf:type), "thiefness" in this case, that by itself > doesn't stress the alternatives too much. But are you also going > to describe :p as being blue by saying > > :p rdf:type x:blueThing. > > as being 6 feet tall by saying > > :p rdf:type x:sixFeetTallThing. > > and so on? Most of the time, people are bundling a whole lot more > into the notion of "type" than simple set-inclusion semantics, and > that's where the problems often arise. For example, most people > would use > > :p ex:color "blue"; > > (or some datatyped variant) in the first example instead of using > rdf:type, and what they have in mind when they make that > distinction is often very significant. Perhaps in their mind. But it is not unknown the people have thought distinctions to be significant that were not. Those 2 examples above probably come to the same thing. They identify the same set of things. And since RDF is based on Set theory... > At the same time, a slightly different interpretation of the > example does get into the OO vs. duck type distinction. Suppose > the two statements in question are > > :p rdf:type x:thief. > > and the other is > > :p rdf:type y:honest. > > (because two people are making the statements, they each use their > own type systems, x and y). Now the issue isn't about which > authority to trust, it's about what type system to use, and I > needn't use either one, or I could use both. After all, the same > person might be a thief according to one person's type system (say, > that used by the music industry) and honest according to another's > (say, that used by the American Civil Liberties Union) without > contradiction; and all the other data about that person might be > exactly the same. You might therefore use both without contradiction. This is also something that one finds a lot. Using the same english word with two different meanings. Which could be described as amclu:thief z:folksonomy "thief"@en. mi:thief z:folksonomy "thief"@en. Here we have two incompatible meanings of thief, which we is usually expressed in a dictionary as different "meanings" of the word. Not a problem. This is in part why it is nice that in the SemanticWeb people can create their own vocabularies. Since the distinction is clear in rdf, we can use these two words separately and assert both that someone is an mi:thief but not an amclu:thief. Of course if people created their vocabularies in complete isolation things would be easy. Presumably though, both the american civil liberties union and the music industry will want consequences of their definitions to map to the USLaw's notion of thief <uslaw:thief>. Now in the United Kingdom of Great Britain where a person is considered innocent until proven guilty, it is I think close to illegal to assert the relation until the law courts have done so themselves. All the music industry should be claiming is: { ?x rdf:type mi:thief } => { "the music industry will (withing its means) go to court against x and try to enforce the claim ?x rdf:type uslaw:thief" } Now in other spheres of public life one cannot perhaps force such clear separation of roles. In those cases it is quite likely that some ontologies will clash. A google search engine might notice such clashes and separate those into incompatible islands of meaning to create islands of coherence, something which could be very useful to notice. In any case this does point back to the fact that to get the semantic web off the ground, it is a lot easier to put data from a database you control and which contains data that is of interest up on a SPARQL end point. Here you can be careful in creating your own ontology, or using one that does not have too many weird ramifications (I myself am a little worried about foaf 0.1 's relation to wordnet), and since your data is valuable, people will be interested in getting it. Some examples here: http://blogs.sun.com/roller/page/bblfish?entry=know_your_end_user Here the ontology is useful because it helps people understand how to frame the queries and what questions they can ask, and what your database is about. If your data is valuable they will find a way to make a business out of it. If you are clever, the business they make with their data will be one that grows your business too. Henry Story > > --Frank > > Henry Story wrote: >> Oh, you are worried about typing because it may lead you to have >> to make decisions about which authority to trust. That is a >> problem of database consistency not of typing. If two people say >> something different about someone, such as >> :p rdf:type x:thief. >> and another says >> :p rdf:type x:honest. >> You will need to decide what you should add to your database. And >> there will always be many ways you can render your database >> consistent. You can either reject one or the other proposals, or >> reject the proposal that a man cannot be both honest and a thief.
Received on Wednesday, 21 December 2005 16:01:06 UTC