W3C home > Mailing lists > Public > semantic-web@w3.org > December 2005

Re: How will the semantic web emerge - OO languages

From: Henry Story <henry.story@bblfish.net>
Date: Wed, 21 Dec 2005 17:00:53 +0100
Message-Id: <634C3EA2-EB21-438E-BB9D-E2063B801274@bblfish.net>
Cc: Joshua Allen <joshuaa@microsoft.com>, semantic-web@w3.org
To: Frank Manola <fmanola@acm.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  

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:

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

This archive was generated by hypermail 2.4.0 : Tuesday, 5 July 2022 08:44:55 UTC