“Your Studio and You” – the movie

I found one of my favorite movies on google video: “Your Studio and You”.

You can read the wikipedia article to learn more, the film has three aspects which make it excellent:

  • It is funny and well done
  • The movie featured a bevy of celebrity appearances which includes Andrew Bergman, James Cameron (shown improving the Universal Studios landscaping), Shaun Cassidy, Robin Cook, Shelley Fabares, Michael J. Fox (sometimes mistaken in the film for Dian Bachar, a longtime Parker-Stone collaborator), Brian Grazer, Heavy D, Jeffrey Katzenberg, Barry Kemp, Angela Lansbury (shown painting the Psycho House), Mike Lobel, Traci Lords, Kevin Misher, Demi Moore, Darrin Pfeiffer, John Singleton, Steven Spielberg (shown as a Universal Studios Guide), Sylvester Stallone (in his Rocky Balboa character, and subtitled for comedic effect), Marty Stuart, David Zucker, and Jerry Zucker. (from Trivia about Seagrams)
  • It is historically interesting.

Let me focus on the last point. Read on Zap2it.com an interview with Trey Parker, who together with Matt Stone directed the movie.
On April 6 1995 Seagrams, back then one of the largest beverage company in the world, decided to sell its share in DuPont oil for $9 Billion to instead later buy Universal Studios, MCA, PolyGram, and Deutsche Grammophon.

Universal Studios PR employees contacted David and Jerry Zucker “to make a short film for Universal to be played at a big coming out party Seagrams was throwing for all of its employees.” link
The Zucker brothers (“Airplane”, “Naked Gun”, “Top Secret”) had no time and asked Trey Parker and Matt Stone (who were complete unknown punks) to do the movie, Zucker Bros. said to already have a “very funny script”.

But when Trey and Matt appeared on site for the takes with Steven Spielberg, James Cameron and Michael J Fox, they were surprised that the “very funny script” did not exist. Also, the PR people were aroused not to see the Zucker Bros on site, but punks.

“We suddenly just stopped everything and said, ‘let’s just do it all like a really stupid ’50s industrial movie. Because then at least that part of it will be funny. And so we just started trying to shoot it like those little ‘duck and cover’ nuclear things from the ’50s.”

The movie features “Seagrams Wine Coolers”, and good advice how to improve Universial City Studios (UCS) – all employees agree “It’s UCS for me”. So, Seagram beverages decision to get more fun in entertainment business led to this movie a year later.

Really weird: Trey Parker did not see the movie for four years after the take, because it was so internal that they did not give a copy to the directors (!?) but it showed up on the web (!!hurray!!) in 2001, and then… haha.

The result is above, and the guys made many great things after and before it, such as Southpark. True Art.

call for tutorial proposals at KI 2008

Submit your proposal, this conference is in my hometown and if you come, we can drink a beer. Submit your proposal!

KI 2008 — 31st German Conference on Artificial Intelligence
23 – 26 September 2008, Kaiserslautern, Germany

http://ki2008.dfki.uni-kl.de

CALL FOR TUTORIAL PROPOSALS

KI-2008 will include a small number of tutorials, to be held the day
before the technical program starts. Tutorials will be free of charge
for conference participants. We aim at a small number of high-quality
tutorials suitable for a large percentage of conference participants,
including graduate students as well as experienced researchers and
practitioners.

Contents

Tutorials should give a comprehensive, in-depth perspective on
innovative AI methods or technologies that have an obvious potential for
research and/or application and are not covered by typical AI textbooks.
We especially encourage tutorial proposals covering cognitive aspects of
AI. Do not hesitate to contact the conference or tutorial Chairs if you
are in doubt about the suitability of a particular topic for the
purpose. Both full-day (6 hours) and half-day (3 hours) tutorials are of
interest.

Technicalities

KI-2008 tutorials will be held on September 23, 2008. They should
preferably be given in English. The revenue for tutor(s) consists of
free participation at the KI-2008 conference, plus reasonable travel
support if necessary. Teaching material will be printed and distributed
by the conference organization.

