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

RE: How will the semantic web emerge

From: <tim.glover@bt.com>
Date: Wed, 21 Dec 2005 13:53:52 -0000
Message-ID: <22662A3D243F5343A3C24A4012A78DB208026A47@i2km05-ukbr.domain1.systemhost.net>
To: <fugu13@mac.com>, <fmanola@acm.org>
Cc: <semantic-web@w3.org>, <joshuaa@microsoft.com>

Yes. I think it is possibly misleading to compare rdf:type with strong
type systems in computer languages. That may have been the original
intention but the ability to enforce types is in conflict with the
requirement that all RDF statements are valid, and the RDF semantics
supports the latter at the cost of the former. Within RDF it is
impossible to claim that an entity does not have the right rdf:type. And
even if it does have the "right" rdf:type, it may in fact not have any
of the required properties. You COULD use rdf:type as a type system -
but it wouldn't be supported by the RDF semantics. 

The intuitive semantics of rdf:type is "if x has type y then it makes
sense to look at the values of these other properties of x (if given)".
I think that is often a useful piece of information. 

-----Original Message-----
From: semantic-web-request@w3.org [mailto:semantic-web-request@w3.org]
On Behalf Of Russell Duhon
Sent: 20 December 2005 23:16
To: Frank Manola
Cc: semantic-web@w3.org; Joshua Allen
Subject: Re: How will the semantic web emerge

Its not so much a dichotomy of optional/not optional, but typing-by- 
properties and typing-by-class.

Duck typing is where an object is treated with based on what  
properties it has, or in python and similar, what methods can be  
called on it. If I have a function that calls certain methods on the  
objects passed in, it very well might not matter which objects are  
passed in, provided they have those methods -- the formal types are  
not considered directly. This is duck typing -- anything that walks  
like a duck, quacks like a duck, and looks like a duck might as well  
be a duck.

Those objects (in Python) still have strong types, its just that  
methods don't have type signatures (at least, not unless you make  
that happen ;-) ), and the language is dynamically typed. If my  
method still works whether a string or an integer is passed in, I can  
pass in either -- but a string is very much not an integer, and there  
are certain operations that protest very loudly if I try using a  
string like an integer or an integer like a string!

One can also include those checks of object types in one's code, as  

Now, RDF's not quite in the same situation -- types really are  
optional, in a sense. But its also going to continue to make sense to  
create RDF with lots of type-rich information, and create ontologies  
that can infer types in under-typed RDF.

The first is pretty clear because tools for creating RDF and  
interpreting common sorts of RDF can get a leg up with types. For  
instance, if I want all RSS items in an RDF store, the type is one of  
the best ways to get at those. I expect a lot of RDF uses will  
require certain type information, much like RSS 1.0 effectively does,  
in order to ensure easy "mining".

The second is happening/will happen because it allows for the use of  
generic reasoners. I won't have to create an application that  
meticulously examines my RDF data for desired instances, I'll throw a  
declarative ontology at it, then be able to grab things by type and  
know they're the sort of thing I want.

Because it makes sense for a lot of RDF to be type rich or type  
enrich-able, I think any view emphasizing type-optionality is missing  
out on a lot of the potential for RDF. At the same time, any view  
trying to make all RDF data be strictly typed is flawed as well  
(particularly as some typing information from OWL Full ontologies and  
the like will be problematic to determine), and misses out on many of  
the possibilities for flexible RDF usage that proceed purely based on  
examining (non-type parts of) the graph.


On Dec 20, 2005, at 5:27 PM, Frank Manola wrote:

> Russell Duhon wrote:
> snip
>> Personally, I view RDF as more along  the lines of Python or  
>> similar important dynamic, strongly typed  languages -- we can  
>> play fast and loose with it in many ways, using  duck typing, but  
>> the types are still there to exploit when useful.
> This seems like a reasonble position, except that being able to  
> ignore the types when you want to makes them optional doesn't it?   
> And playing fast and loose doesn't sound like what I recall of  
> strong typing!
> --Frank
Received on Wednesday, 21 December 2005 13:54:07 UTC

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