SemWeb

Thursday, 18. May 2006

Jean Rohmer and his talk on Ideliance

Yesterday we had two great happenings at DFKI:
  1. Jean Rohmer giving a talk on Ideliance and AI
  2. Gunnar Grimnes celebrating norwegian day
The second will be blogged soon on my private blog, the first is interesting for the Semantic Web out there.

Jean Rohmer, who published a paper last year on Lessons for the future of Semantic Desktops learnt from 10 years of experience with the IDELIANCE Semantic Networks Manager visited us to give a similar talk and discuss about Nepomuk.

Jean Rhomer giving a talk at Kaiserslautern University

More background knowledge about Jean Rhomer: He is a key person in spreading AI in France, as he was responsible for AI at Bull Computers in the 70ies and 80ies, a company that had ~70k employes in its best times, around 200 on AI. He lead the AI department there, google for him.

I will sum up the most witty remarks of his talk:
  • In the 70ies, prolog was the thing and as you didn't have internet, you really had to look for it.
  • In the 90ies, when investment in AI declined, the AI Winter started
  • I survived the AI winter by continuing AI and making a product out of it
  • 90's AI apps didn't look different from procedural apps for end-users.
  • AI was then an expensive way to save money, which only few could afford
  • AI kept fighting and losing against software engineering.
  • The Semantic Web is a compromise between Natural Language Processing and AI.
In the 70ies there was a stop in innovation on the hardware side, IBM machines where all the same for years. So software was the key for innovation. We see a similar situation today: the operating systems do not change much (windows 2000 is the same as XP, Linux evolves steadily) and the hardware is always the same, just getting faster and bigger. So software makes the difference (as we see in the hype of web services).

So Software can make the next innovation.

Then this happend during Jean's talk and demo of idealance: a bug when clicking a link on ideliance web interface. His reaction was tremendous:
  • alt-tab to server/switch debug on/switch to code editor
  • (all we saw was weird symbols that looked like compiled byte code)
  • scroll down two lines
  • mutter something like "ah, ok"
  • enter two weird greek symbols
  • alt-tab back to demo, it works
  • all this in less then 15 seconds
So what he did was, that during a talk before audience, he had a bug, didn't get nervous, found the bug, fixed it and didn't even had to restart. I have never seen something like this before, and the secret behind is:

A Programming Languages
In a session after the talk, we discussed programming languages for the Semantic Desktop, also we wanted to know how he did that bugfixing magic and what these weird symbols were. We were flattened about the statement that Ideliance was completly programmed using APL (A programming language).

We asked him to show us code, and he replied that he will instead teach us how to code APL. behold, this is what Jean Rohmer has written on a Flip-Chart:
DSC00353

The explanation is: that code selects all classes CS of an instance X, for each class C in CS, selects all other instances CI, for all these instances I select all triples, from the triples select all properties.

Then group these properties in a matrix, sort them and only return top X of them.

To do this in SPARQL, you would roughly do:
SELECT p WHERE x rdf:type C. I rdf:type C. I p o.

But then you would need some sorting, merging, splicing.

APL is the weirdest thing I have ever seen, but it has many pieces of code in it that are very useful for handling RDF, though. Jean Rohmer and Gunnar Grimnes are both Prolog fans and they chatted about the relations between ADL and prolog.

*Epilogue*
Using Java to program Semantic Web applications surely is hell when you have to do things like set operations. At the moment I program bits and pieces of the rebirth-machine, for example this code would be much nicer in APL. So we seriously think about combining SPARQL and prolog into some nice semantic web scripting language.
QR barcode by i-nigma.com/CreateBarcodes
george22 - 19. Nov, 07:52

Hi. I've been taking the Mirafit religiously since I received it but I don't know whether it's doing anything or not. The only thing I feel is gassy and constipated. Do I need to take it longer to get results? Of course, I just got off some medications that could have been causing the other things too. I will continue tocheap trench coats for women / / cheap trench coats for men / / leather coat sale / / italian leather coats / / vintage leather coat / / wholesale leather coats / / leather waistcoat women / / kids quilted jacket / /

