All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.openrdf.sesame.sailimpl.rdbms.entailment-rdfmt-REC.xml Maven / Gradle / Ivy

Go to download

Sesame is an open source Java framework for storing, querying and reasoning with RDF.

The newest version!
<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE InferenceRules [
	<!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#'>

<!ELEMENT InferenceRules (axiom | rule)* >

<!ELEMENT rule ((premise+, consequent, triggers_rule?)|EMPTY)>
<!ATTLIST rule
	name CDATA #REQUIRED>

<!ELEMENT triggers_rule (rule)* >

<!ELEMENT axiom       (subject, predicate, object)>
<!ELEMENT premise     (subject, predicate, object)>
<!ELEMENT consequent  (subject, predicate, object)>

<!ELEMENT subject EMPTY>
<!ATTLIST subject
	var CDATA #IMPLIED
	uri CDATA #IMPLIED
	pattern CDATA #IMPLIED
	escape CDATA #IMPLIED>

<!ELEMENT predicate EMPTY>
<!ATTLIST predicate
	var CDATA #IMPLIED
	uri CDATA #IMPLIED
	pattern CDATA #IMPLIED
	escape CDATA #IMPLIED>

<!ELEMENT object EMPTY>
<!ATTLIST object
	var CDATA #IMPLIED
	uri CDATA #IMPLIED
	pattern CDATA #IMPLIED
	escape CDATA #IMPLIED>
]>

<InferenceRules>
<!--
	Axioms and entailment rules for RDF and RDFS Semantics, W3C Recommendation
	10 February 2004 - see http://www.w3.org/TR/rdf-mt/
-->

<!-- RDF axiomatic triples (from RDF Semantics, section 3.1): -->
		
<axiom><subject uri="&rdf;type"/> <predicate uri="&rdf;type"/> <object uri="&rdf;Property"/></axiom>
<axiom><subject uri="&rdf;subject"/> <predicate uri="&rdf;type"/> <object uri="&rdf;Property"/></axiom>
<axiom><subject uri="&rdf;predicate"/> <predicate uri="&rdf;type"/> <object uri="&rdf;Property"/></axiom>
<axiom><subject uri="&rdf;object"/> <predicate uri="&rdf;type"/> <object uri="&rdf;Property"/></axiom>

<axiom><subject uri="&rdf;first"/> <predicate uri="&rdf;type"/> <object uri="&rdf;Property"/></axiom>
<axiom><subject uri="&rdf;rest"/> <predicate uri="&rdf;type"/> <object uri="&rdf;Property"/></axiom>
<axiom><subject uri="&rdf;Value"/> <predicate uri="&rdf;type"/> <object uri="&rdf;Property"/></axiom>

<axiom><subject uri="&rdf;Nil"/> <predicate uri="&rdf;type"/> <object uri="&rdf;List"/></axiom>

<!-- RDFS axiomatic triples (from RDF Semantics section 4.1): -->

<axiom><subject uri="&rdf;type"/> <predicate uri="&rdfs;domain"/> <object uri="&rdfs;Resource"/></axiom>
<axiom><subject uri="&rdfs;domain"/> <predicate uri="&rdfs;domain"/> <object uri="&rdf;Property"/></axiom>
<axiom><subject uri="&rdfs;range"/> <predicate uri="&rdfs;domain"/> <object uri="&rdf;Property"/></axiom>
<axiom><subject uri="&rdfs;subPropertyOf"/> <predicate uri="&rdfs;domain"/> <object uri="&rdf;Property"/></axiom>
<axiom><subject uri="&rdfs;subClassOf"/> <predicate uri="&rdfs;domain"/> <object uri="&rdfs;Class"/></axiom>
<axiom><subject uri="&rdf;subject"/> <predicate uri="&rdfs;domain"/> <object uri="&rdf;Statement"/></axiom>
<axiom><subject uri="&rdf;predicate"/> <predicate uri="&rdfs;domain"/> <object uri="&rdf;Statement"/></axiom>
<axiom><subject uri="&rdf;object"/> <predicate uri="&rdfs;domain"/> <object uri="&rdf;Statement"/></axiom>
<axiom><subject uri="&rdfs;member"/> <predicate uri="&rdfs;domain"/> <object uri="&rdfs;Resource"/></axiom>
<axiom><subject uri="&rdf;first"/> <predicate uri="&rdfs;domain"/> <object uri="&rdf;List"/></axiom>
<axiom><subject uri="&rdf;rest"/> <predicate uri="&rdfs;domain"/> <object uri="&rdf;List"/></axiom>
<axiom><subject uri="&rdfs;seeAlso"/> <predicate uri="&rdfs;domain"/> <object uri="&rdfs;Resource"/></axiom>
<axiom><subject uri="&rdfs;isDefinedBy"/> <predicate uri="&rdfs;domain"/> <object uri="&rdfs;Resource"/></axiom>
<axiom><subject uri="&rdfs;comment"/> <predicate uri="&rdfs;domain"/> <object uri="&rdfs;Resource"/></axiom>
<axiom><subject uri="&rdfs;label"/> <predicate uri="&rdfs;domain"/> <object uri="&rdfs;Resource"/></axiom>
<axiom><subject uri="&rdf;Value"/> <predicate uri="&rdfs;domain"/> <object uri="&rdfs;Resource"/></axiom>

