<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rdf:RDF [
	 <!ENTITY rdf 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
	 <!ENTITY rdfs 'http://www.w3.org/2000/01/rdf-schema#'>
	 <!ENTITY owl 'http://www.w3.org/2002/07/owl#'>
	 <!ENTITY policy 'http://www.cs.umbc.edu/~lkagal1/rei/ontologies/ReiPolicy.owl#'>
	 <!ENTITY action 'http://www.cs.umbc.edu/~lkagal1/rei/ontologies/ReiAction.owl#'>
	 <!ENTITY constraint 'http://www.cs.umbc.edu/~lkagal1/rei/ontologies/ReiConstraint.owl#'>
	 <!ENTITY deontic 'http://www.cs.umbc.edu/~lkagal1/rei/ontologies/ReiDeontic.owl#'>
	 <!ENTITY entity 'http://www.cs.umbc.edu/~lkagal1/rei/ontologies/ReiEntity.owl#'>
	 <!ENTITY dso 'http://www.dspace.org/objectModel#'>
	 <!ENTITY dsr 'http://www.dspace.org/rules.rdfs#'>
	 <!ENTITY inst 'http://www.dspace.org/instances.rdf#'>
	 <!ENTITY history 'http://www.dspace.org/history#'>
	 <!ENTITY dc 'http://purl.org/dc/elements/1.1/'>
	 ]>
	 
	 <rdf:RDF xmlns:rdf="&rdf;"
	     xmlns:rdfs="&rdfs;"
	     xmlns:owl="&owl;"
	     xmlns:policy="&policy;"
	     xmlns:action="&action;"
	     xmlns:constraint="&constraint;"
	     xmlns:deontic="&deontic;"
	     xmlns:entity="&entity;"
	     xmlns:dso="&dso;"
	     xmlns:dsr="&dsr;"
	     xmlns:inst="&inst;"
	     xmlns:history="&history;"
	 	 xmlns:dc="&dc;">
	     
	     
	     <!-- PP-0004 Descriptive Metadata
	         
	         Actual DSpace Policy Examples Expressed:
	         
	         1. Each DSpace Item requires a dublin core title.
	         2. Each Dspace Item requires a dublin core date.
	         3. Each DSpace Item requires a dublin core language.
	         4. Upon deposit of each DSpace Item, depositor is obliged to supply a dublin core title.
	         5. Upon deposit of each DSpace Item, DSpace is obliged to supply a dublin core date.
	         6. Upon deposit of each DSpace Item, DSpace is obliged to supply a dublin core language.
	     -->
	     
	     <entity:Variable rdf:ID="var1" policy:desc="An authorized DSpace Depositor"/>
	     
	 	<entity:Variable rdf:ID="var2" policy:desc="A DSpace Item"/>
	 	
	     
	     <!-- Is DSpace Item -->
	     <constraint:SimpleConstraint rdf:ID="IsDSpaceItem">
	     	<constraint:subject rdf:resource="#var2"/>
	         <constraint:predicate rdf:resource="&rdf;type"/>
	         <constraint:object rdf:resource="&dso;Item"/>
	         <policy:desc>All DSpace Items</policy:desc>
	     </constraint:SimpleConstraint>
	     
	     <!-- [Upon Deposit] -->
	     <constraint:SimpleConstraint rdf:ID="CreatesItem">
	         <constraint:subject rdf:resource="#var1"/>
	         <constraint:predicate rdf:resource="&history;Create"/>
	     	<constraint:object rdf:resource="#var2"/>
	     </constraint:SimpleConstraint>
	 	
	 	<constraint:SimpleConstraint rdf:ID="RequiresMetadata">
	 		<constraint:subject rdf:resource="&dso;Item"/>
	 		<constraint:predicate rdf:resource="&dsr;Requires"/>
	 		<constraint:object rdf:resource="&dsr;RequiredMetadata"/>
	 	</constraint:SimpleConstraint>
	     	 	
	 	<history:ModifyMetadata rdf:ID="WritesTitle">
	 		<action:target rdf:resource="&dc;title"/>
	 		<action:location rdf:resource="#var2"/>
	 	</history:ModifyMetadata>
	 	
	 	<history:ModifyMetadata rdf:ID="WritesDate">
	 		<action:target rdf:resource="&dc;date"/>
	 		<action:location rdf:resource="#var2"/>
	 	</history:ModifyMetadata>
	 	
	 	<history:ModifyMetadata rdf:ID="WritesLanguage">
	 		<action:target rdf:resource="&dc;language"/>
	 		<action:location rdf:resource="#var2"/>
	 	</history:ModifyMetadata>
	 	
	 	<deontic:Obligation rdf:ID="WriteTitle">
	 		<deontic:actor rdf:ID="#var1"/>
	 		<deontic:action rdf:ID="#WritesMetadata"/>
	 		<deontic:constraint rdf:ID="#CreatesItem"/>
	 	</deontic:Obligation>
	 	
	 	<deontic:Obligation rdf:ID="WriteDate">
	 		<deontic:actor rdf:ID="&dso;Site"/>
	 		<deontic:action rdf:ID="#WritesDate"/>
	 		<deontic:constraint rdf:ID="#CreatesItem"/>
	 	</deontic:Obligation>
	 	
		<deontic:Obligation rdf:ID="WriteLanguage">
	 		<deontic:actor rdf:ID="&dso;Site"/>
			<deontic:action rdf:ID="#WritesLanguage"/>
			<deontic:constraint rdf:ID="#CreatesItem"/>
		</deontic:Obligation>
	 		
	 	<policy:Policy rdf:ID="PP0004DescriptiveMetadata">
	         <policy:context rdf:resource="#RequiresMetadata"/>
	         <policy:grants rdf:resource="#WriteTitle"/>
	         <policy:grants rdf:resource="#WriteDate"/>
	 		 <policy:grants rdf:resource="#WriteLanguage"/>
	     </policy:Policy>
	     
 
</rdf:RDF>