<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE lire:derived-schema PUBLIC
  "-//LogReport.ORG//DTD Lire DLF Schema Markup Language V1.1//EN"
  "http://www.logreport.org/LDSML/1.1/ldsml.dtd">
<lire:derived-schema id="www-user_session" base-schema="www"
 timestamp="session_start"
 xmlns:lire="http://www.logreport.org/LDSML/">

 <lire:title>User Session Derived Schema for WWW service</lire:title>
 <lire:description>
  <para>This is a derived schema for the WWW service which 
   represents user session. User sessions tracks the traversal of
   users through the web site. Users are tracked using their IP
   address and their user agent information. This is not a full proof
   method. For one thing, it clearly fails in the case of users having
   an homogeneous environment and browsing from behing a proxy server.
  </para>
  <para>Possible enhancements would be to use tracking information
   from a cookie.
  </para>
  <para>The session represent all the consequential requests made by a
   user. The session will end after 30 minutes where no requests was
   made by the user.
  </para>
 </lire:description>

 <lire:field name="session_id" type="string" label="Session ID">
  <lire:description>
   <para>This field contains an arbitrary session identifier.</para>
  </lire:description>
 </lire:field>

 <lire:field name="session_start" type="timestamp" label="Session Start">
  <lire:description>
   <para>The time at which the session started.</para>
  </lire:description>
 </lire:field>

 <lire:field name="session_end" type="timestamp" label="Session End">
  <lire:description>
   <para>The time of the last request in the session.</para>
  </lire:description>
 </lire:field>

 <lire:field name="session_length" type="duration" label="Duration">
  <lire:description>
   <para>The length elapsed between the first and last requests.</para>
  </lire:description>
 </lire:field>

 <lire:field name="page_count" type="int" label="Pages">
  <lire:description>
   <para>The number of pages requested by the user in this session.   
    (This excludes requests ending in <literal>.png</literal>, 
    <literal>.jpg</literal>, <literal>.jpeg</literal>, 
    <literal>.gif</literal> and <literal>.css</literal>.)
   </para>
  </lire:description>
 </lire:field>

 <lire:field name="req_count" type="int" label="Requests">
  <lire:description>
   <para>This gives the number of requests by the user </para>
  </lire:description>
 </lire:field>

 <lire:field name="first_page" type="filename" label="First Page">
  <lire:description>
   <para>The first page requested by the user. (See
   <type>page_count</type> for exlusion.)
   </para>
  </lire:description>
 </lire:field>

 <lire:field name="page_2" type="filename" label="Second Page">
  <lire:description>
   <para>The 2nd page requested by the user. 
   </para>
  </lire:description>
 </lire:field>

 <lire:field name="page_3" type="filename" label="Third Page">
  <lire:description>
   <para>The 3rd page requested by the user. 
   </para>
  </lire:description>
 </lire:field>

 <lire:field name="page_4" type="filename" label="Fourth Page">
  <lire:description>
   <para>The 4th page requested by the user. 
   </para>
  </lire:description>
 </lire:field>

 <lire:field name="page_5" type="filename" label="Fifth Page">
  <lire:description>
   <para>The 5th page requested by the user. 
   </para>
  </lire:description>
 </lire:field>

 <lire:field name="last_page" type="filename" label="Last Page">
  <lire:description>
   <para>The last page requested by the user.</para>
  </lire:description>
 </lire:field>

 <lire:field name="completed" type="bool" label="Complete?">
  <lire:description>
   <para>Was this session completed? A completed session is one that
    we know for sure that if the user made another request, it would
    have been in a new sesssion. Concretely, all requests made in the
    last 30 minutes of the period covered by the log file will be part
    of uncompleted sessions.
   </para>
  </lire:description>
 </lire:field>

 <lire:field name="visit_number" type="int" label="Visit #">
  <lire:description>
   <para>This starts at 1 for the first session of a user in the log
    file and will be incremented for each new session started by that
    user in the same log file.
   </para>
  </lire:description>
 </lire:field>
</lire:derived-schema>