<axiom><subject uri="&rdf;type"/> <predicate uri="&rdfs;range"/> <object uri="&rdfs;Class"/></axiom>
<axiom><subject uri="&rdfs;domain"/> <predicate uri="&rdfs;range"/> <object uri="&rdfs;Class"/></axiom>
<axiom><subject uri="&rdfs;range"/> <predicate uri="&rdfs;range"/> <object uri="&rdfs;Class"/></axiom>
<axiom><subject uri="&rdfs;subPropertyOf"/> <predicate uri="&rdfs;range"/> <object uri="&rdf;Property"/></axiom>
<axiom><subject uri="&rdfs;subClassOf"/> <predicate uri="&rdfs;range"/> <object uri="&rdfs;Class"/></axiom>
<axiom><subject uri="&rdf;subject"/> <predicate uri="&rdfs;range"/> <object uri="&rdfs;Resource"/></axiom>
<axiom><subject uri="&rdf;predicate"/> <predicate uri="&rdfs;range"/> <object uri="&rdfs;Resource"/></axiom>
<axiom><subject uri="&rdf;object"/> <predicate uri="&rdfs;range"/> <object uri="&rdfs;Resource"/></axiom>
<axiom><subject uri="&rdfs;member"/> <predicate uri="&rdfs;range"/> <object uri="&rdfs;Resource"/></axiom>
<axiom><subject uri="&rdf;first"/> <predicate uri="&rdfs;range"/> <object uri="&rdfs;Resource"/></axiom>
<axiom><subject uri="&rdf;rest"/> <predicate uri="&rdfs;range"/> <object uri="&rdf;List"/></axiom>
<axiom><subject uri="&rdfs;seeAlso"/> <predicate uri="&rdfs;range"/> <object uri="&rdfs;Resource"/></axiom>
<axiom><subject uri="&rdfs;isDefinedBy"/> <predicate uri="&rdfs;range"/> <object uri="&rdfs;Resource"/></axiom>
<axiom><subject uri="&rdfs;comment"/> <predicate uri="&rdfs;range"/> <object uri="&rdfs;Literal"/></axiom>
<axiom><subject uri="&rdfs;label"/> <predicate uri="&rdfs;range"/> <object uri="&rdfs;Literal"/></axiom>
<axiom><subject uri="&rdf;Value"/> <predicate uri="&rdfs;range"/> <object uri="&rdfs;Resource"/></axiom>

<axiom><subject uri="&rdf;Alt"/> <predicate uri="&rdfs;subClassOf"/> <object uri="&rdfs;Container"/></axiom>
<axiom><subject uri="&rdf;Bag"/> <predicate uri="&rdfs;subClassOf"/> <object uri="&rdfs;Container"/></axiom>
<axiom><subject uri="&rdf;Seq"/> <predicate uri="&rdfs;subClassOf"/> <object uri="&rdfs;Container"/></axiom>
<axiom><subject uri="&rdfs;ContainermembershipProperty"/> <predicate uri="&rdfs;subClassOf"/> <object uri="&rdf;Property"/></axiom>

<axiom><subject uri="&rdfs;isDefinedBy"/> <predicate uri="&rdfs;subPropertyOf"/> <object uri="&rdfs;seeAlso"/></axiom>

