<?xml version="1.0" ?> <!-- Vocabulary in the EPAL language modeling Privacy Systems example Direct Time Limited Permissions and Direct Permissions.-->  <!--Vocabulary for Direct Time Limited Permissions Example - Edited 11 Aug 2004-->
<epal-vocabulary version="1.2" xmlns="http://www.research.ibm.com/privacy/epal" xmlns:xs="http://www.w3.org/2001/XMLSchema"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.research.ibm.com/privacy/epal epal.xsd
 http://www.w3.org/2001/XMLSchema xs-dummy.xsd ">
	<vocabulary-information id="DTLP-Vocab">
		<short-description language="en">Privacy System Direct Time Limited Permissions Vocabulary</short-description>
		<long-description language="en">This is a vocabulary in EPAL that will be used for modeling the
       interactions in a Privacy System in the Direct Time Limited Permissions example.  By ignoring the dateTime
       attributes this vocab can be used for the Direct Permissions example as well.</long-description>
		<issuer>
			<name>Penn Security Lab</name>
			<organization>University of Pennsylvania</organization>
			<e-mail>mjmay@seas.upenn.edu</e-mail>
			<address>200 South 33rd Street, Philadelphia, PA 19104</address>
			<country>USA</country>
		</issuer>
		<location>http://www.securitylab.cis.upenn.edu</location>
		<version-info end-date="2005-08-10T12:00:00" last-modified="2004-08-11T11:34:00" revision-number=""
			start-date="2004-08-10T15:34:00" test="true" />
	</vocabulary-information>
	
	<!--User categories as defined in the system.  Most important thing is that the Principals have permissions associated with them.-->
	<user-category id="Subject" parent="AnyUser">
		<short-description language="en">Subject</short-description>
	</user-category>
	<user-category id="Subscriber" parent="AnyUser">
		<short-description language="en">Subscriber</short-description>
	</user-category>
	<user-category id="Holder" parent="AnyUser">
		<short-description language="en">Holder</short-description>
	</user-category>
	<user-category id="AnyUser">
		<short-description language="en">Root category that includes all subcategories</short-description>
	</user-category>
	
	<!--Data categories don't matter in a Direct Time Limited Permissions Privacy System, so this is left generic.  All data types are rolled into this one-->
	<data-category id="AnyCategory">
		<short-description language="en">Root of all data types.</short-description>
	</data-category>
	
	<!--Purposes are important in the Direct Time Limited Permissions example because we model members of the Action set as 3-tuples of (Actions, Purpose, Data Category).-->
	<purpose id="P1" parent="AnyPurpose">
		<short-description language="en">Purpose1</short-description>
	</purpose>
	<purpose id="P2" parent="AnyPurpose">
		<short-description language="en">Purpose2</short-description>
	</purpose>
	<purpose id="AnyPurpose">
		<short-description language="en">Root purpose that includes all others</short-description>
	</purpose>
	
	<!--Actions are part of the A set in Privacy Systems-->
	<action id="PublishSubscribe">
		<short-description language="en">Publish Subscribe event - T function</short-description>
	</action>
	<action id="Creation">
		<short-description language="en">Creation event - V relation</short-description>
	</action>
	<action id="SetPolicy">
		<short-description language="en">Set Policy event - W relation</short-description>
	</action>
	<action id="Action">
		<short-description language="en">Action event - U relation</short-description>
	</action>
	
	<!--Containers for data.-->
	<!--Container for information about the principal involved in the publishing event.  This
	Container has information about the Sigmas that belong to each principal.  Note that
	Sigma = { dir, bottom } so there are only two potential settings for the Sigma value.  dateTime
	values are included too to allow for checking expiration of principal permissions-->
	<container id="PrincipalPermissions">
		<short-description language="en">Container for information about the principal involved in the
		publishing event.  This Container has information about the Sigmas that belong to each principal.
		Note that Sigma = { dir, bottom } so there are only two potential settings for the Sigma value.
		dateTime values are included to allow for checking expiration of principal permissions</short-description>
		<attribute id="Owner" maxOccurs="1" minOccurs="1" simpleType="http://www.w3.org/2001/XMLSchema#string">
			<short-description language="en">Name of the principal that owns this permission</short-description>
		</attribute>
		<attribute id="Subject" maxOccurs="1" minOccurs="1" simpleType="http://www.w3.org/2001/XMLSchema#string">
			<short-description language="en">Name of the subject of the permission</short-description>
		</attribute>
		<attribute id="Sigma" maxOccurs="1" minOccurs="1" simpleType="http://www.w3.org/2001/XMLSchema#string">
			<short-description language="en">Value of the permission indicator (Can be {dir, bottom} only)</short-description>
		</attribute>
		<attribute id="Expiry" maxOccurs="1" minOccurs="1" simpleType="http://www.w3.org/2001/XMLSchema#dateTime">
			<short-description language="en">Date and time when the permission expires</short-description>
		</attribute>
	</container>
	
	<!--Container for a transfer request-->
	<container id="TransferPermissions">
		<short-description language="en">Container with the information needed to evaluate a transfer request.</short-description>
		<attribute id="PublisherSigma" maxOccurs="1" minOccurs="1" simpleType="http://www.w3.org/2001/XMLSchema#string">
			<short-description language="en">Value of the Sigma that the publisher has on the subject</short-description>
		</attribute>
		<attribute id="SubscriberSigma" maxOccurs="1" minOccurs="1" simpleType="http://www.w3.org/2001/XMLSchema#string">
			<short-description language="en">Value of the Sigma that the subscriber has on the subject</short-description>
		</attribute>
		<attribute id="Publisher" maxOccurs="1" minOccurs="1" simpleType="http://www.w3.org/2001/XMLSchema#string">
			<short-description language="en">Name of the publisher</short-description>
		</attribute>
		<attribute id="Subscriber" maxOccurs="1" minOccurs="1" simpleType="http://www.w3.org/2001/XMLSchema#string">
			<short-description language="en">Name of the subscriber</short-description>
		</attribute>
		<attribute id="Subject" maxOccurs="1" minOccurs="1" simpleType="http://www.w3.org/2001/XMLSchema#string">
			<short-description language="en">Name of the subject of the data</short-description>
		</attribute>
	</container>
	
	<!--Container for Set Policy Event-->
	<container id="SetPolicyEvent">
		<short-description language="en">All the data necessary for the evaluation of a set policy event -
		   p sets sigma on q for r at t</short-description>
		<attribute id="Setter" maxOccurs="1" minOccurs="1" simpleType="http://www.w3.org/2001/XMLSchema#string">
			<short-description language="en">Name of the principal that is doing the setting of the permissions</short-description>
		</attribute>
		<attribute id="Sigma" maxOccurs="1" minOccurs="1" simpleType="http://www.w3.org/2001/XMLSchema#string">
			<short-description language="en">Value of the permission that the setter is setting</short-description>
		</attribute>
		<attribute id="Recipient" maxOccurs="1" minOccurs="1" simpleType="http://www.w3.org/2001/XMLSchema#string">
			<short-description language="en">Name of the principal that is receiving the permission on the subject</short-description>
		</attribute>
		<attribute id="Subject" maxOccurs="1" minOccurs="1" simpleType="http://www.w3.org/2001/XMLSchema#string">
			<short-description language="en">Name of the principal that the permission is being set about</short-description>
		</attribute>
		<attribute id="Time" maxOccurs="1" minOccurs="1" simpleType="http://www.w3.org/2001/XMLSchema#dateTime">
			<short-description language="en">Time and date when the set policy event is taking place</short-description>
		</attribute>
	</container>
	
	<!--Container for Creation Event-->
	<container id="CreationEvent">
		<short-description language="en">All the data necessary for the evaluation of a creation event -
		   p creates x at t</short-description>
		<attribute id="Creator" maxOccurs="1" minOccurs="1" simpleType="http://www.w3.org/2001/XMLSchema#string">
			<short-description language="en">Name of the principal that is doing the object creation</short-description>
		</attribute>
		<attribute id="Object" maxOccurs="1" minOccurs="1" simpleType="http://www.w3.org/2001/XMLSchema#string">
			<short-description language="en">Object being created</short-description>
		</attribute>
		<attribute id="Subject" maxOccurs="1" minOccurs="1" simpleType="http://www.w3.org/2001/XMLSchema#string">
			<short-description language="en">Name of the principal that the object created is about</short-description>
		</attribute>
		<attribute id="Time" maxOccurs="1" minOccurs="1" simpleType="http://www.w3.org/2001/XMLSchema#dateTime">
			<short-description language="en">Time and date when the creation is taking place</short-description>
		</attribute>
	</container>

	<!--Container for Publish/Subscribe Event-->
	<container id="PublishSubscribeEvent">
		<short-description language="en">All the data necessary for the evaluation of a set publish/subscribe event -
		   p gets x from q at t</short-description>
		<attribute id="Publisher" maxOccurs="1" minOccurs="1" simpleType="http://www.w3.org/2001/XMLSchema#string">
			<short-description language="en">Name of the principal that is doing the publishing</short-description>
		</attribute>
		<attribute id="Object" maxOccurs="1" minOccurs="1" simpleType="http://www.w3.org/2001/XMLSchema#string">
			<short-description language="en">Object that is being published</short-description>
		</attribute>
		<attribute id="Subscriber" maxOccurs="1" minOccurs="1" simpleType="http://www.w3.org/2001/XMLSchema#string">
			<short-description language="en">Name of the principal that is receiving the object</short-description>
		</attribute>
		<attribute id="Subject" maxOccurs="1" minOccurs="1" simpleType="http://www.w3.org/2001/XMLSchema#string">
			<short-description language="en">Name of the principal that the object is about</short-description>
		</attribute>
		<attribute id="Time" maxOccurs="1" minOccurs="1" simpleType="http://www.w3.org/2001/XMLSchema#dateTime">
			<short-description language="en">Time and date when the publishing/subscribing is taking place</short-description>
		</attribute>
	</container>
	
	<!--Container for Action Event-->
	<container id="ActionEvent">
		<short-description language="en">All the data necessary for the evaluation of an action event -
		   p does a on q at t</short-description>
		<attribute id="Actor" maxOccurs="1" minOccurs="1" simpleType="http://www.w3.org/2001/XMLSchema#string">
			<short-description language="en">Name of the principal that is doing the action</short-description>
		</attribute>
		<attribute id="Action" maxOccurs="1" minOccurs="1" simpleType="http://www.w3.org/2001/XMLSchema#string">
			<short-description language="en">Action being done</short-description>
		</attribute>
		<attribute id="Subject" maxOccurs="1" minOccurs="1" simpleType="http://www.w3.org/2001/XMLSchema#string">
			<short-description language="en">Name of the principal that is being acted on</short-description>
		</attribute>
		<attribute id="Time" maxOccurs="1" minOccurs="1" simpleType="http://www.w3.org/2001/XMLSchema#dateTime">
			<short-description language="en">Time and date when the action is taking place</short-description>
		</attribute>
	</container>
	
	<!--Obligations will not be needed for the Direct Time Limited Permission Example-->

</epal-vocabulary>