Archive for April, 2006

IBM Web Ontology Manager Released

Thursday, April 27th, 2006

IBM Web Ontology Manager has just been released.

> IBM Web Ontology Manager is a lightweight, Web-based tool for managing ontologies expressed in Web Ontology Language (OWL). With this technology, users can browse, search, and submit ontologies to an ontology repository.

Rails is Web Architecture Friendly

Monday, April 24th, 2006

I created a new Rails project today, using Rails 1.1 for the first time. There’s a little gem inside Controllers created by the scaffolding:

# GETs should be safe (see http://www.w3.org/2001/tag/doc/whenToUseGet.html)
verify :method => :post, :only => [ :destroy, :create, :update ],
:redirect_to => { :action => :list }

Not only is that so terse and simple to express in Ruby on Rails, but it’s the right thing to do. Any action that may result in modification of the resource should be performed with POST.

It’s great to see these types of Web Architecture best practices enforced, so that more applications are built with web friendliness.

Pellet 1.3 Available

Monday, April 17th, 2006

Pellet, an open source OWL reasoner from Mindswap, is now at version 1.3. It is a very capable reasoner, and has excellent integration with Jena.

Below is a list of changes for 1.3:

* ENHANCED: SPARQL query engine PelletQueryExecution tu answer non-SELECT queries

* ADDED: Processing class expressions in SPARQL queries

* ADDED: Treating bnodes in SPARQL queries as non-distinguished variables

* ADDED: Query optimization features (simplification and reordering). Reordering feature is
disabled by default and needs to be enabled in the configuration file.

* ENHANCED: Datatype reasoning support for user-defined datatypes

* ADDED: Support for InverseFunctional datatype properties (a.k.a. keys). (experimental)

* ADDED: Support for DL-safe rules (experimental)

* ENHANCED: Pellet command line options

* ENHANCED: More configuration parameters in pellet.properties

Semantic Web Talk Debrief

Friday, April 14th, 2006

The Semantic Web talk at HJUG went fairly well. About eight people attended, and a few have either used RDF or are currently using RDF and OWL. The questions from the audience were insightful, demonstrating that they were thinking critically about the technologies. Some questions were quite expected:

Q) If anyone can say anything about anything, what’s to stop someone from saying something wrong? How will I know *not* to use those incorrect assertions for my reasoning?

A) Good question! I have two solutions for this. The first is a Google-esque algorithm and hueristics will appear, allowing the top linked RDF documents to bubble to the top. That is, the more people that link to the RDF document, the more likely that the assertions contained within are valid for a majority of the views of the world. The second answer relies on ontologies, for they are able to determine if there are inconsistencies in the world. If someone says that cars and people are disjoint, and you have assertions in your RDF model that says X is a person and a car, then your reasoner can determine that at least one fact is incorrect. (of course, the hand waving here is that someone has to write the ontology, and you have to have a reasoner that provides feedback in a human readable way.)

Q) What if I use foaf:interest, but someone else uses yahoo:interest? My SPARQL queries won’t work.

A) You’re right, non-reasoning RDF stores won’t know that foaf:interest and yahoo:interest are the same thing (for your view of the world). Again, ontologies are required to provide the mapping between different ontologies. *If* you have a mapping ontology, and *if* your RDF store performs reasoning, then your SPARQL queries will work when you have two URIs for the same concept.

Q) So… what have people built with RDF?

A) The answer I gave here is the biggest adoption of semweb technologies has been bioinformatics, afaik. However, I couldn’t think of any business critical, production applications using RDF as a key component. I need to do more research here.

A better question might be, “What are some applications that utilize RDF/OWL that would have been very difficult to create otherwise?” And by applications, I mean business critical, production applications that customers use every day. I have a feeling that a lot of the RDF/OWL work is done for in-house, custom applications. What are those applications like? What scale have they been built out to?

All in all, a good talk. I met some people who are using Protege and Racer Pro to develop decision support applications for first responders. Don’t know if it’s a proof of concept of a deployed application yet.

The URI for RDF itself?

Tuesday, April 11th, 2006

Was wondering what the URI for RDF, *the concept*, is? There is http://www.w3.org/RDF/ but that’s the homepage for RDF, as far as I’m concerned.

Is there a httpRange-14 compatible URI for RDF *the idea*?

Is this a case of the shoemaker’s children going around barefoot?

Isn’t it semantic? - Interview with Tim BL

Tuesday, April 11th, 2006

Isn’t it semantic? is an interview with Tim Berners-Lee, from BCS. A choice quote:

Q: Ian Horrocks spoke to the BCS on ontologies, the application of which would clearly see a true Semantic Web, but how can we apply these principles to the billions of existing Web pages?

A: Don’t. Web pages are designed for people. For the Semantic Web we need to look at existing databases and the data in them.

To make this information useful semantically requires a sequence of events:

1. Do a model of what’s in the database - which would give you an ontology you could work out on the back of an envelope. Write it in RDF Schema or OWL (the Web Ontology Language).
2. Find out who else has already got equivalent terms in an ontology. For those things use their terms instead.
3. Write down how your database connects to those things.

Programming the Semantic Web Talk at University of Hawaii

Tuesday, April 11th, 2006

I will be giving a Programming the Semantic Web talk at University of Hawaii on April 12th, 2006, 6pm HST. The talk will be located in the POST building, room 302, at the
University of Hawaii Manoa campus.

I will attempt to explore the foundations of the semantic web (RDF, SPARQL, OWL) and what you can do with those technologies right now. I promised not to do any hand waving, and to show working code.

Here’s the talk’s abstract:

> The Semantic Web is an effort to enhance the current Web with machine processable information. It is a set of technologies and practices designed to allow machines to combine and reason about Web resources. This talk will explore RDF, the underlying data model for the Semantic Web, SPARQL, the query language for RDF, and OWL, the web ontology
language. We will look at deployable solutions with these technologies that you can use today. Problem spaces such as aggregation of multiple disparate information sources, flexible data models, and knowledge representation and reasoning will be addressed. Avoid the hype, this is the “stuff you can use right now” talk.

Rx4RDF

Monday, April 3rd, 2006

Rx4RDF is an entire Python application framework for full stack integration with RDF. From storage to presentation layers, it appears that every effort was made to utilize RDF as the foundation for data representation.

ActiveRDF has some competition.

ActiveRDF: object oriented RDF in Ruby

Monday, April 3rd, 2006

ActiveRDF: object-oriented RDF in Ruby is a paper submitted to Scripting for the Semantic Web 2006. Inside, the authors discuss the challenges and successes with using RDF as a storage backend for applications, much in the same way that RDBMS are currently used. Scripting languages, such as Ruby, offer the best chance for RDF integration, because RDF is so flexible, dynamic, and often untyped. Ruby, because it is so dynamic (you can easily add methods to classes, for instance), is a good way to see where the intersection between an OO scripting language and semantic web technologies mix.

I’d like to see integration with transactions, plus explicit support for Redland’s contexts. ActiceRDF is a great step forward in learning how deep RDF should go in the application stack.