<axiom><subject uri="&rdf;XMLLiteral"/> <predicate uri="&rdf;type"/> <object uri="&rdfs;Datatype"/></axiom>
<axiom><subject uri="&rdf;XMLLiteral"/> <predicate uri="&rdfs;subClassOf"/> <object uri="&rdfs;Literal"/></axiom>
<axiom><subject uri="&rdfs;Datatype"/> <predicate uri="&rdfs;subClassOf"/> <object uri="&rdfs;Class"/></axiom>


<!--
Rule rdf1:
	xxx aaa yyy ==>
	aaa rdf:type rdf:Property
-->
<rule name="rdf1">
	<premise>
		<subject var="xxx"/>
		<predicate var="aaa"/>
		<object var="yyy"/>
	</premise>
	<consequent>
		<subject var="aaa"/>
		<predicate uri="&rdf;type"/>
		<object uri="&rdf;Property"/>
	</consequent>
	<triggers_rule>
		<rule name="rdfs2" />
		<rule name="rdfs3" />
		<rule name="rdfs4a" />
		<rule name="rdfs6" />
		<rule name="rdfs7" />
		<rule name="rdfs9" />
	</triggers_rule>
</rule>

<!--
Rule rdf2:
	uuu aaa lll ==>
	_:nnn rdf:type rdf:XMLLiteral	
	(lll is a wellformed XML literal)
	Rule not implemented.
-->

<!--
Rule rdfs1:
	uuu aaa lll => _:nnn rdf:type rdfs:Literal
	(lll is a plain literal)
	Rule not implemented.
-->

<!--
Rule rdfs2:
	xxx aaa yyy &&
	aaa rdfs:domain zzz ==>
	xxx rdf:type zzz
-->
<rule name="rdfs2">
	<premise>
		<subject var="xxx"/>
		<predicate var="aaa"/>
		<object var="yyy"/>
	</premise>
	<premise>
		<subject var="aaa"/>
		<predicate uri="&rdfs;domain"/>
		<object var="zzz"/>
	</premise>
	<consequent>
		<subject var="xxx"/>
		<predicate uri="&rdf;type"/>
		<object var="zzz"/>
	</consequent>
	<triggers_rule>
		<rule name="rdfs2" />
		<rule name="rdfs3" />
		<rule name="rdfs6" />
		<rule name="rdfs7" />
		<rule name="rdfs8" />
		<rule name="rdfs9" />
		<rule name="rdfs10" />
		<rule name="rdfs12" />
		<rule name="rdfs13" />
	</triggers_rule>
</rule>

<!--
Rule rdfs3:
	xxx aaa uuu &&
	aaa rdfs:range zzz ==>
	uuu rdf:type zzz
-->
<rule name="rdfs3">
	<premise>
		<subject var="xxx"/>
		<predicate var="aaa"/>
		<object var="uuu"/>
	</premise>
	<premise>
		<subject var="aaa"/>
		<predicate uri="&rdfs;range"/>
		<object var="zzz"/>
	</premise>
	<consequent>
		<subject var="uuu"/>
		<predicate uri="&rdf;type"/>
		<object var="zzz"/>
	</consequent>
	<triggers_rule>
		<rule name="rdfs2" />
		<rule name="rdfs3" />
		<rule name="rdfs6" />
		<rule name="rdfs7" />
		<rule name="rdfs8" />
		<rule name="rdfs9" />
		<rule name="rdfs10" />
		<rule name="rdfs12" />
		<rule name="rdfs13" />
	</triggers_rule>
</rule>

<!--
Rule 4a:
	xxx aaa yyy ==>
	xxx rdf:type rdfs:Resource
-->	
<rule name="rdfs4a">
	<premise>
		<subject var="xxx"/>
		<predicate var="aaa"/>
		<object var="yyy"/>
	</premise>
	<consequent>
		<subject var="xxx"/>
		<predicate uri="&rdf;type"/>
		<object uri="&rdfs;Resource"/>
	</consequent>
	<triggers_rule>
		<rule name="rdfs2" />
		<rule name="rdfs3" />
		<rule name="rdfs7" />
		<rule name="rdfs9" />
	</triggers_rule>
</rule>

<!--
Rule 4b:
	xxx aaa uuu ==>
	uuu rdf:type rdfs:Resource
