<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="auxfiles/styleowl.xsl"?>
<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
  xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
  xmlns:owl="http://www.w3.org/2002/07/owl#"
  xmlns="http://www.ccs.neu.edu/home/kenb/ontologies/usecases#"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xml:base="http://www.ccs.neu.edu/home/kenb/ontologies/usecases#"
>

  <!-- OOR Use Case Instance Data -->
  
 <owl:Ontology rdf:about="">
  <owl:versionInfo>v 0.1 2010/03/21 12:56:51 kenb/mgurmendez</owl:versionInfo>
  <rdfs:comment>Instance Data For OOR Usecases</rdfs:comment>
  <owl:imports rdf:resource="http://www.ccs.neu.edu/home/kenb/ontologies/ucdo.owl"/>
</owl:Ontology>
  

  <System rdf:ID="OOR">
    <name>OOR</name>
    <author>Ken Baclawski</author>
    <author>M&#225;ximo Gurm&#233;ndez</author>
    <exposition>Functional Requirements for the Open Ontology Repository</exposition>
    <version>0.1</version>
    <organization>Northeastern University</organization>
    <organization>OOR Initiative</organization>
    <creationDate rdf:type="http://www.w3.org/2001/XMLSchema#date">March 14, 2010</creationDate>
    <useCase rdf:resource="#accredit"/>
  </System>
  
    <!-- All communication between any user and the OOR is assumed to occur on a channel with implicit authentication -->
  
  
  

  <UseCase rdf:ID="accredit">
    <name>Accredit Registration Authority</name>
    <author>Ken Baclawski</author>
    <exposition>The accreditation authority decides whether to include a registration authority.</exposition>
    <creationDate rdf:type="http://www.w3.org/2001/XMLSchema#date">March 14, 2010</creationDate>
    <first>
      <Step>
        <stepInitiator rdf:resource="#User"/>
        <specification>A user requests that a new registration authority be admitted.</specification>
        <next>
      <Step rdf:ID="queue">
        <stepInitiator rdf:resource="#OOR"/>
        <specification>The system queues the request and informs the Accreditor.</specification>
        <next>
      <Step>
        <stepInitiator rdf:resource="#Accreditor"/>
        <specification>The Accreditor accredits the new registration authority and grants the registrar role to the requesting user.</specification>
        <next>
      <Step>
        <stepInitiator rdf:resource="#OOR"/>
        <specification>The system notifies the user that the request was accepted.</specification>
        <next>
      <Step>
        <stepInitiator rdf:resource="#User"/>
        <specification>The user receives the notification.</specification>
      </Step></next></Step></next></Step></next></Step></next></Step>
    </first>
  </UseCase>

 <UseCase rdf:ID="registerSteward">
    <name>Steward Registrarion </name>
    <author>M&#225;ximo Gurm&#233;ndez</author>
    <exposition>A user wants to become a Steward for a registration authority.</exposition>
    <creationDate rdf:type="http://www.w3.org/2001/XMLSchema#date">March 14, 2010</creationDate>
    <first>
      <Step>
        <includes rdf:resource="#queryRA"/>
        <next>
      <Step>
        <stepInitiator rdf:resource="#User"/>
        <specification>The user places the request to be a steward to a particular registrar.</specification>
        <next>
      <Step>
        <stepInitiator rdf:resource="#OOR"/>
        <specification>The system notifies the registrar that a request has been made for a user to become a steward.</specification>
        <next>
      <Step>
        <stepInitiator rdf:resource="#Registrar"/>
        <specification>The registrar approves the request.</specification>
        <next>
      <Step>
        <stepInitiator rdf:resource="#OOR"/>
        <specification>The system notified the user</specification>
      </Step></next></Step></next></Step></next></Step></next></Step>
    </first>
  </UseCase>
  
  
  <UseCase rdf:ID="registerSubmitter">
    <name>Submitter Registrarion </name>
    <author>M&#225;ximo Gurm&#233;ndez</author>
    <exposition>A user wants to become a Submitter for a registration authority.</exposition>
    <creationDate rdf:type="http://www.w3.org/2001/XMLSchema#date">March 14, 2010</creationDate>
    <first>
      <Step>
        <includes rdf:resource="#queryRA"/>
        <next>
      <Step>
        <stepInitiator rdf:resource="#User"/>
        <specification>The user places the request to become a submitter from a particular steward.</specification>
        <next>
      <Step>
        <stepInitiator rdf:resource="#OOR"/>
        <specification>The system notifies the steward that a request has been made for the user to become a submitter.</specification>
        <next>
      <Step>
        <stepInitiator rdf:resource="#Steward"/>
        <specification>The steward approves the request.</specification>
        <next>
      <Step>
        <stepInitiator rdf:resource="#OOR"/>
        <specification>The system notifies the user that the request has been accepted.</specification>
      </Step></next></Step></next></Step></next></Step></next></Step>
    </first>
  </UseCase>


    <UseCase rdf:ID="queryRA">
    <name>Query the registration authorities</name>
    <author>M&#225;ximo Gurm&#233;ndez</author>
    <exposition>A user queries the system to obtain information on all registration authorities.</exposition>
    <creationDate rdf:type="http://www.w3.org/2001/XMLSchema#date">March 14, 2010</creationDate>
    <first>
      <Step>
        <stepInitiator rdf:resource="#User"/>
        <specification>A user requests the system for information on the existing registration authorities.</specification>
        <next>
        <Step rdf:ID="queue">
        <stepInitiator rdf:resource="#OOR"/>
        <specification>The system returns the information about all registration authorities, including all registrars and stewards associated with each registration authority.</specification>
        </Step></next></Step></first>
  	</UseCase>

  <UseCase rdf:ID="uploadProcessDefinition">
    <name>Upload Process Definition</name>
    <author>M&#225;ximo Gurm&#233;ndez</author>
    <exposition>The upload of a process definition on the system.</exposition>
    <creationDate rdf:type="http://www.w3.org/2001/XMLSchema#date">March 14, 2010</creationDate>
    <first>
      <Step>
        <stepInitiator rdf:resource="#ProcessManager"/>
        <specification>The process manager requests the system for process definition schema</specification>
        <next>
      <Step rdf:ID="queue">
        <stepInitiator rdf:resource="#OOR"/>
        <!-- TODO: Maybe in addition to the schema, there is a exposition? -->
        <specification>The system returns the schemas for instantiating process definitions. </specification>
        <next>
      <Step>
        <stepInitiator rdf:resource="#ProcessManager"/>
        <specification>The process manager uploads the process definition to the system.</specification>
        <next>
      <Step>
        <stepInitiator rdf:resource="#OOR"/>
        <specification>The system notifies the process manager that the process has been uploaded successfully.</specification>
      </Step></next></Step></next></Step></next></Step>
    </first>
  </UseCase>
  
  
  <UseCase rdf:ID="registerItem">
    <name>Register Item</name>
    <author>M&#225;ximo Gurm&#233;ndez</author>
    <exposition>A submitter registers an Administered Item for the first time.</exposition>
    <creationDate rdf:type="http://www.w3.org/2001/XMLSchema#date">March 14, 2010</creationDate>
    <first>
      <Step rdf:ID="queue">
        <stepInitiator rdf:resource="#Submitter"/>
        <specification>The submitter uploads an administered item. </specification>
        <next>
      <Step>
        <stepInitiator rdf:resource="#OOR"/>
        <specification>The system returns a confirmation message and a version number for the newly created administered item</specification>
        </Step></next></Step>
    </first>
  </UseCase>

   
    <UseCase rdf:ID="queryItem">
    <name>Query Administered Item</name>
    <author>M&#225;ximo Gurm&#233;ndez</author>
    <exposition>A user queries the system to find an administered item</exposition>
    <creationDate rdf:type="http://www.w3.org/2001/XMLSchema#date">March 14, 2010</creationDate>
    <first>
      <Step rdf:ID="queue">
        <stepInitiator rdf:resource="#User"/>
        <specification>The submits a combination subset of query component values. These are title, release date and status. 
        The user also specifies how to sort the results, and a desired rank range of results.
        For example: the user might search for "Virus Infection", released before 01/10/2009, with STANDARD status, 
        sorted by release date, and returning the ranked list that goes from entry 20 to 30.
        Optionally, the specific version can also be included in the query.  
         </specification>
         <!-- TODO: how are the view permissions are determined -->
        <next>
      <Step>
        <stepInitiator rdf:resource="#OOR"/>
        <specification>The system returns a list of administered items that match the user query</specification>
        </Step></next></Step>
    </first>
  </UseCase>
  
    <UseCase rdf:ID="updateItem">
    <name>Query Administered Item</name>
    <author>M&#225;ximo Gurm&#233;ndez</author>
    <exposition>A submitter or steward</exposition>
    <creationDate rdf:type="http://www.w3.org/2001/XMLSchema#date">March 14, 2010</creationDate>
    <first>
      <Step rdf:ID="queue">
        <stepInitiator rdf:resource="#Steward"/>
        <specification>The user submits an administrative item (along with its version number) to the OOR. 
         </specification>
        <next>
      <Step>
        <stepInitiator rdf:resource="#OOR"/>
        <specification>The system returns a confirmation message and a new version number for the administered item.</specification>
        </Step></next></Step>
    </first>
  </UseCase>
  
  <UseCase rdf:ID="processInstanceForm">
    <name>Process Instance Form Completion </name>
    <author>M&#225;ximo Gurm&#233;ndez</author>
    <exposition>A user needs to input some information as required by some process definition.</exposition>
    <creationDate rdf:type="http://www.w3.org/2001/XMLSchema#date">March 14, 2010</creationDate>
    <first>
      <Step rdf:ID="queue">
        <stepInitiator rdf:resource="#OOR"/>
        <specification>The system notifies a user that some information needs to be provided for the process of 
        standarization to continue for some administered item.  
         </specification>
        <next>
      <Step>
        <stepInitiator rdf:resource="#User"/>
        <specification>The user queries the system for the list of tasks to be completed.</specification>
        <next>
        <Step>
        <stepInitiator rdf:resource="#OOR"/>
        <specification>The system returns all the pending tasks for the user.</specification>
        <next>
        <Step>
        <stepInitiator rdf:resource="#User"/>
        <specification>The user submits the information required for one or more of the tasks.</specification>
        <Step>
        <stepInitiator rdf:resource="#OOR"/>
        <specification>The system returns a confirmation message.</specification>
        </Step></Step></next></Step></next></Step></next></Step>
    </first>
  </UseCase>


    <UseCase rdf:ID="contactUpdate">
    <name>Update Contact Information</name>
    <author>M&#225;ximo Gurm&#233;ndez</author>
    <exposition>A user changes its contact information. </exposition>
    <creationDate rdf:type="http://www.w3.org/2001/XMLSchema#date">March 14, 2010</creationDate>
    <first>
      <Step rdf:ID="queue">
        <stepInitiator rdf:resource="#User"/>
        <specification>The user submits the new contact information (i.e. email address, name or surname). 
         </specification>
        <next>
      <Step>
        <stepInitiator rdf:resource="#OOR"/>
        <specification>The system returns a confirmation message.</specification>
        </Step></next></Step>
    </first>
  </UseCase>
  
  
  <!-- TODO: This may be part of workflow really... but the engine may not be able to summarize all the reviews. 
  Not sure. Do we need a generic rating or a rating per category (i.e. well designed, utility, integrability,  modularity, etc)  -->
      <UseCase rdf:ID="reviewItem">
    <name>Review an administered item</name>
    <author>M&#225;ximo Gurm&#233;ndez</author>
    <exposition>A user wants to review the administered item by providing comments and number rating. </exposition>
    <creationDate rdf:type="http://www.w3.org/2001/XMLSchema#date">March 14, 2010</creationDate>
    <first>
      <Step rdf:ID="queue">
        <stepInitiator rdf:resource="#User"/>
        <specification>The user submits a comment, and a number rating for a particular version of an administered item. 
         </specification>
        <next>
      <Step>
        <stepInitiator rdf:resource="#OOR"/>
        <specification>The system records the information and sends the user a confirmation message.</specification>
        </Step></next></Step>
    </first>
  </UseCase>
  
   <UseCase rdf:ID="advertise">
    <name>Advertise Administered Items</name>
    <author>M&#225;ximo Gurm&#233;ndez</author>
    <exposition> The user retrieves a list of some of the administered items that are to specially advertised.</exposition>
    <creationDate rdf:type="http://www.w3.org/2001/XMLSchema#date">March 14, 2010</creationDate>
    <first>
      <Step rdf:ID="queue">
        <stepInitiator rdf:resource="#User"/>
        <specification>The user submits a request to see the advertised administered item (i.e. when opening the home page of the system)
         </specification>
        <next>
      <Step>
        <stepInitiator rdf:resource="#OOR"/>
        <specification>The system returns the advertised administered item using some criteria 
        (i.e. the items which have a STANDARD status and its ratings are high).</specification>
        </Step></next></Step>
    </first>
  </UseCase>
  
  <!-- Note: Accreditor cannot retire  -->
     <UseCase rdf:ID="retireUser">
    <name>Retire User</name>
    <author>M&#225;ximo Gurm&#233;ndez</author>
    <exposition>A user desires to retire from the system responsabilities. </exposition>
    <creationDate rdf:type="http://www.w3.org/2001/XMLSchema#date">March 14, 2010</creationDate>
    <first>
      <Step rdf:ID="queue">
        <stepInitiator rdf:resource="#User"/>
        <specification>The user submits a request to retire from the system.
         </specification>
        <next>
      <Step>
        <stepInitiator rdf:resource="#OOR"/>
        <specification>The system returns a confirmation message. </specification>
        <next>
        <Step>
        <startAfter rdf:resource="#ReAssignUser" ></startAfter>
        </Step></next></Step></next></Step>
    </first>
  </UseCase>
  
  
   <Alternative rdf:ID="ReAssignUser">
    <name>Re-assign User</name>
    <author>M&#225;ximo Gurm&#233;ndez</author>
    <exposition>A user has retired and any responsability must be taken over by some other user.</exposition>
    <creationDate rdf:type="http://www.w3.org/2001/XMLSchema#date">March 14, 2010</creationDate>
    <precondition>
    <Condition>
    <specification>The user is a Steward, Submitter or Registrar.
         </specification>
    </Condition>
    </precondition>
    <first>
      <Step rdf:ID="queue">
        <stepInitiator rdf:resource="#OOR"/>
        <specification>The system sends a request to other users in the same registration authority and same level 
        (i.e. steward, registrar or submitter), the petition to take over the responsibility of the user that has 
        retired, with a petition number.
         </specification>
        <next>
      <Step>
        <stepInitiator rdf:resource="#User"/>
        <specification>A user sends the petition number and an acknowledgement that is willing to accept the petition. We will call this user the candidate.</specification>
        <next>
        <Step>
        <stepInitiator rdf:resource="#OOR"/>
        <specification>The system informs the immediate superior that a candidate exists for a user to accept the petition. </specification>
        <next>
        <Step>
        <stepInitiator rdf:resource="#User"/>
        <specification>The immediate superior accepts the candidate. </specification>
        <next>
        <Step>
        <stepInitiator rdf:resource="#OOR"/>
        <specification>The system informs the candidate, that it has now inherited the reponsibilities of the retired user. </specification>
        </Step></next></Step></next></Step></next></Step></next></Step>
    </first>
  </Alternative>
  
     <UseCase rdf:ID="queryProcedures">
    <name>Query procedures</name>
    <author>M&#225;ximo Gurm&#233;ndez</author>
    <exposition> The user wants to retrieve the latest procedures regarding the standardization process.</exposition>
    <creationDate rdf:type="http://www.w3.org/2001/XMLSchema#date">March 14, 2010</creationDate>
    <first>
      <Step rdf:ID="queue">
        <stepInitiator rdf:resource="#User"/>
        <specification>The user submits a request to see the latest procedures.
         </specification>
        <next>
      <Step>
        <stepInitiator rdf:resource="#OOR"/>
        <specification>The system returns all the latest procedures that involve the registration authority to which the user belongs (via the hierarchy).</specification>
        </Step></next></Step>
    </first>
  </UseCase>
  
       <UseCase rdf:ID="queryContact">
    <name>Query Contact Information</name>
    <author>M&#225;ximo Gurm&#233;ndez</author>
    <!-- TODO: What permission should be involved. Can it access the contact information of people outside his/her registration authority? -->
    <exposition> The user wants to retrieve the contact information for people within his registration authority.</exposition>
    <creationDate rdf:type="http://www.w3.org/2001/XMLSchema#date">March 14, 2010</creationDate>
    <first>
      <Step rdf:ID="queue">
        <stepInitiator rdf:resource="#User"/>
        <specification>The user submits a request to see the contact information of people of its own registration authority.
         </specification>
        <next>
      <Step>
        <stepInitiator rdf:resource="#OOR"/>
        <specification>The system returns a list of all contacts (and its corresponding role) that belong to the same 
        registration authority as the user. Each contact also specifies its immediate superior. </specification>
        </Step></next></Step>
    </first>
  </UseCase>
  
  
         <UseCase rdf:ID="retireItem">
    <name>Retire Item</name>
    <author>M&#225;ximo Gurm&#233;ndez</author>
    <exposition>A steward want to retire an administered item from the system. A retired item should be distinguished from that of an active item whose status is marked as deprecated.
    In the first case, the item will no longer be available to any user, whereas in the second case the item will still be available, but users know that the item should be replaced by some
    other. </exposition>
    <creationDate rdf:type="http://www.w3.org/2001/XMLSchema#date">March 14, 2010</creationDate>
    <first>
      <Step rdf:ID="queue">
        <stepInitiator rdf:resource="#Steward"/>
        <specification>The steward requests the system for an administered item to be retired.
         </specification>
        <next>
      <Step>
        <stepInitiator rdf:resource="#OOR"/>
        <specification>The system marks the administered item as retired (i.e. it will no longer be accessible to any user in the system)  </specification>
        </Step></next></Step>
    </first>
  </UseCase>
  

  <Actor rdf:ID="Accreditor">
    <name>"Accreditor"</name>
    <exposition>The singular authority that manages the registration authorities of the OOR</exposition>
    <kindOf rdf:resource="#ProcessManager"/>
  </Actor>
  
   <Actor rdf:ID="Registrar">
    <name>"Registrar"</name>
    <exposition>A user that directly represents the registration authority.</exposition>
    <kindOf rdf:resource="#ProcessManager"/>
  </Actor>
  
   <Actor rdf:ID="Steward">
    <name>"Steward"</name>
    <exposition>A user that represents the registration authority through a specific registrar.</exposition>
    <kindOf rdf:resource="#ProcessManager"/>
  </Actor>
  
  <Actor rdf:ID="Submittter">
    <name>"Submitter"</name>
    <exposition>A user that represents a registration authority through a specific steward.</exposition>
    <kindOf rdf:resource="#User"/>
  </Actor>
  
   <Actor rdf:ID="ProcessManager">
    <name>"ProcessManager"</name>
    <exposition>A user that is able to create process definitions</exposition>
    <kindOf rdf:resource="#User"/>
  </Actor>
  
  
  
  
 
  
  <Actor rdf:ID="User">
    <name>User</name>
    <exposition>Any user of the OOR</exposition>
  </Actor>

</rdf:RDF>
