<?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;"
               xml:base="http://www.dspace.org/instances.rdf#">
             
             
             <!-- 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:resource="#var1"/>
                        <deontic:action rdf:resource="#WritesMetadata"/>
                        <deontic:constraint rdf:resource="#CreatesItem"/>
                </deontic:Obligation>
                
                <deontic:Obligation rdf:ID="WriteDate">
                        <deontic:actor rdf:resource="&dso;Site"/>
                        <deontic:action rdf:resource="#WritesDate"/>
                        <deontic:constraint rdf:resource="#CreatesItem"/>
                </deontic:Obligation>
                
                <deontic:Obligation rdf:ID="WriteLanguage">
                        <deontic:actor rdf:resource="&dso;Site"/>
                        <deontic:action rdf:resource="#WritesLanguage"/>
                        <deontic:constraint rdf:resource="#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>