Friday, 5. May 2006

and yes, we are far from perfect

ESWC2006, a conference that aims at the semantic web, has a registration system that does not support firefox. In our group we base all our extensions and plugins on firefox and I am using it right now, so I feel "uncomfortable and unwelcome" (cite: movie "your studio and you"). So, the positive view is that they decided not to invest much into the web interface to invest more into the conference. Horray. Here is the quote from the website:

Quote: Firefox is not supported at this time. Recommended browsers are below.
Online Registration System best used with the following browsers:
Internet Explorer (version 4.01 or higher and Netscape 4x-7)


Definition of the Semantic Web:
The Semantic Web provides a common framework that allows data to be shared and reused across application, enterprise, and community boundaries.
  1. Firefox is a boundary of the semantic web
  2. How can a web-application be programmed so badly it only supports one browser? Oh, ASP :-)
  3. Don't they see that all this is obviously wrong?
  4. The world is imperfect.
and otherwise, the conference rules.
QR barcode by i-nigma.com/CreateBarcodes
leobard - 5. May, 23:36

if you don't believe it

like I did, I filled out the whole thing and really, at the end when you press submit, it says error 500.

leobard - 5. May, 23:45

whoa, now IE doesn't work either

Now leobard used Internet Explorer and see - the system fails again, but with a different flavor. Rocket science happens.

I hope that I get registered there somehow soon, the conference as such is really good.

leobard - 9. May, 17:38

finally registered

ok, the second bug was not severe, I am registered!

The error message was "This transaction has been
denied"

BrettspielBrowser - 11. May, 23:09

Semantic Web, Web Services, hellooooo, where are you??

The last time that I registered at a conference I had to print out some ugly form, fill in the details by hand onto the paper (with a pen!) and the fax(!) the nasty paper to the conference. I could not believe it...

Where do you want to go today?

Monday, 1. May 2006

gnowsis 0.9.0 release

The knowledge management lab at DFKI, Kaiserslautern releases the Gnowsis Beta 0.9.0 today!

Gnowsis is a tool for realising a Semantic Desktop - a desktop where all your data is inter-linked and related. Gnowsis gives you a tool for structuring your data as well as your thoughts! This release is part of the Nepomuk project, providing a prototype implementation of some core services.

Gnowsis 0.9.0 is a brand new release of Gnowsis. It contains a wiki, a simplified ontology editor and plugins to tag files and e-mails in thunderbird. The core idea of Gnowsis remains but most of what goes on underneath the interface has been re-engineered. In the new Gnowsis we have thought longer and harder about our use of ontologies, our use of desktop applications as RDF datasources, and the separation of a user's data and his mental model of the same. The result is a new cleaner, faster and happier Gnowsis!

Some of the new features of Gnowsis 0.9 include:

  • Integration with Aperture for easy integration of the data in the applications you already use on your desktop!
  • A new approach to personal information management. We call it your PIMO
  • Integration with Kaukolu Wiki.
  • goodies for developers: AJAX support with XML/RPC
  • Quick and easy full-text searching of all your data using Lucene.

Download:

Documentation:

Gnowsis 0.9 runs on Windows, Linux and Macosx.

QR barcode by i-nigma.com/CreateBarcodes

Friday, 28. April 2006

gnowsis and AJAX: running SERQL queries with XML/RPC

Gnowsis rocks so hard that the neighbours complain. read on to know why:

(also available at this wiki page)

XML-RPC developing with gnowsis

Yes, we have AJAX, and we love it. You can call many services of gnowsis using XML/RPC. The nice thing about this approach is, that every object that is defined as API of gnowsis inside a service.xml file is automatically hosted as XML/RPC server. A small example to show what you can do when calling the TaggingApi:

// Example: call method getPossibleTagsForTagName of API 'tagging' on service 'gnowsis-server'
// (include gnowsis.js and jsolait dependencies)