How to Propose a Tutorial

Proposals must contain the necessary information to judge the
importance, quality and community interest in the proposed tutorial as
well as the expertise of its tutor(s). Proposals must include
descriptions of the tutorial topic, goals, the intended audience, an
outline of the contents, and brief CVs of the tutor(s), including their
expertise and teaching experience in the field, and the intended length
(half- or full- day). Proposers are encouraged to include excerpts of
material from recent teaching about the proposed topic as an annex of
their submission, if available.
Proposal texts should be submitted by e-mail to the Tutorial Chair in
plain text format. Annexes may be sent as .pdf, .ps, .ppt, or .doc
format.

Important Dates

Proposal deadline: Mar 28, 2008
Acceptance Notification: May 30, 2008
Camera-ready teaching material due: July 2, 2008
Tutorial: Sep 23, 2008

KI-2008 Tutorial Chair

Prof. Dr. Frank Bomarius
frank.bomarius (at) iese.fraunhofer.de

never installing a laptop os

Your computer doesn’t start? Black screen, a cursor, nothing else? Well, you may be tempted to wipe & reinstall. Back at impact we had the company directive not to fumble around installing operating systems again and again, but to stick with the os the vendor has preinstalled and fix it. The reason behind this is that most vendors tune the installation and also that re-installing all software and data costs too much time = money.

So yesterday Ingrid’s compaq evo laptop got a black screen of nothingness after the bios logo and instead of windows, a cursor flashing once. Then reboot and infinite repeat. I used knoppix to check what happened, harddisk still there, files looked as usual. Next thought: master boot record (MBR) so I read there are two ways: using gentoo startup cd and ms-sys or windows xp install cd. I had only knoppix so I choose windows xp boot cd. But my boot CD didn’t have the “recovery console” menu when installing. Pressing F10 continously while it bootet finally brought up console (how intuitive). Later I found the windows xp cd shipped with the laptop, that had the “r” for recovery, so there is a difference between windows and windows.

fixing mbr and boot in the recovery console is easy, type fixmbr and fixboot and it should work. Not for me, I also thought that maybe all this is wrong and my floppy drive is broken (ha, that is the first in boot order), so I moved it down in bios list of boot devices. I also checked HP’s guide for fixing boot problems, and blindly entered commands like “fixmbr /device/harddisk0” in recovery console.

Ok, it bootet now. But then:
Windows XP could not start because the following file is missing or corrupt: \WINDOWS\SYSTEM32\CONFIG\SYSTEM

A thing I often heard from nightmare stories, it happened the registry was missing. Lucky me, the Microsoft Guide to recover the registry is on the first page when googling for the problem. The boot loader was right, half of the files of the registry were gone. I copied them from an automated backup which is done by windows every day (ha, you never know what useful things this os does when “being busy”).

Alas, after 3 hours the system was back. So, it took me three hours to get my system back, compared to the 2hours of installing an operating system and then endless days of updatefest and installing software, it pays off. I am quite slow with computers, others may have done this faster. Ingrid was quite happy to have her machine back, though. I don’t pick any OS better than the other, I have the same problems with all of them. But keeping one alive is always better than wiping, at least for me.

impact has a new homepage

My old employer, Impact computing, has a new homepage. Looks excellent, nice photos of the products I helped to develop. So I have to update the link on my work website to www.impactit.at

impact it startpage

Funnily, the picture is taken at the actual office, the rooms are about 50m to the right (I think), the depicted people are on the bridge between two skyscrapers. I used the bridge to come from the office to the coffee-machine. Excellent view.

Wishing best for Impact-It and the new product they did, EDOCTA. The good old PORTACON still contains my handwriting, and sells good.

Silly Walks Flashmob

FlashMob Ministry of Silly Walks
Kommt am Mittwoch, den 13.02.2008,
pünktlich um 17:45 Uhr
an die Bushaltestelle Rathaus.

