   Osinfo Entity ID Scheme
   =======================

This document describes how to create URIs for entities in the osinfo
database.

The ID URIs are used to determine what filename the XML document
for the entity will have, so care should be taken to follow
existing naming practices as closely as possible.

Operating systems
=================

The ID URI scheme SHOULD follow one of these patterns

   http://vendor-domain/distro-name/version
   http://vendor-domain/short/id

The "vendor-domain" component should refer to the domain name associated
with the vendor who originally shipped the operating system. For example,
with Solaris 8, the "vendor-domain" would be "sun.com", even though the
Solaris product line is now owned by Oracle.

For legacy operating systems which were shipped before the arrival of the
world wide web, some guidelines should be followed to come with with a
suitable domain name. If the company that shipped the operating system
had a domain name at any time after the product was shipped, that should
be used. If the company never had any kind of domain name, a plausible
domain name should be invented.

In general the scheme based on the distro name and version is preferred,
but some operating systems (eg Windows) don't have sensible unique
version numbers. In such cases, the alternative scheme based on the
short-id is acceptable.

The "distro-name" component should match the value of the <distro>
attribute in the entity.

The "version" component should match the value of the <version> attribute
in the entity.

The "short/id" component should be based on the value of the first
<short-id> attribute in the entity.

Some examples

   http://redhat.com/rhel/5.3        (distro==rhel, version=5.3)
   http://microsoft.com/win/2k12r2   (short-id==win2k12r2)


Platforms
=========

The ID URI scheme SHOULD follow this pattern

   http://vendor-domain/product-name/version

The "vendor-domain" component should refer to the domain name associated
with the vendor who originally shipped the platform. For example, with
VirtualBox, for early releases the "vendor-domain" would be "sun.com",
while for latter releases it would be "oracle.com".

The "product-name" component should match the value of the <product>
attribute in the entity.

The "version" component should match the value of the <version> attribute
in the entity.

Some examples

   http://xen.org/xen/3.0.2          (product==xen, version=3.0.2)
   http://qemu.org/qemu/1.0          (product=qemu, version=1.0)


Devices
=======

The ID URI scheme SHOULD follow one of these patterns

   http://pcisig.com/pci/vendor-id/product-id
   http://usb.org/usb/vendor-id/product-id
   http://xen.org/xen/name
   http://ibm.com/ps2/name
   http://vendor-domain/isa/name


Datamaps
========

The ID URI scheme SHOULD follow this pattern

   http://vendor-domain/map-name

The choice of the "map-name" data format is not defined.


Install scripts
===============

The ID URI scheme SHOULD follow one of these patterns

  http://vendor-domain/distro/scheme/profile
  http://vendor-domain/distro/version/scheme/profile

"distro" is the name of the operating system distro that uses
the install script.

"version" is an optional version number of the distro. This
is rarely used, as it is usually possible to create an
install script that works across multiple versions by using
XSL conditionals.

"scheme" is the install script software format, eg "kickstart"
for Anaconda, or "preseed" for the Debian installer.

"profile" is the declared install script profile "jeos" or
"desktop".