-->
<rule name="rdfs4b">
	<premise>
		<subject var="xxx"/>
		<predicate var="aaa"/>
		<object var="uuu"/>
	</premise>
	<consequent>
		<subject var="uuu"/>
		<predicate uri="&rdf;type"/>
		<object uri="&rdfs;Resource"/>
	</consequent>
	<triggers_rule>
		<rule name="rdfs2" />
		<rule name="rdfs3" />
		<rule name="rdfs7" />
		<rule name="rdfs9" />
	</triggers_rule>
</rule>

<!--	
Rule rdfs5:
	aaa rdfs:subPropertyOf bbb &&
	bbb rdfs:subPropertyOf ccc ==>
	aaa rdfs:subPropertyOf ccc
-->	
<rule name="rdfs5">
	<premise>
		<subject var="aaa"/>
		<predicate uri="&rdfs;subPropertyOf"/>
		<object var="bbb"/>
	</premise>
	<premise>
		<subject var="bbb"/>
		<predicate uri="&rdfs;subPropertyOf"/>
		<object var="ccc"/>
	</premise>
	<consequent>
		<subject var="aaa"/>
		<predicate uri="&rdfs;subPropertyOf"/>
		<object var="ccc"/>
	</consequent>
	<triggers_rule>
		<rule name="rdfs5" />
		<rule name="rdfs7" />
	</triggers_rule>
</rule>

<!--
Rule rdfs6:
	xxx rdf:type rdf:Property &&
	xxx rdfs:subPropertyOf xxx
-->	
<rule name="rdfs6">
	<premise>
		<subject var="xxx"/>
		<predicate uri="&rdf;type"/>
		<object uri="&rdf;Property"/>
	</premise>
	<consequent>
		<subject var="xxx"/>
		<predicate uri="&rdfs;subPropertyOf"/>
		<object var="xxx"/>
	</consequent>
	<triggers_rule>
		<rule name="rdfs2" />
		<rule name="rdfs3" />
		<rule name="rdfs7" />
	</triggers_rule>
</rule>

<!--
Rule rdfs7:
	xxx aaa yyy &&
	aaa rdfs:subPropertyOf bbb ==>
	xxx bbb yyy
-->
<rule name="rdfs7">
	<premise>
		<subject var="xxx"/>
		<predicate var="aaa"/>
		<object var="yyy"/>
	</premise>
	<premise>
		<subject var="aaa"/>
		<predicate uri="&rdfs;subPropertyOf"/>
		<object var="bbb"/>
	</premise>
	<consequent>
		<subject var="xxx"/>
		<predicate var="bbb"/>
		<object var="yyy"/>
	</consequent>
	<triggers_rule>
		<rule name="rdfs2" />
		<rule name="rdfs3" />
		<rule name="rdfs5" />
		<rule name="rdfs6" />
		<rule name="rdfs7" />
		<rule name="rdfs8" />
		<rule name="rdfs9" />
		<rule name="rdfs10" />
		<rule name="rdfs11" />
		<rule name="rdfs12" />
		<rule name="rdfs13" />
		<rule name="rdfsXI" />
	</triggers_rule>
</rule>

<!--
Rule rdfs8:
	xxx rdf:type rdfs:Class ==>
	xxx rdfs:subClassOf rdfs:Resource
-->	
<rule name="rdfs8">
	<premise>
		<subject var="xxx"/>
		<predicate uri="&rdf;type"/>
		<object uri="&rdfs;Class"/>
	</premise>
	<consequent>
		<subject var="xxx"/>
		<predicate uri="&rdfs;subClassOf"/>
		<object uri="&rdfs;Resource"/>
	</consequent>
	<triggers_rule>
		<rule name="rdfs2" />
		<rule name="rdfs3" />
		<rule name="rdfs7" />
		<rule name="rdfs9" />
		<rule name="rdfs11" />
	</triggers_rule>
</rule>

<!--
Rule rdfs9:
	aaa rdf:type xxx &&
	xxx rdfs:subClassOf yyy ==>
	aaa rdf:type yyy
