Archive for March, 2003

Mar 31 2003

The Google OS

Published by Ian Davis under Uncategorized

An interesting article that claims that Google is Knowledge Operating System. It draws an analogy between the web as a file system and Google as its means of access, and suggests that the Google API is a primitive type of operating system API. Is this the way Google will be heading in the coming years - more and more facilities to manage differing types of information that insinuate themselves into our lives? After all, who bothers keeping bookmarks any more? [via TechDirt]

Comments Off

Mar 29 2003

C# Documentation

Published by Ian Davis under Uncategorized

Aaron Johnson investigates how to produce xml documentation for C# without using Visual Studio:

the C# compiler will then strip our your comments, package hierarchy, related classes and create an xml file, in the above case, called ‘MyClass.xml’. In and of itself, this doesn’t do you much good. But if you download NDOC from sourceforge, you can create not only Microsoft MSDN style help files, but JavaDoc help files, LaTex helps files and plain xml.

I’ve been using Scite to write C# recently. You can easily customise the build command for .cs files. I’m running a NAnt build script that builds the project, builds the NUnit tests, runs the tests, and commits changes to CVS if the unit tests all pass. Fun, and it makes TDD dead simple.

Comments Off

Mar 24 2003

Catching the Dreams

Published by Ian Davis under Uncategorized

In the short essay Catching the Dreams Pat Hayes, editor of the RDF Model Theory draft, speaks out against those see Description Logics as the only foundation for the Semantic Web:

Using DLs as a semantic web content markup standard is a failure of imagination: it presumes that the Web is going to be something like a giant corporation, with the same requirements of predictability and provable performance. In fact (if the SW ever becomes a reality) it will be quite different from current industrial ontology practice in many ways. It will be far ’scruffier’, for a start; people will use ingenious tricks to scrape partly-ill-formed content from ill-structured sources, and there is no point in trying to prevent them doing so, or tutting with disapproval.

Comments Off

Mar 22 2003

An Exciting Inference

Published by Ian Davis under Uncategorized

Roger Costello asked
the www-rdf-logic list for
a simple example of the use of OWL that allowed an Exciting Inference to be made.

Here’s my attempt…

First of all a robbery takes place. The robber drops his gun while
fleeing. A report is filed by the investigating officers:

<RobberyEvent>
  <date>...</date>
  <description>...</description>
  <evidence>
    <Gun>
      <serial>ABCD</serial>
    </Gun>
  </evidence>
  <robber>
    <Person /> <!-- an unknown person -->
  </robber>
</RobberyEvent>

Subsequently a car is pulled over for speeding. The traffic officer
files a report electronically while issuing a ticket:

<SpeedingOffence>
  <date>...</date>
  <description>...</description>
  <speeder>
    <Person>
      <name>John Doe</name>
      <driversLicenseNumber>ZXYZXY</driversLicenseNumber>
    </Person>
  </speeder>
</SpeedingOffence>

At police HQ, the computer analyses each report as it is filed. The
following OWL rule tells the computer that a driversLicenseNumber is
unique to a Person:

<owl:InverseFunctionalProperty rdf:ID="driversLicenseNumber">
  <rdfs:domain rdf:resource="Person" />
  <rdfs:range  rdf:resource="&rdf;Literal" />
</owl:FunctionalProperty>

The computer uses this information to look up any other records it has
about that person and finds a gun license:

<GunLicense>
  <registeredGun>
    <Gun>
      <serial>ABCD</serial>
    </Gun>
  </registeredGun>
  <holder>
    <Person>
      <name>John Doe</name>
      <driversLicenseNumber>ZXYZXY</driversLicenseNumber>
    </Person>
  </holder>
</GunLicense>

The next OWL rule tells the computer that the registeredGun property
uniquely identifies a GunLicense. i.e. each gun is associated with
only a single GunLicense

<owl:InverseFunctionalProperty rdf:ID="registeredGun">
  <rdfs:domain rdf:resource="GunLicense" />
  <rdfs:range  rdf:resource="Gun" />
