Author: Doug Turner

Software Notifier - The RDF file description
Doug Turner
10 August 1999

### Introduction

First and foremost, this is a work in progress. This document will describe what data is needed by Software Notifier to provide software update notification via the sidebar and "Flash".

This document is not meant to describe the behavior of Software Notify, but rather to describe what information is needed and how is should be formated so that Notify can read it.

### What is needed?

First things first. You are going to have to call your service something. This is a name which will be displayed above any software packages you provide. For instance, if you are "Marcie's Website of Updates", you may want to call yourself just that. A large company, like Netscape, which may have many different services may want to distigush their service. For instance, maybe their Plug-In Finder website wants to offer a Software Notification service. The may name themselves "Netscape Plugins" (or whatever) This name is purely up to you.

The next piece of information is a bit more structured. We need to know what software packages your service offers. The following information is needed for every software package:

    A unique string.
    The version registry key.
    The version.

This information needs to be assembled into an RDF datasource. This is just a fancy way of saying that you need to put it into a special format. For more information about RDF, take a look at the rdf documentation.

Below is a simple RDF datasource that needs to be compiled. In red are the key pieces of information that need to be provided. Each will be discussed.

    <RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
             xmlns:NC="http://home.netscape.com/NC-rdf#">

      <RDF:Bag about="NC:SoftwareUpdateRoot">
        <RDF:li>
           <RDF:Bag about="NC:SoftwarePackages" NC:title="Marcie's Updates" NC:url="http://www.someurl.com" >
              <RDF:li>
                 <RDF:Description ID="AimUpdate344">
                     <NC:version>3.4.1.12</NC:version>
                     <NC:registryKey>/AOL/AIM/</NC:registryKey>
                   </RDF:Description>
                </RDF:li>

                <RDF:li>
                   <RDF:Description ID="PGPPlugin345">
                     <NC:version>1.1.2.0</NC:version>
                     <NC:registryKey>/PGP/ROCKS/</NC:registryKey>
                   </RDF:Description>
                </RDF:li>

           </RDF:Bag>
         </RDF:li>
      </RDF:Bag>
    </RDF:RDF>

Bag about="NC:SoftwarePackages" NC:title="Replace Me">

> This is where you would put your service's name. Simply replace what is in between the quotes, with your service's name (ie. "Netscape Plugin Finder").

Bag about="NC:SoftwarePackages" NC:url="Replace Me">

> This is where you would put your service's url. Simply replace what is in between the quotes, with your service's url (ie. "http://www.someurl.com").

<RDF:Description ID="IAmUnique">

> This is a UNIQUE string which must be provided by you. It does not matter how you come up with it, but it must be unique with respect to all of your software updates.

<NC:version>Replace Me</version>

> This is the version which is stored in the Version Registry. For more information about the version registry, see: documentation that has not been written. ack!

<NC:registryKey>Replace Me</registryKey>

> This is the key stored in the Version Registry. For more information about the version registry, see: documentation that has not been written. ack!

As you can see in the above example that there are two entries. You can have as many as you would like. Just simply duplicate the structure and add your extra packages. Mostlikely this file will be generate from a PDMS system.

Once this file is created, it needs to be placed somewhere on the network. Periodically, it will be polled, and parsed.

### What is next?

We may have to add additional entries in this RDF datasource. Some of which that I am thinking about are platform and language. However, these depend on how the website would like to organize there backends.

We also need to get documentation about how to add new RDF datasources from customers. For instance, now you have this great RDF file which describes your offering, how do you get it into the sidebar notification.

Feedback is welcome here.