Archive for March, 2006

OWL 1.1 Web Ontology Language

Thursday, March 16th, 2006

OWL 1.1 Web Ontology Language is beginning to take shape. I’m most excited about the new datatype support. For example, you can now say “Adults are Persons that have age someValuesFrom >= 18″ In other words, you can now define ranges to acceptible values for a datatype. This is different than cardinality (which would be something like “SuperPetLover is a Person with 5 pets”), this is restricting the acceptible ranges for values of datatype properties.

Graphs in MySQL 5

Tuesday, March 14th, 2006

Working with Graphs in MySQL has many nice examples on how to use MySQL 5’s stored procedures and views to create efficient graph structures in SQL.

Data-Driven Enterprise: Slouching toward the Semantic Web

Friday, March 10th, 2006

Data-Driven Enterprise: Slouching toward the Semantic Web is a new article found in IEEE DS Online. It includes many quotes by me, including others involved in semantic web and/or enterprise integration efforts.

It includes such greatest hits as “RDF XML serialization ain’t that great” and “Where are the reasoning databases?” But don’t forget old time favorites like “Focusing on what can be done now instead of what’s possibly possible later.”

Thanks to Greg for the chance to participate.

The Semantics Are Important

Thursday, March 9th, 2006

Stefan Plantikow asks a good question:

> But isnt it absurd or at least meaningless to believe we are talking about the same “uri-wise” thing iff we put “it” into completely different classes? What does such an identity establish at all?

I don’t think it’s meaningless at all. Think about how we talk about things in the real world.

Q: “Where are you going this weekend?”
A: :Seth :travelsTo [geo:lat “123″; geo:long “456″];

OK, so now we have a bnode for some location. That is unambiguous as far as I’m concerned, as there’s only one Point on Earth with that lat and long.

Now, here’s my point about the difference between identity and meaning. The identity is singular. The meaning is relative. Let’s think about all the different meanings we can associate to that identity.

[geo:lat “123″; geo:long “456″] a :Beach.

OR

[geo:lat “123″; geo:long “456″] a :CountyPark.

OR

[geo:lat “123″; geo:long “456″] a :Ocean.

All of the above would work in the real world. You can easily answer the question, “I’m going to the beach” or “I’m going to the park” or “I’m going to the ocean” and we know you mean the same thing. The real world is that flexible, so the semantic web must allow for this type of flexibility.

Now, this is where Semantics comes in. When you say “ocean”, you might mean “Something with sand, next to the ocean, where people hang out, where you can swim”. Again, the identifier for the class :Ocean is what is globally unique. But the definition of :Ocean is context specific.

Thinking about it, it happens that your definition of :Ocean (above) matches perfectly with my definition of :Beach (”Something with sand, next to the ocean, where people hang out, where you can swim”). And this is where the semantic web shines… when you say :Ocean and I say :Beach, we can reason we are talking about the same type of thing.

If we apply our contextual definitions (semantics) to the Thing in question (here it is [geo:lat “123″; geo:long “456″]) then we are at least talking about the same thing. This is the important part about the whole operation. No matter how we define that location on earth, it’s the same location between the both of us.

Phil Dawes’ Stuff » Blog Archive » Global identifier schemes don’t scale II

Wednesday, March 8th, 2006

Phil continues his thoughts with the assertion that

>As the system gets big and less consistent, the global identifiers cannot guarantee to unambiguously identify things across the system

Immediately I don’t agree (quite respectfully). Phil, are you saying that a URI does not identify one and only one Resource?

I want to follow the rest of your reasoning, but I can’t get past this point.

Perhaps you are confusing identity with meaning? I agree that the semantic web allows for ambiguous meanings for things, and that there is no way to declare that a Resource *is* one single thing (where *is* means, *is an instance of a class*).

But, and please elaborate on this one, a URI allows us to talk about the same thing without any ambiguity. Of course, we may describe the thing with completely different views/contexts/words but at least we’re talking about the same thing.