-->	
<rule name="rdfs9">
	<premise>
		<subject var="aaa"/>
		<predicate uri="&rdf;type"/>
		<object var="xxx"/>
	</premise>
	<premise>
		<subject var="xxx"/>
		<predicate uri="&rdfs;subClassOf"/>
		<object var="yyy"/>
	</premise>
	<consequent>
		<subject var="aaa"/>
		<predicate uri="&rdf;type"/>
		<object var="yyy"/>
	</consequent>
	<triggers_rule>
		<rule name="rdfs3" />
		<rule name="rdfs6" />
		<rule name="rdfs7" />
		<rule name="rdfs8" />
		<rule name="rdfs9" />
		<rule name="rdfs10" />
		<rule name="rdfs12" />
		<rule name="rdfs13" />
	</triggers_rule>
</rule>

<!--
Rule rdfs10:
	xxx rdf:type rdfs:Class ==>
	xxx rdfs:subClassOf xxx
-->	
<rule name="rdfs10">
	<premise>
		<subject var="xxx"/>
		<predicate uri="&rdf;type"/>
		<object uri="&rdfs;Class"/>
	</premise>
	<consequent>
		<subject var="xxx"/>
		<predicate uri="&rdfs;subClassOf"/>
		<object var="xxx"/>
	</consequent>
	<triggers_rule>
		<rule name="rdfs2" />
		<rule name="rdfs3" />
		<rule name="rdfs7" />
	</triggers_rule>
</rule>

<!--
Rule rdfs11:
	xxx rdfs:subClassOf yyy &&
	yyy rdfs:subClassOf zzz ==>
	xxx rdfs:subClassOf zzz
-->	
<rule name="rdfs11">
	<premise>
		<subject var="xxx"/>
		<predicate uri="&rdfs;subClassOf"/>
		<object var="yyy"/>
	</premise>
	<premise>
		<subject var="yyy"/>
		<predicate uri="&rdfs;subClassOf"/>
		<object var="zzz"/>
	</premise>
	<consequent>
		<subject var="xxx"/>
		<predicate uri="&rdfs;subClassOf"/>
		<object var="zzz"/>
	</consequent>
	<triggers_rule>
		<rule name="rdfs7" />
		<rule name="rdfs9" />
		<rule name="rdfs11" />
	</triggers_rule>
</rule>

<!--
Rule rdfs12:
	xxx rdf:type rdfs:ContainerMembershipProperty ==>
	xxx rdfs:subPropertyOf rdfs:member
-->	
<rule name="rdfs12">
	<premise>
		<subject var="xxx"/>
		<predicate uri="&rdf;type"/>
		<object uri="&rdfs;ContainerMembershipProperty"/>
	</premise>
	<consequent>
		<subject var="xxx"/>
		<predicate uri="&rdfs;subPropertyOf"/>
		<object uri="&rdfs;member"/>
	</consequent>
	<triggers_rule>
		<rule name="rdfs2" />
		<rule name="rdfs3" />
		<rule name="rdfs4b" />
		<rule name="rdfs5" />
		<rule name="rdfs7" />
	</triggers_rule>
</rule>

<!--
Rule rdfs13:
	xxx rdf:type rdfs:Datatype ==>
	xxx rdfs:subClassOf rdfs:Literal
-->	
<rule name="rdfs13">
	<premise>
		<subject var="xxx"/>
		<predicate uri="&rdf;type"/>
		<object uri="&rdfs;Datatype"/>
	</premise>
	<consequent>
		<subject var="xxx"/>
		<predicate uri="&rdfs;subClassOf"/>
		<object uri="&rdfs;Literal"/>
	</consequent>
	<triggers_rule>
		<rule name="rdfs2" />
		<rule name="rdfs7" />
		<rule name="rdfs9" />
		<rule name="rdfs11" />
	</triggers_rule>
</rule>

<!--
Rule XI:
	xxx rdf:_* yyy ==>
	rdf:_* rdf:type rdfs:ContainerMembershipProperty
-->	
<rule name="rdfsXI">
	<premise>
		<subject var="xxx"/>
		<predicate var="id" pattern="&rdf;_*" escape="\"/>
		<object var="yyy"/>
	</premise>
	<consequent>
		<subject var="id"/>
		<predicate uri="&rdf;type"/>
		<object uri="&rdfs;ContainerMembershipProperty"/>
	</consequent>
	<triggers_rule>
		<rule name="rdfs2" />
		<rule name="rdfs3" />
		<rule name="rdfs7" />
		<rule name="rdfs9" />
		<rule name="rdfs12" />
	</triggers_rule>
</rule>
</InferenceRules>




© 2015 - 2025 Weber Informatics LLC | Privacy Policy