// call method
var tags = gnowsis_callXmlMethod("gnowsis-server", "tagging", "getPossibleTagsForTagName", rlabel);
// result is an array of maps
for (var i = 0; i < tags .length; i++)
{
  // tag is a map, an array with named index.
  var tag = tags[i];
  // read uri and name of result
  var tagUri = tag["uri"];
  var tagName = tag["name"];
  alert("hey, I found "+tagName+" ("+tagUri+")");
}

What happens in this script?

First the dependencies: to make this run, include the gnowsis.js dependencies. If you run gnowsis, go to http://127.0.0.1:9993/gnowsis-server/PimoTaggingAPI.html for an example.

// (include dependencies)
<head>
<script type='text/javascript' src='web/jsolait/init.js'></script>
<script type='text/javascript' src='web/jsolait/lib/urllib.js'></script>

<script type='text/javascript' src='web/jsolait/lib/xml.js'></script>
<script type='text/javascript' src='web/jsolait/lib/xmlrpc.js'></script>
<script type='text/javascript' src='gnowsis.js'></script>
</head>

When you have done that, the gnowsis_callXmlMethod() function is available. You can test that by calling something simple as this:

// show the uri of the current user.
alert(gnowsis_callXmlMethod('gnowsis-server','configure','getUserUri'));

We called a method to get tags with a certain name in it. The gnowsis_callXmlMethod() method takes three (or more) parameters. The result value is an XML/RPC result. If you want to know what is possible in XML/RPC see at the bottom for the external links. The result value is, in this case, an array containing named arrays (maps).

var tags = gnowsis_callXmlMethod("gnowsis-server", "tagging", "getPossibleTagsForTagName", rlabel);

Note that when the server throws an exception, the exception message will be passed to the xml/rpc client, so you know whats happening when it fails.

The real rocking cool example

Download gnowsis and run this page:

using only these lines of code:

function runSerqlExample()
{
   // turn debug alerts off
   gnowsis_showdebugalert = false;
   var formC = document.forms["formserqlexample"];
   var queryString = formC.elements["rquery"].value;  
   try  {
	   var res = gnowsis_callXmlMethod("gnowsis-server", "dataaccess", "querySelect", 
    	  queryString, "serql");
   } catch (e)
   {
     alert("error querying: "+e);
   }
   renderSerqlExample(res);
}

/**
 * render the serql query result.
 * query result is a vector of hashmaps, pretty easy.
 */
function renderSerqlExample(res)
{
   gnowsis_debug("rendering table");
   var render = "<table>";
   for (var i = 0; i < res.length; i++)
   {
      var row = res[i];
      
      // render header?
      if (i==0)
      {
      	render+="<tr>";
		for (col in row)
		{
          render += "<td>"+col+"</td>";   
        }
        render += "</tr>";
      }
      
      // render row
      render+="<tr>";
      for (col in row)
      {
        render += "<td>"+row[col]+"</td>";  
      }
      render += "</tr>";
   }
   render += "</table>";
   var exampleOut = document.getElementById('SerqlExampleoutput');
   gnowsis_debug(render);
   exampleOut.innerHTML = render;
   gnowsis_debug("finished");
}

yes, you want to dig this?

So what services can I call?

You can call all services that are listed in the corresponding service.xml files.
We encourage you to look at this service first:

  • TaggingApi, you can call the methods defined in the TaggingApi - Javadoc
  • PimoStorage, you can add/remove triples from the pimo via this api.
  • every gnowsis-server API that is listed.
  • note that you can only call methods that have really simple input/output values. Not every method is allowed for XML/RPC access, we are currently working on making more methods available. Only methods with the following datatypes as input/output work:
    • no void result supported (XML/RPC standard)
    • Integer, Boolean, String, Double, javaa.util.Calendar, java.util.Date, byte[], java.util.Map, java.util.List
    • no more. espacially this will not work: com.hp.hpl.jena.rdf.model.Resource !
    • we are working on providing String-based interfaces for most of our methods.