Achtet auf eine gepflegte Erscheinung (z.B. Anzug, Aktentasche, Melone, …) Wir performen den Silly-Walk bis 17:55 und verschwinden dann wieder.

Als Anregung:
Monty Python’s Ministry of Silly Walks
http://www.youtube.com/watch?v=IqhlQfXUk7w

Bitte verbreitet diesen Aufruf über e-mail, SMS, Telefon, …

Was ist zu beachten? (aus www.flash-mobbers.net)
1. Wenn Du schon hingehst, dann mach auch mit! Aber nicht stehen bleiben und
glotzen!
2. Erscheine erst zum abgemachten Zeitpunkt (pünktlich)!
3. Folge genau den vorgegebenen Anweisungen!
4. Je mehr es wissen, desto grösser wird die Community. Also: weitersagen!
5. Keine Körper- oder Sachbeschädigungen, Beschimpfungen, etc.! Flash-Mobbers
sind friedlich und wollen Spass haben. Und es gibt einen guten Ruf zu
verlieren.
6. Die “Action-Area” zügig wieder verlassen und seiner Wege gehen.
7. Wenn jemand fragt, was das sei oder wer das organisiert hätte, antworten,
dass man spontan da sei.

Bis dann!
Die FlashMobbers.

Author needed for German Article on Semantic Web

The german magazine createordie.de is covering the topic “next generation web” in an upcoming issue and searching for an author for the topic of Semantic Web. (the rest in german).

Ich wurde vom Verlag gefragt, ob ich selber einen Artikel schreiben würde, leider habe ich aber momentan zu wenig Zeit (wir haben bald Projekt-Review) um einen guten Artikel zu schreiben. Aber der eine oder andere Leser ist ja selbst Autor.

Konkret sind für den Artikel vier Seiten eingeplant, eine Seite fasst 4.000 Zeichen sowie zwei Bilder, insgesamt also 16.000 bis 17.000 Zeichen sowie 8 bis 10 Bilder. Deadline ist der 25. Februar 2008. Der Verlag honoriert den Text, nicht zu verwechseln mit Wissenschaftlichen Publikationen.

Falls du Semantic Web Experte bist, und bereits Artikel veröffentlicht hast, bitte wende dich direkt an den Chefredakteur Felix Schrader, Kontaktdetails bei createordie. Wie immer, es geht um die öffentliche Sicht aufs Semantic Web, da ist es wichtig ein gutes Bild zu bringen.

In own interest: selling netrunner cards, buying lens

Again, its time to let go. After playing the good old Netrunner game from time to time, but not often enough, I want to pass it on. Netrunner is a trading card game designed by Richard Garfield, the creator of Magic: The Gathering. It is full of insider gags from classic cyberpunk (Neuromancer, etc). Words like “Wilson” or “Chiba” will trigger the right synapses. One player is the evil corporation trying to make big money, the other is a witty hacker trying to steal information from the company by breaking into their network.

netrunner

My favorite card is “Fortress Architects” because of its text:
“You want us to build that? Not even God has the money to afford that!”

“You’re working for Saburo Arasaka, not God.”

Ok, I will keep my favorite cards and enough for two players to gamble from time to time, but I sell the the worthy rare cards (and the others) on ebay. If you are interested in one or the other card or more, buy them.
At the moment, I am the only one selling netrunner on ebay.de.
All revenue made goes into a “good-mood” cause, last year I bought myself a Nintendo WII, this year its going to be a nice Sigma 1.4 Aperture 30mm lens for my Canon Eos, because my party pics need more light.

Google Data API and GData

Since 2006, google collects API programming interfaces in the Google Data (gdata) project. At their website, you find links to google docs, calendar, spreadsheet, youtube, and more.

http://code.google.com/apis/gdata/

It is a one-stop place to find interfaces for the various google services. For Semantic Web developers, it is also a good overview how google shapes its interfaces to its web-based applications. Get inspired by the pros.

