<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Xebia Blog &#187; Semantic Web</title>
	<atom:link href="http://blog.xebia.com/tag/semantic-web/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.xebia.com</link>
	<description>Software development done right!</description>
	<lastBuildDate>Wed, 01 Feb 2012 00:30:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>JavaOne 2008 Day Four: That&#8217;s a wrap!</title>
		<link>http://blog.xebia.com/2008/05/10/javaone-2008-day-four-thats-a-wrap/</link>
		<comments>http://blog.xebia.com/2008/05/10/javaone-2008-day-four-thats-a-wrap/#comments</comments>
		<pubDate>Sat, 10 May 2008 17:28:44 +0000</pubDate>
		<dc:creator>Mischa Dasberg</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[JavaOne]]></category>
		<category><![CDATA[Semantic Web]]></category>

	<!-- AutoMeta Start -->
	<category></category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://blog.xebia.com/?p=561</guid>
		<description><![CDATA[Today was the last day of the JavaOne Conference. We came to the point when a lot of OutOfMemoryErrors where thrown. We just managed to squeeze in the last sessions. Today&#8217;s keynote was all about toys. The guys from the Netbeans team showed some new features such as a JavaScript editor (which contains code completion), [...]]]></description>
			<content:encoded><![CDATA[<p>Today was the last day of the JavaOne Conference. We came to the point when a lot of OutOfMemoryErrors where thrown. We just managed to squeeze in the last sessions.</p>
<p>Today&#8217;s keynote was all about toys. The guys from the Netbeans team showed some new features such as a JavaScript editor (which contains code completion), Sentilla showed there small sensor thingies, which you can program to gather information, such as acceleration, temperature etc.., LiveScribe showed there very cool pen and lots more.</p>
<p>Today&#8217;s topic included:</p>
<ul>
<li>User Experience</li>
<li>SOA</li>
<li>Semantic Web</li>
</ul>
<p><span id="more-561"></span></p>
<p><strong>Mischa and Erik Jan  on The Layperson’s Guide to Building a Better User Experience</strong></p>
<p>Burk Hufnagel showed in his presentation how to <italic>leverage the skills you already have and build experiences that delight your users.</italic></p>
<p>The term “User Experience” describes how people feel about using something. This is very important, because if the experience isn&#8217;t satisfying,</p>
<ul>
<li>The ability to get things done is slow.</li>
<li>The software will be replaced by software that does have a satisfying experience.</li>
</ul>
<p>The Layperson&#8217;s guide is a guide for non-experts, on how to develop the best &#8220;User Experience&#8221; for the target group.</p>
<p>So what affects the user’s experience?</p>
<ul>
<li>Interaction Design</li>
<li>How the users thinks it works.</li>
<li>How the system is actually built.</li>
<li>How the system presents itself to the user</li>
</ul>
<p>Doing Test Driven Design has a couple of benefits like</p>
<ul>
<li>Writing tests first makes it easier to you create the right interfaces and behaviors later.</li>
<li>Writing tests first can reduce the chances of the implementation model leaking into the representation model.</li>
</ul>
<p>So how do you start? Well identifying the Key users is a good start.<br />
They are te ones that must be satisfied for the product to succeed in the market.<br />
Next you need to develop Persona&#8217;s, figure out there behavior, motivation and goals. It may take some time to get to the<br />
bottom of this, but it is better then to guess what they want. Try to limit the amount of persona&#8217;s, because you need to create<br />
an interface for all of them, to be able to get the best User Experience for all Key Users.</p>
<p>Developing like this may take a little more time on startup, but will gain a lot in the end.</p>
<p><strong>Jeroen on the Semantic Web</strong><br />
Today I had another talk on the Semantic Web, this time a real Technical Session by one of the same guys who talked in yesterday&#8217;s discussion panel, Dean Allemang from TopQuadruant. His talk was similarly titled as his book: Semantic Web for the Working Ontologist.</p>
<p>One of the best ways to describe the semantic web is probably using the following sentence: From data on the web to a Web of Data. Our current Web mostly consists of data that us humans can interpret as meaningful, but it has no meaning whatsoever to machines. In the Semantic Web, it is all about adding another dimension to data so that both humans and computers can reason about the data.</p>
<p>One of the standards for the Semantic Web is the Resource Description Framework (RDF). RDF is a way of storing data as triples (subject, predicate, object) distributed across a network, using URI&#8217;s as identifiers  for the data. For instance if I wanted to model the plays Hamlet and Romeo and Juliet written by Shakespeare in RDF I could write down the following:</p>
<pre>
(1, my:writer, Shakespeare)
(1, my:title, Hamlet)
(2, my:writer, Shakespeare)
(2, my:title, Romeo and Juliet)
</pre>
<p>However as you can see, my:title could be very different from your:title. Where my:title is the title of the play, your:title could be your degree, like &#8220;MSc.&#8221;. This means that the first requirement for the Semantic Web is that we need to agree to disagree. Using namespacing we can assign different meanings to the same terms.</p>
<p>The Semantic Web is all about data, and not about how you represent the data. Yo can chose your own representation and map that to someone else&#8217;s representation. For example, if I wanted to say that my:writer is the same as a Dubblin Core author, I could write down the following RDF triple:</p>
<pre>
(my:writer, owl:equivalentProperty, dc:author)
</pre>
<p>Now anyone knows that if I say writer, I am actually talking about an author. What is nice is that RDF is used for both the data, as well as the schema. Usig these constructions we can build an ontology. An ontology is best described as: A reusable component of a distributed semantic model. A well known example of an ontology is the Dublin Core standard.</p>
<p>This primer into the Semantic Web was pretty good and clear. I hope they&#8217;ll give some more talks on this subject.</p>
<p><strong>Marco on his day</strong><br />
<em>Keynote: extreme innovation</em><br />
This one was about some of the really cool things you can do with Java. The absolute highlight was the Pulse smartpen, a Java-enabled pen that can not only record what you write &#038; what you hear at the same time, but also order a cup of coffee. In Mandarin. Also noteworthy was a car that can drive &#038; park by itself, which will become hugely popular amongst Asian people &#038; women, I hope.</p>
<p><em>Designing GUI&#8217;s 101: From User Needs To Usable GUI&#8217;s</em><br />
Thank heaven this one only lasted for about 30 minutes, as absolutely nothing new was said (&#8220;so we first need to ask the users what they want, then create a prototype, and then ask the same users again what they think of it? Brilliant!&#8221;).</p>
<p><em>Using SOA, EAI, and BPM to reengineer Legacy Applications to Java 2 Platform, Enterprise J2EE Platform</em><br />
A real-life story about how to drag a legacy system kicking &#038; screaming into the 21st century. I really dug this one, with a very energetic speaker talking about how they wanted to save 30 years of business logic stored in the system by putting JNI on top of it, then later taking another step into the future with SOA. One lesson learned: apparently it&#8217;s easier to teach Java developers assembly code than vice versa. Which should insult me in some way as I started out doing machine language, but I&#8217;m just too tired to care at this point.</p>
<p><em>Open Source Development Tools fir the Java Platform, Enterprise Edition (Java Platform), Web 2.0 and SOA</em><br />
The final session I attended and it sure was hot, temperature wise that is. The demo gods still seemed to be angry, resulting in the room telling the presenter what to do, instead of the other way around (rule #61: if there is a stack trace, study it to see what is wrong – it will save time). After a change of subject (JBoss ESB instead of Seam) things got pretty interesting again, too bad it wasn&#8217;t possible anymore to get hold of the free development cd.</p>
<p><em>Epilogue</em><br />
It was really clear that this was the last day, as both the number of visitors and the energy level of those still present was down. After attending so many sessions (and writing about them to boot) I myself am &#8216;stuffed&#8217;, but all things considered it was a fantastic experience, and I certainly learned a lot. I&#8217;m glad I decided to concentrate on one track (SOA), even though it means I missed out on some other great presentations. Then again, my esteemed colleagues saw those, and I&#8217;m pretty sure they will blog about it as well somewhere else.</p>
<p>What do you mean, they share this space with me? I&#8217;m a star damn it, I deserve my own space! Now go get me some monkeys!</p>
<div name="googleone_share_1" style="position:relative;z-index:5;float: right; margin-left: 10px;"><g:plusone size="small" count="1" href="http://blog.xebia.com/2008/05/10/javaone-2008-day-four-thats-a-wrap/"></g:plusone></div><p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fblog.xebia.com%2F2008%2F05%2F10%2Fjavaone-2008-day-four-thats-a-wrap%2F&amp;title=JavaOne%202008%20Day%20Four%3A%20That%26%238217%3Bs%20a%20wrap%21" id="wpa2a_2"><img src="http://blog.xebia.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.xebia.com/2008/05/10/javaone-2008-day-four-thats-a-wrap/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>JavaOne 2008 Day Three</title>
		<link>http://blog.xebia.com/2008/05/09/javaone-2008-day-three/</link>
		<comments>http://blog.xebia.com/2008/05/09/javaone-2008-day-three/#comments</comments>
		<pubDate>Fri, 09 May 2008 07:31:01 +0000</pubDate>
		<dc:creator>Erik Jan de Wit</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[Groovy]]></category>
		<category><![CDATA[JavaOne]]></category>
		<category><![CDATA[OSGi]]></category>
		<category><![CDATA[Semantic Web]]></category>

	<!-- AutoMeta Start -->
	<category></category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://blog.xebia.com/?p=560</guid>
		<description><![CDATA[Today was the third day of the conference. Another couple of hours to go and then it is all over again. The fatigue is kicking in, and we&#8217;re starting to run on reserve power. The topics of today included: Mylyn Groovy Semantic Web SOA OSGi Erik Jan on Mylyn It&#8217;s now the third day of [...]]]></description>
			<content:encoded><![CDATA[<p>Today was the third day of the conference. Another couple of hours to go and then it is all over again. The fatigue is kicking in, and we&#8217;re starting to run on reserve power. The topics of today included:</p>
<ul>
<li>Mylyn</li>
<li>Groovy</li>
<li>Semantic Web</li>
<li>SOA</li>
<li>OSGi</li>
</ul>
<p><span id="more-560"></span><br />
<strong>Erik Jan on Mylyn</strong><br />
It&#8217;s now the third day of the JavaOne and the signs of fatigue are beginning to show, so today I haven&#8217;t been to any Bird of a Feather sessions at night. I did go to a session about Mylyn. I&#8217;ve blogged about it <a href="http://blog.xebia.com/2007/12/26/mylyn-eclipse-plugin/">before</a>, but I was impressed with what they have done with it. They have added a lot of connectors for different issue tracking system. One of the things I&#8217;ve missed, which they&#8217;ve now announced  is the ability to automatically log time worked on an issue. Also they have created a perspective where you can keep more context for your task so that any webpages that you have looked at are also saved with your task.</p>
<p>With a demo the presenter showed another great use for Mylyn. When you&#8217;re pair programming for instance, and one of the two is going home, you can easily create a patch of the changes and save it with the task similar to the context. Your colleague can then easily continue the work on his own computer.</p>
<p>So my next project we all are going to use Mylyn, so that we can track the work that has been done and improve on our estimates. The added benefit of pairing and taking over will simplify pair programming.</p>
<p><strong>Jeroen on Groovy scripting and the Semantic Web</strong><br />
To start off my day. I attended the Groovy and Grails talk by Guillaume LaForge and Graeme Rocher. Unfortunately Graeme was ill, so Guillaume did the presentation on his own. In this talk he went further than during the scripting bowl. People got to experience first-hand what it means to have the power of the Meta-Object Protocol (MOP) at their hands. Although Groovy is not the only language with a MOP &#8211; Ruby, Lisp and Smalltalk also have one -, we focus on this language.</p>
<p>THe Meta-Object Protocol makes Groovy a dynamic language. It makes it possible to add and override methods and properties to existing class definitions at runtime. Two small examples which Guillaume showed us were the following:</p>
<p>Adding methods at runtime</p>
<pre lang="java">
class Dog {}
Dog.metaClass.bark = { -> "Woof" }
def d = new Dog()
print d.bark()
==> Woof
</pre>
<p>Override method at runtime (Note: This is not a good idea&#8230;)</p>
<pre lang="java">
Integer.metaClass.plus = { Integer i -> 1 }
3 + 4
==> 1
</pre>
<p>Next to that, he also explained some nice methodMissing tricks, in the next code sample, the missing method will be added to the class definition so that the next time the penalty of going through methodMissing is removed.</p>
<pre lang="java">
class Dog {}
Dog.metaClass.methodMissing = { String name, args ->
	def cached = { Object[] a -> println "Dogs don't $name"}
	Dog.metaClass."$name" = cached
	cached.call(args)
}
new Dog().quack()
</pre>
<p>In all Guillaume showed what the power of Groovy over Java is, and what Groovy can contribute to your current enterprise application development.</p>
<p>After the lunch I went to the Semantic Web panel discussion. Here we had a panel of 5 Semantic Web gurus who held a discussion, showed some cool apps, and andwered questions from the audience. What soon became clear was that the current focus is on the Semantic Web as a social networking tool. Many of the demo applications were centered around that theme.</p>
<p>According to these gurus, the problem with the current social networks is that there are too many, and each of those is centralied and lives on its own island. The Semantic Web can help in this aspect. There are no competing standards, everything is interoperable, and it is decentralised, everything is identified by its own URI. One demo showed an addressbook, in whch you could drop yourself, and easily gain access to your friends, and your friends&#8217; friends, etc.</p>
<p>Another big announcement they gve was that Yahoo! will be adding RDFa to all it&#8217;s pages and will be pushing it out through its APIs. This is a big step, which will make Yahoo! a semantic company joining other companies such as Reuters and the W3C as supporters of Semantic standards. Adding the RDF means adding semantic tags to the pages. A semantic tag is different from a normal blog tag in that it gives a meaning to the data such as whether it is a place, an organization, a person, or something completely else.</p>
<p>After almost 10 years, we&#8217;re finally taking steps to where Tim Berners Lee envisioned we should be going with the web, but the full Semantic Web is still far away. We can only hope that this step by Yahoo! will be followed by more companies.</p>
<p><strong>Marco on his (SOA) day</strong><br />
<em>Sun Java Composite Application Platform Suite: Implementing Selected EAI Patterns</em><br />
At JavaPolis I was constantly being told what a great book Enterprise Architecture Patterns was, so as soon as I returned to the office I had it ordered. Unfortunately I haven&#8217;t really had the chance to put it to use it since then, as my last project was not exactly suited for this type of approach. This session, although a bit dry, rekindled my interest, showing real life implementations of those patterns using Sun&#8217;s Java CAPS. Now let&#8217;s hope that at least this time I will be able to use all the knowledge I gathered.</p>
<p><em>LifeCycle ES: Adobe&#8217;s Java 2 Platform, Enterprise Edition (J2EE Platform), SOA Platform</em><br />
One thing is sure: there&#8217;s no lack of platforms in this session&#8217;s title. Even more than the previous session it was centered around a product, in this case created by the very same company that is famous for their Acrobat reader. Keeping that in mind, it wasn&#8217;t too surprising that the demo was about doing a PDF processor. Now I&#8217;m still not sure how that was connected to the SOA stuff, but that might also be because I was too busy trying to remember of what actor the speaker made me think of (French Stewart of 3rd Rock –mostly because of the nasal voice).</p>
<p><em>Converting Large Applications to OSGi</em><br />
I knew only the basics of OSGi because of a session I attended by Peter Kriens at JavaPolis, and was warned by the very same speaker (well, not personally of course &#8211; although he did look directly at me when he addressed the room) that the subject could become a bit hard to grasp. He needn&#8217;t have feared: it was a very clear talk, with some useful instructions how to tackle the conversion of an already existing application.</p>
<p><em>Composite Application Design Patterns</em><br />
Proof that even I make mistakes sometimes (everybody who knows me personally: stop laughing) I decided to ditch a session about choosing the right web for this. Basically it was nothing more than presenting some patterns people at SAP came up with in such a fashion that it added absolutely nothing extra to just checking the powerpoint. Now I know giving an interesting, lively presentation is really difficult but c&#8217;mon, there weren&#8217;t even any monkeys! How can you have a session about this subject without any monkeys? It&#8217;s crazy, that&#8217;s what it is ..</p>
<p><em>Designing Service-Oriented Architecture Applications with OSGI</em><br />
Today&#8217;s final session took place several hours after my last one, but it was well worth going back to Moscone center for. A panel of 4 told us about the pros and cons of using OSGi based on their experience of using it to build the new version of JBoss ESB. In general they were very positive, giving some extra credit to the whiteboard pattern. Now I have never heard of it before, but it&#8217;s clear that with a name like that it must be something that can wipe all erroneous legacy code in one sweep.</p>
<p>Yes, I&#8217;m kidding.</p>
<p><em>Epilogue</em><br />
Another very SOA-centric day, and the pieces start falling into place. I could have done without the session given by the SAP guys, but alas: win some, lose some. Tomorrow I&#8217;ll actually do some sessions from other tracks as well, here&#8217;s hoping they will be as interesting as most of those I&#8217;ve attended so far.</p>
<p><strong>Mischa on Converting (Large) Applications to OSGi</strong><br />
BJ Hargrave and Peter Kriens are experts on OSGi and the goal of there presentation was to &#8220;Learn us how to Simplify Application Development by Building for the OSGi Service Platform&#8221;</p>
<p>OSGi is the dynamic module system for Java.<br />
The Standard approach to modularization in Java has a couple of issues like:</p>
<ul>
<li>Granularity of classes and packages is too small for real world applications</li>
<li>Jars provide packaging, but can not be used to restrict access</li>
<li>Severe problems like split packages</li>
<li>No versioning support</li>
<li>Has no proper extension/collaboration model</li>
</ul>
<p>Now the OSGi framework features the following:</p>
<ul>
<li>Class loading dispatch based on package name</li>
<li>Allows multiple versions of the same class in one VM</li>
<li>Jars can contain exported packages or private packages</li>
<li>Bundle == Jar (Manifest contains metadata)</li>
<li>Services provide a collaborative in-VM SOA model</li>
</ul>
<p>So it contains all we need.</p>
<p>So how do you convert your application? Well, one step at a time.</p>
<ul>
<li>Analyse what the dependencies between the jars are.</li>
<li>Make a project with your application and all its dependent jars</li>
<li>Create a bundle activator that calls main (Include all libraries into one bundle).</li>
</ul>
<p>Having a working bundle (whatever the size) is a good baseline and allows for gradually replacing the dependent jars with bundles<br />
<strong>Keep it working!</strong></p>
<p>Now there is a working version, start breaking up the bundle in smaller bundles.</p>
<p>Currently there are several open source projects that provide OSGi metadata:</p>
<ul>
<li>Apache (Derby, Struts, Felix, etc)</li>
<li>All Eclipse code</li>
<li>Codehaus Groovy</li>
</ul>
<p>To make it even nicer there are also a couple of repositories online, so you don&#8217;t have to do all the work yourself. SpringSource Enterprise Bundle Repository is an example.</p>
<p>Unfortunately there are a few pitfalls such as:</p>
<ul>
<li>Too much at once (Get the complete application to work on OSGi, modularize a part, test, and iterate in small increments)</li>
<li>Dynamic Class Loading (Most of the time custom class loaders are abused in applications, get rid of them)</li>
</ul>
<p>So be careful and start small.</p>
<p>For those of you who want to look at some OSGi application models, have a look at the following examples:</p>
<ul>
<li>Spring-DM (formerly called Spring-OSGi)</li>
<li>Apache iPOJO</li>
<li>Service Application Toolkit</li>
<li>OSGi Declarative Services</li>
</ul>
<div name="googleone_share_1" style="position:relative;z-index:5;float: right; margin-left: 10px;"><g:plusone size="small" count="1" href="http://blog.xebia.com/2008/05/09/javaone-2008-day-three/"></g:plusone></div><p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fblog.xebia.com%2F2008%2F05%2F09%2Fjavaone-2008-day-three%2F&amp;title=JavaOne%202008%20Day%20Three" id="wpa2a_4"><img src="http://blog.xebia.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.xebia.com/2008/05/09/javaone-2008-day-three/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
<!-- This Quick Cache file was built for (  blog.xebia.com/tag/semantic-web/feed/ ) in 0.85232 seconds, on Feb 9th, 2012 at 4:40 pm UTC. -->
<!-- This Quick Cache file will automatically expire ( and be re-built automatically ) on Feb 9th, 2012 at 5:40 pm UTC -->
