<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE RuleML [
	 <!ENTITY rdf 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
	 <!ENTITY abc 'http://metadata.net/harmony#'>
	 <!ENTITY dso 'http://www.dspace.org/objectModel#'>
	 <!ENTITY dsh 'http://www.dspace.org/history#'>
	 <!ENTITY dsr 'http://www.dspace.org/rules.rdfs#'>
	 <!ENTITY history 'http://www.dspace.org/history#'>
	 <!ENTITY dc 'http://purl.org/dc/elements/1.1/'>
	 ]>
	 
<RuleML xmlns="http://www.ruleml.org/0.91/xsd" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:abc="http://metadata.net/harmony#"
    xmlns:dso="http://www.dspace.org/objectModel#"
    xmlns:dsh="http://www.dspace.org/history#"
    xmlns:dsr="http://www.dspace.org/rules#"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:history="http://www.dspace.org/history#"
    xsi:schemaLocation="http://www.ruleml.org/0.91/xsd http://www.ruleml.org/0.91/xsd/datalog.xsd">
    
    <!-- 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.
    -->
    <Assert>
        <Entails>
            <Rulebase>
                <Forall>
                    <Var type="URI">&dso;Item</Var>
                </Forall>
                <formula>
                    <Atom>
                        <op>
                            <!-- New predicate/action in new namespace 'http://www.dspace.org/rules#' -->
                            <Rel uri="dsr:requiresMetadata"/>
                        </op>
                        <slot><Ind uri="rdf:about"/><Var type="URI">&dso;Item</Var></slot>
                        <slot><Ind uri="rdf:resource"/><Ind uri="dc:title"></Ind></slot>
                        <slot><Ind uri="rdf:resource"/><Ind uri="dc:date"/></slot>
                        <slot><Ind uri="rdf:resource"/><Ind uri="dc:language"/></slot>
                    </Atom>
                </formula>
            </Rulebase>
            
            <Rulebase>
                <Implies>
                    <head> 
                        <Atom>
                            <op>
                                <!-- New property/action in new namespace 'http://www.dspace.org/rules#'. -->
                                <Rel uri="dsr:writesMetadata"/>
                            </op>
                            <Var type="URI">&dso;EPerson</Var>
                            <Ind uri="dc:title"/>
                        </Atom>
                    </head>
                    <body>
                        <Atom>
                            <op>
                                <Rel uri="history:Create"/>
                            </op>
                            <Var type="URI">&dso;EPerson</Var>
                            <Var type="URI">&dso;Item</Var>
                        </Atom>
                    </body>
                </Implies>
                <Implies>
                    <head> 
                        <Atom>
                            <op>
                                <!-- New predicate/action in new namespace 'http://www.dspace.org/rules#'.  This predicate is an instance of the REI class deontic:Obligation -->
                                <Rel uri="dsr:writesMetadata"/>
                            </op>
                            <slot><Ind uri="rdf:about"/><Var type="URI">&dso;Site</Var></slot>
                            <slot><Ind uri="rdf:resource"/><Ind uri="dc:date"/></slot>
                            <slot><Ind uri="rdf:resource"/><Ind uri="dc:language"/></slot>
                        </Atom>
                    </head>
                    <body>
                        <Atom>
                            <op>
                                <Rel uri="history:Create"/>
                            </op>
                            <Var type="URI">dso:EPerson</Var>
                            <Var type="URI">dso:Item</Var>
                        </Atom>
                    </body>
                </Implies>
            </Rulebase>
        </Entails>
    </Assert>
    
</RuleML>    