Especially the GData protocol and data format is worth a look. It’s a generic API for getting and querying data, based on RSS 2.0 and Atom.
In the GData reference, you find a description of the Atom extensions and a simple query-format extending it.

Assuming a feed is hosted at the URI http://www.example.com/feeds/jo, then elements within the feed can be queried with the following URI:

http://www.example.com/feeds/jo?q=Darcy&updated-min=2005-04-19T15:30:00

A kind of “easy going sparql”.

In their own words:
The Google data APIs provide a simple standard protocol for reading and writing data on the web.

These APIs use either of two standard XML-based syndication formats: Atom or RSS. They also have a feed-publishing system that consists of the Atom publishing protocol plus some extensions (using Atom’s standard extension model) for handling queries.

Many Google services support the Google data API protocol.

Combining Rules with SPARQL

a recent blog-post by Dan Brickley reminded me that we have a Jena-Rule engine augmented with SPARQL dusting our shelves. Its years old, but may be interesting for you.

We augmented Jena’s rules by adding sparql.
The passing of parameters is easy, you just have to use the variables of the rules. Within Jena rules, you can always express graphs using N-Triple Axioms, so its also possible to write RDF files.
Only caveat: no quads.

code is in this folder
http://gnowsis.opendfki.de/browser/tags/0.8.3-alpha/gnowsis_retrieval/WEB-INF/src/org/gnowsis/retrieval/RuleQuerySparql.java

download SVN URI:
http://gnowsis.opendfki.de/repos/gnowsis/tags/0.8.3-alpha/gnowsis_retrieval/WEB-INF/src/org/gnowsis/retrieval/RuleQuerySparql.java

documentation:
http://gnowsis.opendfki.de/browser/tags/0.8.3-alpha/gnowsis_retrieval/doc/help.html

Here is a snippet of that documentation for you:

Inference

After the results have been gathered, inference rules are evaluated against the results.
This means, that you can define rules on which new information is generated
based on a declarative syntax described in the
Jena Rule Engine DOC.
An example file for these rules can be found in the source, at best directly in SVN here:
retrieval.rules.txt.
You can use the existing Jena rules and a special rule that was created by Leo Sauermann to
load additional triples from the gnowsis. This query-rule is defined as follows:

# Load triples from the search storage by a triple patter.
# The search storage is crawled by gnowsis IF you enabled it in the
# configuration and have crawled a few datasources. If not, this query
# will return nothing.

queryStorage(?subject, ?predicate, ?object, 'search')

# ?subject, ?predicate, ?object: a triple pattern. 
# Leave one of the empty (= a unbound variable like ?_x) and it will try to match 
# the empty thing as a wildcard. The variables are not bound in the pattern and
# cannot be used in the same rule. You have to write additional rules to work
# on the queried triples. 

usage example:
# load all project members and managers
(?project rdf:type org:Project) ->
queryStorage(?project, org:containsMember, ?_y, 'search'),
queryStorage(?project, org:managedBy, ?_z, 'search').

If you want to bind the variables and use them: It is not possible. See the
statement of the Jena developers
about this. But this is not a big problem, you can work around it easily.

Debugging Inference

If you want to tweak your inference rules and don’t want to have gnowsis run the query at all times,
you can use our built-in inference debugging tricks.

  • first: when you run the query for debugging, click the ‘rerun only rules’ link at the bottom of your search
  • second: open the inference file by clicking ‘edit rules file’
    (also found at the bottom of each search result)

the first stage brings you into a query mode, where pressing “reload” in the browser
just does the inference and the clustering, but not the search itself. This speeds up
your debugging of inference rules. You will only spot the difference in the addressbar
of the browser, which now contains something like http://…/retrieval?cmd=runrules&query=YourQuery

Also, note that syntax errors in your inference code will be logged to the gnowsis
logging system. This is either the message window, pane ‘org.gnowsis.retrieval.RetrievalService’
or your file logging in ~/.gnowsis/data/… .
You will not see syntax errors in your query results, sorry.