And what about Mozilla and XUL?

Now comes the tricky part: You want to write an XPI plugin for Mozilla Firefox or Mozilla Thunderbird and access the nice sesame repository of gnowsis. That is possible, but it needs an adapted version of the jsolait library and it is easier to copy/paste our working prototype than to hack something from scratch.

So, all Mozilla fanatics that want to SPARQL from out there, please look at the code of this SVN project:

All you have to do is copy/paste the whole project, change some parameters, run the build.xml and you have a plugin for Thunderbird 1.5.

Ok, I want to do AJAX with gnowsis, what to do?

So the first thing you have to do, is run through the usual GnowsisDevelopingBeta. Then, you have a running gnowsis server with all the XML/RPC services available on localhost:9993.

The best way to use gnowsis XML/RPC and AJAX services is, at the moment, to edit the HTML files in /services/gnowsis-server/*.html. They form a nice basis to get started, we frequently enlarge them with more examples. You can also start any other HTML project on your harddisk, Javascript and JSOLAIT are rock-hard technology and run pretty easy.

Restrictions and caveats

No real ajax library used yet. Did you notice? we did not use coldfusion or any other cool Ajax library. We will, surely, soon do that.

Be aware that our server only answers to requests coming from 127.0.0.1. So, you will not be able to run server-to-server programs with it. That is good that way: gnowsis is a desktop server, not a web server. If you feel to change that, you may want to look at that jetty.xml file closer, but be warned: opening gnowsis to the network is not just a small security risk, its really a problem. Don't open the gnowsis ports to outside, people can easily run shell commands via the XML/RPC port with your user's rights and cause havoc on your machine.

Links

Apache XML/RPC doc

Dynamic HTML and XML: The XMLHttpRequest Object

QR barcode by i-nigma.com/CreateBarcodes

Tuesday, 25. April 2006

Simple, XSLT friendly RDF/XML

We need a simple RDF/XML serialization for XSLT transformations. I wrote my ideas about this here:

esw.w3.org/topic/SimpleRdfXml

SimpleRdfXml

Using the general RDF/XML spec, the RDF serialization can look quite different depending on rdf-writer implementation. These diversity in writing RDF makes writing XSLT transformation a black art. What happens is that the data shows up in so many different ways, that many people write big hacks to get it work.

Solution: a simple RDF/XML syntax that is RDF/XML compatible but has some restrictions to it. It is kind-of deterministic and can be better parsed in XSLT. I [LeoS] call it SimpleRdfXml.

See Also

Example

This is a fragment of FOAF, using the simpleRDF/XML

 foaf-example:
 <rdf:RDF
    xmlns:foaf="http://xmlns.com/foaf/0.1/"

    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:vs="http://www.w3.org/2003/06/sw-vocab-status/ns#"
    xmlns:wot="http://xmlns.com/wot/0.1/"
    xmlns:dc="http://purl.org/dc/elements/1.1/" >
  <rdf:Description rdf:about="http://xmlns.com/foaf/0.1/firstName">
    <rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>

    <vs:term_status>testing</vs:term_status>
    <rdfs:label>firstName</rdfs:label>
    <rdfs:comment>The first name of a person.</rdfs:comment>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>

    <rdfs:domain rdf:resource="http://xmlns.com/foaf/0.1/Person"/>
    <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
    <rdfs:isDefinedBy rdf:resource="http://xmlns.com/foaf/0.1/"/>
  </rdf:Description>
</rdf:RDF>

Design Rules of SimpleRdfXml

  1. be compatible with RDF/XML

  2. but only a subset

  3. restrict stuff to simplicity

Rules

  1. no nested stuff

  2. all literals as <foaf:name>Hello!</foaf:name> and not attributes like <blub foaf:name="Hello!">

  3. no blank nodes (replace them wirth random uris while serializing)

  4. serious: no blank nodes. They force you to check all the time for different ways to lookup resources.

  5. only full uris, no relative ones

  6. type always as triple, not in xml

Implementations

Using Jena, the easiest way to get it is:

simple rdf:
Model m = ...;
m.write(System.out, "RDF/XML");

bad rdf:
m.write(System.out, "RDF/XML-ABBREV");

more detail

No nested stuff

All literals as elements, not attributes

Querying from XSLT is easy with both, but having to check both all the time sucks. Most hackers go with the element solution, as it can contain datatypes and languages and can have better strings with CDATA elements.

No blank nodes

Thats hard to achieve. The idea behind is to easily query other nodes and follow links, when blank nodes are in game, this is harder.

Full URIS

In foaf-vocab, there is a uri called "../sig" which is the show-stopper. don't do it

Type always as triple

Wrong: <foaf:Person rdf:about="urn:example"> Right:

<rdf:Description rdf:about="urn:example"> 

  <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Person"/>

When things have two types, this comes in handy. Again, a step for making it simpler.

Contra-Example

This RDF is BAD RDF and is not simple, it breaks the rules: nono:

<foaf:Person rdfs:label="blub">
  <rdfs:commment>asdafsd</rrr>
  <rdf:hasblub >

     <rdf:descrip....

SimpleRdfXml (zuletzt geändert am 2006-04-24 18:16:00 durch LeoS)

QR barcode by i-nigma.com/CreateBarcodes

Friday, 14. April 2006

Nepomuk meeting in Paris

Wednesday and thursday we had a smaller Nepomuk meeting in Paris to synchronise the Semantic Desktop backbone architecture with the plans of some Nepomuk Partners. Thomas Roth-Berfghofer and myself went to see Mikhail Kotelnikov, Alexander Polonsky, and Stéphane Laurière. The first two are from cognium systems and are working on a software to support bioscientists with Semantic Desktop technology, the latter is working for Edge-IT, who provide services to the Mandriva Linux community (the mandriva club).

Meeting was very productive, getting practitioners and scientists together to see how the Semantic Desktop can help people at large. Photos of the meeting are here:

http://www.flickr.com/photos/leobard/tags/dfkiedgeitcog2006041213/

Looking forward to our upcoming Semantic Desktop hack next week and the big Nepomuk Meeting at the beginning of may, people come together now on Semantic Web.
QR barcode by i-nigma.com/CreateBarcodes

Friday, 31. March 2006

A comparison of feedreaders

This week I decided to look for a new blog/feedreader. My first try was to search the web and try web-readers out myself, using my OPML file. Behold - now Techcrunch made an article about feedreaders.

their idea:
There are a numer of different types of readers: web-based, desktop, Outlook based, etc.. This post is focused solely on web-based feed readers. I’ve included the big guys plus some up and coming readers with outstanding features and/or performance like News Alloy, Gritwire, Attensa and FeedLounge.

Rojo is the reader I am using at the moment, but I miss an option to search all my feeds for a keyword (hey, where is that blog entry about Quake3StrategyGame?).

So perhaps I should try out bloglines...

btw: they made a mistake in the article: Rojo supports OPML export, I just tried it out and it even semi-validates.
QR barcode by i-nigma.com/CreateBarcodes
Lars Zapf (guest) - 31. Mar, 11:55

Rojo is sh...

Remember my posting about feedreaders some months ago. Try NewsGator. It is the only thing that works well. Forget the rest!

Thursday, 30. March 2006

Altova and Profium run google ads

nice thing to see about the semantic web: people advertise for it.

semanticgoogleadds

found at mortenf's weblog. Interesting that profium makes advertisment for SPARQL. The link to Altova and SemanticWorks is sound, they make money with it.
QR barcode by i-nigma.com/CreateBarcodes
george22 - 1. Dec, 07:57

[ tip ] Help soothe separation and stranger anxiety by giving baby time to get comfortable around new people before actually letting them hold her. It's easier for her to warm up to new people once they've smiled at her, talked to her, and simply been nearby for a little while.leather jackets jackets vintage leather jackets italian leather jackets cool leather jackets wholesale leather jackets plus size leather jacket quilted leather jacket

Tuesday, 28. March 2006

Semantic Desktop Hands On Workshop III, 21-23 April 2006, Kaiserslautern

The next Semantic Desktop hack! Learn about current projects on the Semantic Desktop, express your ideas and combine them with others.

Date & Place

April 21st - 23rd, 2006

Location

DFKI Kaiserslautern, Germany, Building 57, Room 508

Registration

Participation fee for the three-day workshop is 30€, to be paid at the first day on site.

Register by sending an e-mail to Thomas Roth-Berghofer.

If not indicated otherwise by you, we will put your name and affiliation on the public list below.

Participants

Accomodation

The city of Kaiserslautern has a list of hotels here: http://www.kaiserslautern.de/tourismus/hotels_und_unterkuenfte/index.html?lang=de&download=00157

The Pension Blum (Rudolf-Breitscheid-Straße 7, 67655 Kaiserslautern, Tel.: +49-631-3115656) is known to be cheap and ok, and is 2 minutes from the station.
(or if price is not an issue the Dorint is between DFKI and the city centre and is also nice … )

Organizers

Topics

  • frameworks for Semantic Desktop
  • possible application scenarions
  • your scenario - your diploma thesis, your customer project
  • Ontologies for the Semantic Desktop
  • The Nepomuk EU Project - what it is?
  • Programming interfaces for the Semantic Desktop
  • Cooperations based on existing projects
  • Philosophical impact of the Semantic Desktop, changes in knowledge work and society.

Talks, Demos, Posters submissions

We will have slots for talks, demos and posters. Roughly four talks per day, each 30 minutes.
Alltogether there are 10 slots for talks open.

Please submit your proposed talk, poster or demo via e-mail to Arne Handt.

Current Program

  • Talk: (Thomas Roth-Berghofer): What is the Nepomuk EU Project?
  • Talk & Demo: Leo Sauermann: current state of the gnowsis semantic desktop
  • Talk: Dominik Heim: Introducing his diploma thesis
  • Talk: Arne Handt: DBIN

  • Visit the official homepage
(btw: these workshops were previously known as the gnowsis hacks)

QR barcode by i-nigma.com/CreateBarcodes
george22 - 19. Nov, 07:51

Hi. I've been taking the Mirafit religiously since I received it but I don't know whether it's doing anything or not. The only thing I feel is gassy and constipated. Do I need to take it longer to get results? Of course, I just got off some medications that could have been causing the other things too. I will continue tospring trench coat / / rain trench coat / / full length trench coat / / single breasted trench coat / / winter trench coat / / camel trench coat / / women's trench coat with hood / / long trench coats for women / /

gnowsis 0.9 and python = sweet bliss (by gunnar)

Gunnar Grimnes recently blogged about his happy moments with the combination of gnowsis 0.9 and python.

the code looks something like that here:
#!/usr/bin/env python
from xmlrpclib import ServerProxy
server=ServerProxy("http://127.0.0.1:9993");
#print server.listMethods()
print getattr(server,"gnowsis-server_dataaccess.querySelect")("gunnar","fulltext")


but read Gunnars original words for full bliss.
QR barcode by i-nigma.com/CreateBarcodes
icon

semantic weltbild 2.0

Building the Semantic Web is easier together

and then...

foaf explorer
foaf

Geo Visitors Map
I am a hard bloggin' scientist. Read the Manifesto.
www.flickr.com
lebard's photos More of lebard's photos
Skype Me™!

Search

 

Users Status

You are not logged in.

I support

Wikipedia Affiliate Button

Archive

April 2025
Sun
Mon
Tue
Wed
Thu
Fri
Sat
 
 
 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
 
 
 
 
 

Credits


austriaca
Chucknorrism
digitalcouch
gnowsis
Jesus
NeueHeimat
route planning
SemWeb
travel
zoot
Profil
Logout
Subscribe Weblog