</owl:FunctionalProperty>

The computer now knows that the person stopped for speeding owns a
gun. The next rule tells the computer that each gun is uniquely
identified by its serial.

<owl:InverseFunctionalProperty rdf:ID="serial">
  <rdfs:domain rdf:resource="Gun" />
  <rdfs:range  rdf:resource="&rdf;Literal" />
</owl:FunctionalProperty>

The computer uses this to determine that the gun on the license is the
same gun used in the robbery. This final rule, seals the speeder’s
fate. It tells the computer that each GunLicense applies to only one
gun and one person, so there is no doubt that the speeder is the person
who owns the gun:

<owl:Class rdf:ID="GunLicense">
  <owl:intersectionOf rdf:parseType="Collection">
    <owl:Restriction>
      <owl:onProperty rdf:resource="#registeredGun"/>
      <owl:cardinality>1</owl:cardinality>
    </owl:Restriction>
    <owl:Restriction>
      <owl:onProperty rdf:resource="#holder"/>
      <owl:cardinality>1</owl:cardinality>
    </owl:Restriction>
  </owl:intersectionOf>
</owl:Class>

The computer reports back to the traffic cop who duly arrests the
speeder on suspicion of armed robbery.

Updated: changed typo in name of suspect.

Comments Off

Mar 21 2003

Syndic8 Offering RSS Chapter Previews

Published by Ian Davis under Uncategorized

Syndic8 has posted two sample chapters of Ben Hammersley’s forthcoming book Content Syndication with RSS. While you’re there, take some time to support Syndic8 by clicking on the Amazon links and pre-ordering what’s I’m predicting will be the tech book of the year.

Comments Off

Mar 14 2003

Adding Biographical Information to RSS

Published by Ian Davis under Uncategorized

Here’s something I’ve been collaborating with David Galbraith on: adding biographical information to RSS and HTML. By biographical information we mean information about a person to help you identify them, like the little summary on the top left of this page. Maybe it’ll help you decide whether you want to subscribe to their RSS or not.

There’s some cross-over between bio information and genealogy, especially when the bio is of a historical figure, so I’ve had a go at including a small set of ‘life event ‘ elements such as birth and marriage.

2 responses so far

Mar 06 2003

Idei Speaks

Published by Ian Davis under Uncategorized

Having worked for Sony, I have a lot of respect for Nobuyuki Idei. In this interview (the first of three) he covers a lot of ground: how he’d like to buy Palm or Symbian, why Nokia
don’t understand the mobile business and his vision for micropayments for music.

My dream is to supply music to kids in a way where they don’t have to feel guilty.

Comments Off

Mar 03 2003

Tim Bray Meets RSS Reality

Published by Ian Davis under Uncategorized

Tim Bray: The Vast Sucking Sound When you’re watching the access_log, what’s really remarkable is the steady pounding from the RSS aggregators. ongoing has been up a day and a bit, and as I watch this, I’m seeing maybe four or five hits a minute on the RSS feed.

Comments Off

Mar 03 2003

Episodic Markup

Published by Ian Davis under Uncategorized

I’m thinking about ways of representing time and timelines in RDF. My angle is from the biographic / genealogical areas. I want to be able represent ‘episodes’ in a person’s life, e.g. from 1876 to 1881 my great grandmother lived in Risca (a small town in Wales) and in 1880 my great-great grandfather was killed in a mining disaster . What’s the best way to represent these so that I can answer questions like where was my great-great grandfather living when he died? Other questions involve knowing when people got married, especially when they marry several times and change their surnames.

I can see a few different approaches: wrapping events up in episode groups or explicitly labelling each event with start and end dates. Another way I’m thinking more about is to attach the date information to the actual triples in the store. Then I can take a snapshot of the ‘world’ at any point in time and only triples that are valid for that date would be present. What other approaches are there?

Comments Off