Inference and SPARQL combined

SPARQL reference

You can also use SPARQL queries to refine and expand the search results.
The basic syntax is to run a SPARQL query in the head of a rule, the first argument
is the query, escaped with ”, the following arguments are variables that will
be used in the query. The passed variables are interpreted as named variables
in the SPARQL query, named ?x1 ?x2 ?x3, etc.

Example for querySparql:

(?a ?b ?c) ->
querySparql('
 PREFIX rdfs:    <http://www.w3.org/2000/01/rdf-schema#>
 CONSTRUCT   { ?x1 rdfs:label ?label }
 WHERE       { ?x1 rdfs:label ?label }
')
', ?c).

The variable named ?x1 will be replaced with the value of ?c.

Note the
following tips:

  • literals are escaped using the \’text\’ markup.
  • All arguments passed after the query will be bound into the query using names ?x1, ?x2, …
  • querySparql can only be used in the head of rules.
  • Attention: if you are querying the gnowsis biggraph, you have to add the graph-name to your
    sparql queries.
  • Try out your queries on the debug interface before you use them.
  • Only ‘construct’ queries are supported, not select or describe.
  • Namespace prefixes: inside the SPARQL query, you can use the namespace prefixes defined in the rule file

An example to do so is given now, the task here is to retrieve the members of a project if a project
was in the result.

#note that these namespace prefixes are available in the sparql query
@prefix skos: <http://www.w3.org/2004/02/skos/core#>.
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix owl:  <http://www.w3.org/2002/07/owl#>.
@prefix retrieve: <http://www.gnowsis.org/ont/gnoretrieve#>.
@prefix tag: <http://www.gnowsis.org/ont/gnoretrievetag#>.

# get members with SPARQL
# note the special namspace defined inside
(?hit retrieve:item ?project),
(?project rdf:type org:Project) ->
querySparql('
PREFIX org: <http://km.dfki.de/model/org#>
CONSTRUCT   { 
  ?x1 org:containsMember ?m. ?m rdfs:label ?labelm. ?m rdf:type ?typem.
  ?x1 tag:todoRelateHitTo _:hit .
  _:hit rdf:type retrieve:InferedHit .
  _:hit retrieve:item ?m .
  _:hit retrieve:textSnippet \'member of project\'.
}
WHERE       { graph ?g {
  ?x1 org:containsMember ?m. ?m rdfs:label ?labelm. ?m rdf:type ?typem.
} }
', ?project).

# make the missing relations to the hits
# this is needed because you cannot pass blank nodes into the SPARQL engine.
(?item tag:todoRelateHitTo ?tohit),
(?hit retrieve:item ?item) ->
(?hit retrieve:related ?tohit).
run a sparql query, replacing placeholders (?x1, ?x2, ...) in the query with the passed arguments,
arguments have to be bound. Only 'construct' queries are supported.
 
# retrieve a test sparql
[test:
(http://xmlns.com/foaf/0.1/ ?x ?type)
-> querySparql('
CONSTRUCT   { ?x1 rdfs:label ?label }
WHERE       { ?x1 rdfs:label ?label. FILTER (?x1 = foaf:name) }
')
]

# retrieve with param - bind ?ont to the foaf ontology, it is called x1 in the query
[testbind:
(?ont rdf:type owl:Ontology)
-> querySparql('
CONSTRUCT   { ?p rdfs:isDefinedBy ?x1. ?p rdfs:label ?label. }
WHERE       { ?p rdfs:isDefinedBy ?x1. ?p rdfs:label ?label. }
', ?ont)
]


# example for gnowsis. note the use of "....{ graph ?g { ...."
[test:
(http://xmlns.com/foaf/0.1/ ?x ?type)
-> querySparql('
CONSTRUCT   { ?x1 rdfs:label ?label }
WHERE       { graph ?g {  ?x1 rdfs:label ?label. FILTER (?x1 = foaf:name) } }
')
]