
Taylor Cowan
(8982) Programming the Semantic Web in Java
Technical long talk 50 min
Thursday, 2009-06-25, 10:30 - 11:20, Arena 7
Taylor Cowan - Sabre Holdings (speaker)
Rate this talk:
Topics
- XML processing
- Integration and interoperability frameworks and techniques
- Real-world experiences and show cases
Abstract
At first glance OOP developers will find OWL (Ontology Web Language) familiar.
It has classes that inherit from other classes. It has properties that can be
related to particular classes using range and domain. It also uses familiar data
types in the way of xml schema (integers, strings, dates) which OOP developers
might find similar to primitives. And finally, it has individuals that are
declared as instances of classes. But beware. The similarities between OWL and
OOP are only skin deep.
Along with the similarities come subtle differences that might go unnoticed to
the eager OOP aficionado. Notably, multiple inheritance is allowed in OWL/RDF.
This obviously poses a problem in some cases if your intention is to mirror an
ontology with a one-to-one OWL class to Java class binding. An even more
interesting feature that OWL has over OOP (the Java flavor) is that OWL allows
class based restrictions to be declared on properties. When I introduce Java
developers to OWL I usually tell them that where Java is object focused, OWL is
property focused. Any tool that attempts to bind java objects to RDF must take
into account these differences. In ORM (Object Relational Mapping) developers
have recognized that there is an impedance mismatch between objects and
relational data models. Similarly, OOP and OWL have their own impedance
mismatch.
My talk will introduce the semantic web via the tools available to Java
developers, namely HP's Jena and Aduna's OpenRDF. I will introduce the audience
to the Jena api and how developers create, update, and query semantic web data.
The attendees will also gain understanding behind the various persistence
mechanisms available in Jena. Finally, I will introduce the Jenabean
(http://code.google.com/p/jenabean/) open source binding tool for Jena. It is an
annotation based object binding tool for Jena, HP's semantic web toolkit. The
project team is currently working on a JPA (Java Persistence Architecture)
styled programming model to further reduce the gap between RDF and the Java
community at large. Jenabean uses Java introspection techniques and dynamic
proxies to bind Java classes to the Jena RDF api, as well as assisting SPARQL
query authors with parameterized queries (similar to Java's PreparedStatement
api). Jenabean only depends on Jena and the JPA api. In other words, it does not
utilize any byte code tool sets. During my talk I will introduce the audience to
RDF/OWL basics and demonstrate the existing programming models. Then I'll share
with them the advantages of using a binding tool to simplify Java development in
the semantic web space. After attending this talk you will understand more about
what the semantic web entails, and how java developers can get their feet wet
and apply semantic technologies today using freely available open source tools.