I want to get to the rest of your post, but until I hear why a URI doesn’t uniquely identify a Resource, I’m stuck in confusion.

Thumbs Up for Expert Spring MVC

Wednesday, March 8th, 2006

Rakesh from the Spring Forums gave Expert Spring MVC a thumbs up. Thanks Rakesh!

> i just purchased the Expert Spring MVC and Web Flow book and I found it to be excellent

He did point out that there are quite a few typos in there. You can read my response on the forum, but basically “I know” was all I could muster and a promise to fix whatever I’m made aware of in the errata.

Still, kind words from a stranger.

Matt Raible Enjoying Expert Spring MVC

Wednesday, March 8th, 2006

Matt Raible is enjoying Expert Spring MVC.

>I just picked up the Expert Spring MVC one and I’ve been really enjoying it so far - great job Seth and co.

Very cool, thanks Matt! Coming from a fellow author, that means a lot.

Meaning is Context Relative, Not Identifiers

Wednesday, March 8th, 2006

Phil asked for clarification on a previous post, so hopefully with some sleep in me I can elaborate a bit more. I think I was trying to say that the concept of weight can be modeled in many different ways. This includes different ontological descriptions for weight, where weight can be identified using the same or different URI.

Take, for example, the URI http://example.org/xyz. You can say that:

<http ://example.org/xyz> a :Animal.

and I can say

<http ://example.org/xyz> a :Car.

The context here is Who Said What. What’s not up for question is that there is some Resource identified by <http ://example.org/xyz>, and that when we use that identifier, we are talking about the same thing.

For the semantic web to succeed, and this might be your point all along, the environment must be able to cope with the above situation (where you think the thing is an animal, and I think it’s a car) . This is difficult because of the Open World assumption, no doubt about it. For all the reasoner knows, something can be a :Animal and a :Car. It’s up to the authors of the ontologies to say that :Animal owl:disjoint :Car.

Even though the Open World assumption exists, URI’s still identify one thing. Now, whatever meaning you assign to that thing is your own. It’s the meaning that is context relative, not the identifier for the thing.

Essential Reading for the Web of Trust

Tuesday, March 7th, 2006

Essential RDF context is now required reading for anyone building the web of trust. Sometimes I feel the issue of *who* created the assertion is quietly swept under the rug. That information is extremely important, for I would want to tell my reasoner to trust statements about diseases from the Deptment of Health over Joe Bob any day.

This goes back to the problem of context for a triple. Who said it? When was it said? Was it signed (cryptographically)?

Response to Global identifier schemes don’t scale

Tuesday, March 7th, 2006

Phil Dawes wrote in Global identifier schemes don’t scale that context is required to make any statement about a Resource on a global scale (at least, I think he did :)
I completely agree, but that doesn’t mean his original point is correct. Global identifiers do scale globally, because at their core they have no meaning and are simply identifiers. It’s only further statements about the Resource the identifier identifies that provide meaning. And those statements are always given with a context.

Context on the semantic web, with its world of triples, has to be explicit, unfortunately. Phil’s original example, that of assigning a value to someone’s weight property, is a good one. The concept of context comes up depending on, you guessed it, the context.

Take, for example, the weight of a person. *When* the person weighed that much can be important under some contexts, but not others. My driver’s license says I’m 140 lbs, but I don’t always have that weight. In the context of the DMV, that’s my weight. Now, my weight for Jenny Craig is certainly time sensitive. Therefore, Jenny Craig’s RDF store and ontology would define weight properties with time qualifiers.

The great thing about all of this, is that the definition of what a weight is, is context specific. The semantic web doesn’t attempt to define the One, True Meaning for weight. It fully embraces that what you mean for weight is different than what I mean.

Getting back to identifiers, the issue of context of the data is not affected by global identifiers. What can make the semantic web actually work is that no matter the semantic meaning of weight, it is possible to talk about the same Resource. The Resource’s meaning becomes more valuable as we allow anyone to say anything about it. As long as we always know what “it” is. :)
Keep up the good work, Phil! Always a pleasure to read your blog.