You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2016/05/14 14:03:27 UTC

[28/42] jena git commit: Merge commit 'refs/pull/143/head' of github.com:apache/jena

http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-core/src/main/resources/etc/owl.rules
----------------------------------------------------------------------
diff --cc jena-core/src/main/resources/etc/owl.rules
index 2eb3282,2eb3282..20e589a
--- a/jena-core/src/main/resources/etc/owl.rules
+++ b/jena-core/src/main/resources/etc/owl.rules
@@@ -1,305 -1,305 +1,305 @@@
--# Licensed to the Apache Software Foundation (ASF) under one
--# or more contributor license agreements.  See the NOTICE file
--# distributed with this work for additional information
--# regarding copyright ownership.  The ASF licenses this file
--# to you under the Apache License, Version 2.0 (the
--# "License"); you may not use this file except in compliance
--# with the License.  You may obtain a copy of the License at
--#
--#     http://www.apache.org/licenses/LICENSE-2.0
--#
--# Unless required by applicable law or agreed to in writing, software
--# distributed under the License is distributed on an "AS IS" BASIS,
--# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
--# See the License for the specific language governing permissions and
--# limitations under the License.
--
--#------------------------------------------------------------------
--# OWL rule set v0.1
--# This rule set is design to implement owl(f)lite using pure
--# forward chaining. It is sufficient to pass the working group tests
--# for this OWL subset but some of the bug fixes applied to owl-fb 
--# have may not yet have migrated back here.
--# $Id: $
--#------------------------------------------------------------------
--
--#------------------------------------------------------------------
--# RDFS Axioms
--#------------------------------------------------------------------
--
---> (rdf:type      rdfs:range rdfs:Class).
---> (rdfs:Resource  rdf:type  rdfs:Class).
---> (rdfs:Literal   rdf:type  rdfs:Class).
---> (rdf:Statement  rdf:type  rdfs:Class).
---> (rdf:nil        rdf:type  rdf:List).
---> (rdf:subject    rdf:type  rdf:Property).
---> (rdf:object     rdf:type  rdf:Property).
---> (rdf:predicate  rdf:type  rdf:Property).
---> (rdf:first      rdf:type  rdf:Property).
---> (rdf:rest       rdf:type  rdf:Property).
--        
---> (rdfs:subPropertyOf rdfs:domain rdf:Property).
---> (rdfs:subClassOf rdfs:domain rdfs:Class).
---> (rdfs:domain rdfs:domain rdf:Property).
---> (rdfs:range rdfs:domain rdf:Property).
---> (rdf:subject rdfs:domain rdf:Statement).
---> (rdf:predicate rdfs:domain rdf:Statement).
---> (rdf:object rdfs:domain rdf:Statement).
---> (rdf:first rdfs:domain rdf:List).
---> (rdf:rest rdfs:domain rdf:List).
--
---> (rdfs:subPropertyOf rdfs:range rdf:Property).
---> (rdfs:subClassOf rdfs:range rdfs:Class).
---> (rdfs:domain rdfs:range rdfs:Class).
---> (rdfs:range rdfs:range rdfs:Class).
---> (rdf:type rdfs:range rdfs:Class).
---> (rdfs:comment rdfs:range rdfs:Literal).
---> (rdfs:label rdfs:range rdfs:Literal).
---> (rdf:rest rdfs:range rdf:List).
--
---> (rdf:Alt rdfs:subClassOf rdfs:Container).
---> (rdf:Bag rdfs:subClassOf rdfs:Container).
---> (rdf:Seq rdfs:subClassOf rdfs:Container).
---> (rdfs:ContainerMembershipProperty rdfs:subClassOf rdf:Property).
--
---> (rdfs:isDefinedBy rdfs:subPropertyOf rdfs:seeAlso).
--
---> (rdf:XMLLiteral rdf:type rdfs:Datatype).
---> (rdfs:Datatype rdfs:subClassOf rdfs:Class).
--
--#------------------------------------------------------------------
--# RDFS Closure rules
--#------------------------------------------------------------------
--
--# This one could be omitted since the results are not really very interesting!
--# [rdf1and4: (?x ?p ?y) -> (?p rdf:type rdf:Property), (?x rdf:type rdfs:Resource), (?y rdf:type rdfs:Resource)]
--# [rdfs7b: (?a rdf:type rdfs:Class) -> (?a rdfs:subClassOf rdfs:Resource)] 
--
--[rdfs2:  (?x ?p ?y), (?p rdfs:domain ?c) -> (?x rdf:type ?c)] 
--[rdfs3:  (?x ?p ?y), (?p rdfs:range ?c) -> (?y rdf:type ?c)] 
--[rdfs5a: (?a rdfs:subPropertyOf ?b), (?b rdfs:subPropertyOf ?c) -> (?a rdfs:subPropertyOf ?c)] 
--[rdfs5b: (?a rdf:type rdf:Property) -> (?a rdfs:subPropertyOf ?a)] 
--[rdfs6:  (?a ?p ?b), (?p rdfs:subPropertyOf ?q) -> (?a ?q ?b)] 
--[rdfs7:  (?a rdf:type rdfs:Class) -> (?a rdfs:subClassOf ?a)]
--[rdfs8:  (?a rdfs:subClassOf ?b), (?b rdfs:subClassOf ?c) -> (?a rdfs:subClassOf ?c)] 
--[rdfs9:  (?x rdfs:subClassOf ?y), (?a rdf:type ?x) -> (?a rdf:type ?y)] 
--[rdfs10: (?x rdf:type rdfs:ContainerMembershipProperty) -> (?x rdfs:subPropertyOf rdfs:member)] 
--
--#------------------------------------------------------------------
--# RDFS iff extensions needed for OWL
--#------------------------------------------------------------------
--[rdfs2a: (?x rdfs:domain ?y), (?y rdfs:subClassOf ?z) -> (?x rdfs:domain ?z)]
--[rdfs3a: (?x rdfs:range  ?y), (?y rdfs:subClassOf ?z) -> (?x rdfs:range  ?z)]
--
--#------------------------------------------------------------------
--# OWL axioms
--#------------------------------------------------------------------
--
---> (rdf:first rdf:type owl:FunctionalProperty).
---> (rdf:rest rdf:type owl:FunctionalProperty).
--
---> (rdfs:domain owl:SymmetricProperty owl:ObjectProperty).
---> (rdfs:domain owl:TransitiveProperty owl:ObjectProperty).
---> (rdfs:domain owl:InverseFunctionalProperty owl:ObjectProperty).
--
---> (rdfs:range owl:ObjectProperty owl:Thing).
---> (rdfs:domain owl:ObjectProperty owl:Thing).
--
---> (owl:Class rdfs:subClassOf rdfs:Class).
---> (owl:Restriction rdfs:subClassOf owl:Class).
--
--# This is true in OWL-full but does lead to rather a lot of additional conclusions that
--# are not helpful for the practical test cases, explore consequences of retricting
--# closer to OWL/DL
--#-> (rdfs:Class rdfs:subClassOf owl:Class).
--
---> (owl:Thing rdf:type owl:Class).
--
--# These might need to be pre-expanded in the initial rule set
---> (owl:equivalentProperty rdf:type owl:SymmetricProperty).
---> (owl:equivalentProperty rdf:type owl:TransitiveProperty).
---> (owl:equivalentClass rdf:type owl:SymmetricProperty).
---> (owl:equivalentClass rdf:type owl:TransitiveProperty).
---> (owl:sameIndividualAs rdf:type owl:SymmetricProperty).
---> (owl:sameIndividualAs rdf:type owl:TransitiveProperty).
---> (owl:sameIndividualAs owl:equivalentProperty owl:sameAs).
---> (owl:differentFrom rdf:type owl:SymmetricProperty).
--
---> (owl:intersectionOf rdfs:domain owl:Class).
--
--#------------------------------------------------------------------
--# OWL Rules
--#------------------------------------------------------------------
--
--#------------------------------------------------------------------
--# Class rules
--# (Note: compiling intersectionOf to an n+1 rule set is done procedurally)
--#------------------------------------------------------------------
--
--# Identify restriction assertions
--
--[restriction1: (?C rdf:type owl:Restriction), (?C owl:onProperty ?P), (?C owl:someValuesFrom ?D)
--						-> (?C owl:equivalentClass some(?P, ?D))]
--		
--[restriction2: (?C rdf:type owl:Restriction), (?C owl:onProperty ?P), (?C owl:allValuesFrom ?D)
--						-> (?C owl:equivalentClass all(?P, ?D))]
--		
--[restriction3: (?C rdf:type owl:Restriction), (?C owl:onProperty ?P), (?C owl:minCardinality ?X)
--						-> (?C owl:equivalentClass min(?P, ?X))]
--		
--[restriction4: (?C rdf:type owl:Restriction), (?C owl:onProperty ?P), (?C owl:maxCardinality ?X)
--						-> (?C owl:equivalentClass max(?P, ?X))]
--		
--[restriction5: (?C rdf:type owl:Restriction), (?C owl:onProperty ?P), (?C owl:cardinality ?X)
--						-> (?C owl:equivalentClass card(?P, ?X)), 
--						   (?C rdfs:subClassOf min(?P, ?X)), 
--						   (?C rdfs:subClassOf max(?P, ?X)) ]
--		
--[restriction6: (?C rdfs:subClassOf min(?P, ?X)), (?C rdfs:subClassOf max(?P, ?X)) 
--       					-> (?C rdfs:subClassOf card(?P, ?X))]
--
--# Needed for the case where ?R is a restriction literal and so does not appear in the subject position
--# The isFunctor guard is temporary for performance, doesn't change semantics
--[restrictionSubclass1: (?D owl:equivalentClass ?R), (?X rdf:type ?R), isFunctor(?R) -> (?X rdf:type ?D)]
--[restrictionSubclass2: (?D owl:equivalentClass ?R), (?X rdf:type ?D), isFunctor(?R) -> (?X rdf:type ?R)]
--
--# Interactions between cardinalities and some/all
--
--[restrictionProc1: (?X rdf:type, max(?P, 1)), (?X, rdf:type, some(?P, ?C)) 
--						-> (?X rdf:type all(?P, ?C))]
--
--[restrictionProc2: (?P rdf:type owl:FunctionalProperty), (?X, rdf:type, some(?P, ?C)) 
--						-> (?X rdf:type all(?P, ?C))]
--
--[restrictionProc4: (?X rdf:type all(?P, ?C)), (?X ?P ?Y), notEqual(?P, rdf:type) 
--						-> (?X rdf:type some(?P, ?C)), (?Y rdf:type ?C)]
--
--[restrictionProc5: (?P rdfs:range ?C), (?X ?P ?W), notFunctor(?C) -> (?X rdf:type some(?P, ?C))]
--
--[restrictionProc6: (?P rdfs:range ?C), (?D owl:equivalentClass all(?P, ?C)) 
--						-> (owl:Thing rdfs:subClassOf ?D)]
--
--[restrictionProc7: (?A rdf:type max(?P, 1)), (?A ?P ?B), (?A ?P ?C) -> (?B owl:sameIndividualAs ?C)]
--
--[restrictionProc8: (?X rdf:type min(?P, 1)), (?X rdf:type max(?P, 0)) -> (?X rdf:type owl:Nothing)]
--
--[restrictionProc9: (?X ?P ?W), (?X rdf:type max(?P, 0)) -> (?X rdf:type owl:Nothing)]
--
--[restrictionProc10: (?X rdf:type some(?P, ?C)), noValue(?X, ?P), notEqual(?P, owl:sameIndividualAs),
--					notEqual(?P, rdfs:subClassOf), notEqual(?P, rdfs:subPropertyOf), 
--					notEqual(?P, owl:equivalentProperty), notEqual(?P, owl:equivalentClass), 
--					notEqual(?C, owl:Class), notEqual(?C, rdfs:Class), makeTemp(?T)
--   	  						-> (?X ?P ?T), (?T rdf:type ?C)]
--
--# Best done backwards!
--[restrictionProc11: (?P rdf:type owl:FunctionalProperty), (?X rdf:type owl:Thing) 
--						-> (?X rdf:type max(?P, 1))]
--		
--[restrictionProc12: (?P rdfs:range ?C), (?D rdf:type owl:Class), notFunctor(?C)  
--						-> (?D rdfs:subClassOf all(?P, ?C)) ]
--		
--[restrictionProc13: (owl:Thing rdfs:subClassOf all(?P, ?C)) 
--						-> (?P rdfs:range ?C), (?P rdf:type owl:ObjectProperty)]
--
--[card3: (?X ?P ?V), (?V rdf:type ?C), notFunctor(?C) -> (?X rdf:type some(?P, ?C))]
--
--# Create prototypical instances for each class and infer any subclass relations
--# This is better done as part of an explicit taxonomy building phase.
--
--[prototype1: (?c rdf:type owl:Class), noValue(?c, rb:prototype), makeTemp(?t)
--  	    				-> (?c rb:prototype ?t), (?t rdf:type ?c)]
--    
--[prototype2: (?c rb:prototype ?p), (?p rdf:type ?d), notEqual(?c, ?d) 
--						-> (?c rdfs:subClassOf ?d)]
--
--#------------------------------------------------------------------
--# Disjointness and equivalence rules
--#------------------------------------------------------------------
--
--[distinct1: (?C owl:disjointWith ?D), (?X rdf:type ?C), (?Y rdf:type ?D) 
--						-> (?X owl:differentFrom ?Y) ]
--
--# This one is best done backwards or with a dedicated equality reasoner
--# Hacked for now just for completeness
--
--[distinct2: (?W owl:distinctMembers ?L) -> assertDisjointPairs(?L) ]
--
--# To be improved when resolve how to record contradictions
--
--[conflict1: (?X owl:sameIndividualAs ?Y), (?X owl:differentFrom ?Y) 
--						-> contradiction('same/different', ?X, ?Y) ]
--		
--[conflict2: (?X rdf:type ?C), (?X rdf:type ?D), (?C owl:disjointWith ?D) 
--						-> contradiction('disjoint classes overlap', ?C, ?D, ?X) ]
--
--#------------------------------------------------------------------
--# Property rules
--#------------------------------------------------------------------
--
--# equivalentProperty 
--
--[equivalentProperty1: (?P owl:equivalentProperty ?Q) 
--						-> (?P rdfs:subPropertyOf ?Q), (?Q rdfs:subPropertyOf ?P) ]
--						
--[equivalentProperty2: (?P rdfs:subPropertyOf ?Q), (?Q rdfs:subPropertyOf ?P) 
--						-> (?P owl:equivalentProperty ?Q) ]
--						
--[equivalentProperty3: (?P owl:sameAs ?Q), (?P rdf:type rdf:Property), (?Q rdf:type rdf:Property) 
--						-> (?P owl:equivalentProperty ?Q) ]
--
--# equivalentClass
--[equivalentClass1: (?P owl:equivalentClass ?Q) 
--						-> (?P rdfs:subClassOf ?Q), (?Q rdfs:subClassOf ?P) ]
--						
--[equivalentClass2: (?P rdfs:subClassOf ?Q), (?Q rdfs:subClassOf ?P) 
--						-> (?P owl:equivalentClass ?Q) ]
--						
--[equivalentClass3: (?P owl:sameAs ?Q), (?P rdf:type rdfs:Class), (?Q rdf:type rdfs:Class) 
--						-> (?P owl:equivalentClass ?Q) ]
--
--# inverseOf
--[inverseOf1: (?P owl:inverseOf ?Q) -> (?Q owl:inverseOf ?P) ]
--
--[inverseOf2: (?P owl:inverseOf ?Q), (?X ?P ?Y) -> (?Y ?Q ?X) ]
--
--[inverseOf3: (?P owl:inverseOf ?Q), (?P rdf:type owl:FunctionalProperty) 
--						-> (?Q rdf:type owl:InverseFunctionalProperty) ]
--		
--[inverseOf4: (?P owl:inverseOf ?Q), (?P rdf:type owl:InverseFunctionalProperty) 
--						-> (?Q rdf:type owl:FunctionalProperty) ]
--
--# symmetric
--[symmetricProperty1: (?P rdf:type owl:SymmetricProperty), (?X ?P ?Y) -> (?Y ?P ?X)]
--
--
--# Transitive
--[transitivePropery1: (?P rdf:type owl:TransitiveProperty), (?A ?P ?B), (?B ?P ?C) -> (?A ?P ?C)]
--
--# sameIndividualAs
--[sameIndividualAs1: (?P rdf:type owl:FunctionalProperty), (?A ?P ?B), (?A ?P ?C) 
--                    -> (?B owl:sameIndividualAs ?C) ]
--                    
--[sameIndividualAs2: (?P rdf:type owl:InverseFunctionalProperty), (?A ?P ?B), (?C ?P ?B) 
--                    -> (?A owl:sameIndividualAs ?C) ]
--                    
--[sameIndividualAs3: (?X owl:sameAs ?Y), (?X rdf:type owl:Thing), (?Y rdf:type owl:Thing) 
--                    -> (?X owl:sameIndividualAs ?Y) ]
--                    
--
--[sameIndividualAs4: (?X owl:sameIndividualAs ?Y), (?X ?P ?V) -> (?Y ?P ?V) ]
--
--[sameIndividualAs5: (?X owl:sameIndividualAs ?Y), (?V ?P ?X) -> (?V ?P ?Y) ]
--
--[sameIndividualAs6: (?X owl:sameIndividualAs ?Y) -> (?X rdf:type owl:Thing) ]
--
--# Don't yet handle reflexivity of sameIndividualAS - special case reasoner
--
--#------------------------------------------------------------------
--# if-only parts of additional constructs
--#------------------------------------------------------------------
--
--# hasValue
--[hasValue1: (?c rdf:type owl:Restriction), (?c owl:onProperty ?p), (?c owl:hasValue ?v), 
--		(?x rdf:type ?c) -> (?x ?p ?v) ]
--
--
++# Licensed to the Apache Software Foundation (ASF) under one
++# or more contributor license agreements.  See the NOTICE file
++# distributed with this work for additional information
++# regarding copyright ownership.  The ASF licenses this file
++# to you under the Apache License, Version 2.0 (the
++# "License"); you may not use this file except in compliance
++# with the License.  You may obtain a copy of the License at
++#
++#     http://www.apache.org/licenses/LICENSE-2.0
++#
++# Unless required by applicable law or agreed to in writing, software
++# distributed under the License is distributed on an "AS IS" BASIS,
++# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++# See the License for the specific language governing permissions and
++# limitations under the License.
++
++#------------------------------------------------------------------
++# OWL rule set v0.1
++# This rule set is design to implement owl(f)lite using pure
++# forward chaining. It is sufficient to pass the working group tests
++# for this OWL subset but some of the bug fixes applied to owl-fb 
++# have may not yet have migrated back here.
++# $Id: $
++#------------------------------------------------------------------
++
++#------------------------------------------------------------------
++# RDFS Axioms
++#------------------------------------------------------------------
++
++-> (rdf:type      rdfs:range rdfs:Class).
++-> (rdfs:Resource  rdf:type  rdfs:Class).
++-> (rdfs:Literal   rdf:type  rdfs:Class).
++-> (rdf:Statement  rdf:type  rdfs:Class).
++-> (rdf:nil        rdf:type  rdf:List).
++-> (rdf:subject    rdf:type  rdf:Property).
++-> (rdf:object     rdf:type  rdf:Property).
++-> (rdf:predicate  rdf:type  rdf:Property).
++-> (rdf:first      rdf:type  rdf:Property).
++-> (rdf:rest       rdf:type  rdf:Property).
++        
++-> (rdfs:subPropertyOf rdfs:domain rdf:Property).
++-> (rdfs:subClassOf rdfs:domain rdfs:Class).
++-> (rdfs:domain rdfs:domain rdf:Property).
++-> (rdfs:range rdfs:domain rdf:Property).
++-> (rdf:subject rdfs:domain rdf:Statement).
++-> (rdf:predicate rdfs:domain rdf:Statement).
++-> (rdf:object rdfs:domain rdf:Statement).
++-> (rdf:first rdfs:domain rdf:List).
++-> (rdf:rest rdfs:domain rdf:List).
++
++-> (rdfs:subPropertyOf rdfs:range rdf:Property).
++-> (rdfs:subClassOf rdfs:range rdfs:Class).
++-> (rdfs:domain rdfs:range rdfs:Class).
++-> (rdfs:range rdfs:range rdfs:Class).
++-> (rdf:type rdfs:range rdfs:Class).
++-> (rdfs:comment rdfs:range rdfs:Literal).
++-> (rdfs:label rdfs:range rdfs:Literal).
++-> (rdf:rest rdfs:range rdf:List).
++
++-> (rdf:Alt rdfs:subClassOf rdfs:Container).
++-> (rdf:Bag rdfs:subClassOf rdfs:Container).
++-> (rdf:Seq rdfs:subClassOf rdfs:Container).
++-> (rdfs:ContainerMembershipProperty rdfs:subClassOf rdf:Property).
++
++-> (rdfs:isDefinedBy rdfs:subPropertyOf rdfs:seeAlso).
++
++-> (rdf:XMLLiteral rdf:type rdfs:Datatype).
++-> (rdfs:Datatype rdfs:subClassOf rdfs:Class).
++
++#------------------------------------------------------------------
++# RDFS Closure rules
++#------------------------------------------------------------------
++
++# This one could be omitted since the results are not really very interesting!
++# [rdf1and4: (?x ?p ?y) -> (?p rdf:type rdf:Property), (?x rdf:type rdfs:Resource), (?y rdf:type rdfs:Resource)]
++# [rdfs7b: (?a rdf:type rdfs:Class) -> (?a rdfs:subClassOf rdfs:Resource)] 
++
++[rdfs2:  (?x ?p ?y), (?p rdfs:domain ?c) -> (?x rdf:type ?c)] 
++[rdfs3:  (?x ?p ?y), (?p rdfs:range ?c) -> (?y rdf:type ?c)] 
++[rdfs5a: (?a rdfs:subPropertyOf ?b), (?b rdfs:subPropertyOf ?c) -> (?a rdfs:subPropertyOf ?c)] 
++[rdfs5b: (?a rdf:type rdf:Property) -> (?a rdfs:subPropertyOf ?a)] 
++[rdfs6:  (?a ?p ?b), (?p rdfs:subPropertyOf ?q) -> (?a ?q ?b)] 
++[rdfs7:  (?a rdf:type rdfs:Class) -> (?a rdfs:subClassOf ?a)]
++[rdfs8:  (?a rdfs:subClassOf ?b), (?b rdfs:subClassOf ?c) -> (?a rdfs:subClassOf ?c)] 
++[rdfs9:  (?x rdfs:subClassOf ?y), (?a rdf:type ?x) -> (?a rdf:type ?y)] 
++[rdfs10: (?x rdf:type rdfs:ContainerMembershipProperty) -> (?x rdfs:subPropertyOf rdfs:member)] 
++
++#------------------------------------------------------------------
++# RDFS iff extensions needed for OWL
++#------------------------------------------------------------------
++[rdfs2a: (?x rdfs:domain ?y), (?y rdfs:subClassOf ?z) -> (?x rdfs:domain ?z)]
++[rdfs3a: (?x rdfs:range  ?y), (?y rdfs:subClassOf ?z) -> (?x rdfs:range  ?z)]
++
++#------------------------------------------------------------------
++# OWL axioms
++#------------------------------------------------------------------
++
++-> (rdf:first rdf:type owl:FunctionalProperty).
++-> (rdf:rest rdf:type owl:FunctionalProperty).
++
++-> (rdfs:domain owl:SymmetricProperty owl:ObjectProperty).
++-> (rdfs:domain owl:TransitiveProperty owl:ObjectProperty).
++-> (rdfs:domain owl:InverseFunctionalProperty owl:ObjectProperty).
++
++-> (rdfs:range owl:ObjectProperty owl:Thing).
++-> (rdfs:domain owl:ObjectProperty owl:Thing).
++
++-> (owl:Class rdfs:subClassOf rdfs:Class).
++-> (owl:Restriction rdfs:subClassOf owl:Class).
++
++# This is true in OWL-full but does lead to rather a lot of additional conclusions that
++# are not helpful for the practical test cases, explore consequences of retricting
++# closer to OWL/DL
++#-> (rdfs:Class rdfs:subClassOf owl:Class).
++
++-> (owl:Thing rdf:type owl:Class).
++
++# These might need to be pre-expanded in the initial rule set
++-> (owl:equivalentProperty rdf:type owl:SymmetricProperty).
++-> (owl:equivalentProperty rdf:type owl:TransitiveProperty).
++-> (owl:equivalentClass rdf:type owl:SymmetricProperty).
++-> (owl:equivalentClass rdf:type owl:TransitiveProperty).
++-> (owl:sameIndividualAs rdf:type owl:SymmetricProperty).
++-> (owl:sameIndividualAs rdf:type owl:TransitiveProperty).
++-> (owl:sameIndividualAs owl:equivalentProperty owl:sameAs).
++-> (owl:differentFrom rdf:type owl:SymmetricProperty).
++
++-> (owl:intersectionOf rdfs:domain owl:Class).
++
++#------------------------------------------------------------------
++# OWL Rules
++#------------------------------------------------------------------
++
++#------------------------------------------------------------------
++# Class rules
++# (Note: compiling intersectionOf to an n+1 rule set is done procedurally)
++#------------------------------------------------------------------
++
++# Identify restriction assertions
++
++[restriction1: (?C rdf:type owl:Restriction), (?C owl:onProperty ?P), (?C owl:someValuesFrom ?D)
++						-> (?C owl:equivalentClass some(?P, ?D))]
++		
++[restriction2: (?C rdf:type owl:Restriction), (?C owl:onProperty ?P), (?C owl:allValuesFrom ?D)
++						-> (?C owl:equivalentClass all(?P, ?D))]
++		
++[restriction3: (?C rdf:type owl:Restriction), (?C owl:onProperty ?P), (?C owl:minCardinality ?X)
++						-> (?C owl:equivalentClass min(?P, ?X))]
++		
++[restriction4: (?C rdf:type owl:Restriction), (?C owl:onProperty ?P), (?C owl:maxCardinality ?X)
++						-> (?C owl:equivalentClass max(?P, ?X))]
++		
++[restriction5: (?C rdf:type owl:Restriction), (?C owl:onProperty ?P), (?C owl:cardinality ?X)
++						-> (?C owl:equivalentClass card(?P, ?X)), 
++						   (?C rdfs:subClassOf min(?P, ?X)), 
++						   (?C rdfs:subClassOf max(?P, ?X)) ]
++		
++[restriction6: (?C rdfs:subClassOf min(?P, ?X)), (?C rdfs:subClassOf max(?P, ?X)) 
++       					-> (?C rdfs:subClassOf card(?P, ?X))]
++
++# Needed for the case where ?R is a restriction literal and so does not appear in the subject position
++# The isFunctor guard is temporary for performance, doesn't change semantics
++[restrictionSubclass1: (?D owl:equivalentClass ?R), (?X rdf:type ?R), isFunctor(?R) -> (?X rdf:type ?D)]
++[restrictionSubclass2: (?D owl:equivalentClass ?R), (?X rdf:type ?D), isFunctor(?R) -> (?X rdf:type ?R)]
++
++# Interactions between cardinalities and some/all
++
++[restrictionProc1: (?X rdf:type, max(?P, 1)), (?X, rdf:type, some(?P, ?C)) 
++						-> (?X rdf:type all(?P, ?C))]
++
++[restrictionProc2: (?P rdf:type owl:FunctionalProperty), (?X, rdf:type, some(?P, ?C)) 
++						-> (?X rdf:type all(?P, ?C))]
++
++[restrictionProc4: (?X rdf:type all(?P, ?C)), (?X ?P ?Y), notEqual(?P, rdf:type) 
++						-> (?X rdf:type some(?P, ?C)), (?Y rdf:type ?C)]
++
++[restrictionProc5: (?P rdfs:range ?C), (?X ?P ?W), notFunctor(?C) -> (?X rdf:type some(?P, ?C))]
++
++[restrictionProc6: (?P rdfs:range ?C), (?D owl:equivalentClass all(?P, ?C)) 
++						-> (owl:Thing rdfs:subClassOf ?D)]
++
++[restrictionProc7: (?A rdf:type max(?P, 1)), (?A ?P ?B), (?A ?P ?C) -> (?B owl:sameIndividualAs ?C)]
++
++[restrictionProc8: (?X rdf:type min(?P, 1)), (?X rdf:type max(?P, 0)) -> (?X rdf:type owl:Nothing)]
++
++[restrictionProc9: (?X ?P ?W), (?X rdf:type max(?P, 0)) -> (?X rdf:type owl:Nothing)]
++
++[restrictionProc10: (?X rdf:type some(?P, ?C)), noValue(?X, ?P), notEqual(?P, owl:sameIndividualAs),
++					notEqual(?P, rdfs:subClassOf), notEqual(?P, rdfs:subPropertyOf), 
++					notEqual(?P, owl:equivalentProperty), notEqual(?P, owl:equivalentClass), 
++					notEqual(?C, owl:Class), notEqual(?C, rdfs:Class), makeTemp(?T)
++   	  						-> (?X ?P ?T), (?T rdf:type ?C)]
++
++# Best done backwards!
++[restrictionProc11: (?P rdf:type owl:FunctionalProperty), (?X rdf:type owl:Thing) 
++						-> (?X rdf:type max(?P, 1))]
++		
++[restrictionProc12: (?P rdfs:range ?C), (?D rdf:type owl:Class), notFunctor(?C)  
++						-> (?D rdfs:subClassOf all(?P, ?C)) ]
++		
++[restrictionProc13: (owl:Thing rdfs:subClassOf all(?P, ?C)) 
++						-> (?P rdfs:range ?C), (?P rdf:type owl:ObjectProperty)]
++
++[card3: (?X ?P ?V), (?V rdf:type ?C), notFunctor(?C) -> (?X rdf:type some(?P, ?C))]
++
++# Create prototypical instances for each class and infer any subclass relations
++# This is better done as part of an explicit taxonomy building phase.
++
++[prototype1: (?c rdf:type owl:Class), noValue(?c, rb:prototype), makeTemp(?t)
++  	    				-> (?c rb:prototype ?t), (?t rdf:type ?c)]
++    
++[prototype2: (?c rb:prototype ?p), (?p rdf:type ?d), notEqual(?c, ?d) 
++						-> (?c rdfs:subClassOf ?d)]
++
++#------------------------------------------------------------------
++# Disjointness and equivalence rules
++#------------------------------------------------------------------
++
++[distinct1: (?C owl:disjointWith ?D), (?X rdf:type ?C), (?Y rdf:type ?D) 
++						-> (?X owl:differentFrom ?Y) ]
++
++# This one is best done backwards or with a dedicated equality reasoner
++# Hacked for now just for completeness
++
++[distinct2: (?W owl:distinctMembers ?L) -> assertDisjointPairs(?L) ]
++
++# To be improved when resolve how to record contradictions
++
++[conflict1: (?X owl:sameIndividualAs ?Y), (?X owl:differentFrom ?Y) 
++						-> contradiction('same/different', ?X, ?Y) ]
++		
++[conflict2: (?X rdf:type ?C), (?X rdf:type ?D), (?C owl:disjointWith ?D) 
++						-> contradiction('disjoint classes overlap', ?C, ?D, ?X) ]
++
++#------------------------------------------------------------------
++# Property rules
++#------------------------------------------------------------------
++
++# equivalentProperty 
++
++[equivalentProperty1: (?P owl:equivalentProperty ?Q) 
++						-> (?P rdfs:subPropertyOf ?Q), (?Q rdfs:subPropertyOf ?P) ]
++						
++[equivalentProperty2: (?P rdfs:subPropertyOf ?Q), (?Q rdfs:subPropertyOf ?P) 
++						-> (?P owl:equivalentProperty ?Q) ]
++						
++[equivalentProperty3: (?P owl:sameAs ?Q), (?P rdf:type rdf:Property), (?Q rdf:type rdf:Property) 
++						-> (?P owl:equivalentProperty ?Q) ]
++
++# equivalentClass
++[equivalentClass1: (?P owl:equivalentClass ?Q) 
++						-> (?P rdfs:subClassOf ?Q), (?Q rdfs:subClassOf ?P) ]
++						
++[equivalentClass2: (?P rdfs:subClassOf ?Q), (?Q rdfs:subClassOf ?P) 
++						-> (?P owl:equivalentClass ?Q) ]
++						
++[equivalentClass3: (?P owl:sameAs ?Q), (?P rdf:type rdfs:Class), (?Q rdf:type rdfs:Class) 
++						-> (?P owl:equivalentClass ?Q) ]
++
++# inverseOf
++[inverseOf1: (?P owl:inverseOf ?Q) -> (?Q owl:inverseOf ?P) ]
++
++[inverseOf2: (?P owl:inverseOf ?Q), (?X ?P ?Y) -> (?Y ?Q ?X) ]
++
++[inverseOf3: (?P owl:inverseOf ?Q), (?P rdf:type owl:FunctionalProperty) 
++						-> (?Q rdf:type owl:InverseFunctionalProperty) ]
++		
++[inverseOf4: (?P owl:inverseOf ?Q), (?P rdf:type owl:InverseFunctionalProperty) 
++						-> (?Q rdf:type owl:FunctionalProperty) ]
++
++# symmetric
++[symmetricProperty1: (?P rdf:type owl:SymmetricProperty), (?X ?P ?Y) -> (?Y ?P ?X)]
++
++
++# Transitive
++[transitivePropery1: (?P rdf:type owl:TransitiveProperty), (?A ?P ?B), (?B ?P ?C) -> (?A ?P ?C)]
++
++# sameIndividualAs
++[sameIndividualAs1: (?P rdf:type owl:FunctionalProperty), (?A ?P ?B), (?A ?P ?C) 
++                    -> (?B owl:sameIndividualAs ?C) ]
++                    
++[sameIndividualAs2: (?P rdf:type owl:InverseFunctionalProperty), (?A ?P ?B), (?C ?P ?B) 
++                    -> (?A owl:sameIndividualAs ?C) ]
++                    
++[sameIndividualAs3: (?X owl:sameAs ?Y), (?X rdf:type owl:Thing), (?Y rdf:type owl:Thing) 
++                    -> (?X owl:sameIndividualAs ?Y) ]
++                    
++
++[sameIndividualAs4: (?X owl:sameIndividualAs ?Y), (?X ?P ?V) -> (?Y ?P ?V) ]
++
++[sameIndividualAs5: (?X owl:sameIndividualAs ?Y), (?V ?P ?X) -> (?V ?P ?Y) ]
++
++[sameIndividualAs6: (?X owl:sameIndividualAs ?Y) -> (?X rdf:type owl:Thing) ]
++
++# Don't yet handle reflexivity of sameIndividualAS - special case reasoner
++
++#------------------------------------------------------------------
++# if-only parts of additional constructs
++#------------------------------------------------------------------
++
++# hasValue
++[hasValue1: (?c rdf:type owl:Restriction), (?c owl:onProperty ?p), (?c owl:hasValue ?v), 
++		(?x rdf:type ?c) -> (?x ?p ?v) ]
++
++

http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-core/src/main/resources/etc/rdfs.rules
----------------------------------------------------------------------
diff --cc jena-core/src/main/resources/etc/rdfs.rules
index 408e49e,408e49e..c26c615
--- a/jena-core/src/main/resources/etc/rdfs.rules
+++ b/jena-core/src/main/resources/etc/rdfs.rules
@@@ -1,83 -1,83 +1,83 @@@
--# Licensed to the Apache Software Foundation (ASF) under one
--# or more contributor license agreements.  See the NOTICE file
--# distributed with this work for additional information
--# regarding copyright ownership.  The ASF licenses this file
--# to you under the Apache License, Version 2.0 (the
--# "License"); you may not use this file except in compliance
--# with the License.  You may obtain a copy of the License at
--#
--#     http://www.apache.org/licenses/LICENSE-2.0
--#
--# Unless required by applicable law or agreed to in writing, software
--# distributed under the License is distributed on an "AS IS" BASIS,
--# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
--# See the License for the specific language governing permissions and
--# limitations under the License.
--
--#------------------------------------------------------------------
--# RDFS rule set v0.1.
--# This is a direct implementation of the RDFS closure rules.
--# $Id: $
--#------------------------------------------------------------------
--
--#------------------------------------------------------------------
--# RDFS Axioms
--#------------------------------------------------------------------
--
---> (rdf:type      rdfs:range rdfs:Class).
---> (rdfs:Resource  rdf:type  rdfs:Class).
---> (rdfs:Literal   rdf:type  rdfs:Class).
---> (rdf:Statement  rdf:type  rdfs:Class).
---> (rdf:nil        rdf:type  rdf:List).
---> (rdf:subject    rdf:type  rdf:Property).
---> (rdf:object     rdf:type  rdf:Property).
---> (rdf:predicate  rdf:type  rdf:Property).
---> (rdf:first      rdf:type  rdf:Property).
---> (rdf:rest       rdf:type  rdf:Property).
--        
---> (rdfs:subPropertyOf rdfs:domain rdf:Property).
---> (rdfs:subClassOf rdfs:domain rdfs:Class).
---> (rdfs:domain rdfs:domain rdf:Property).
---> (rdfs:range rdfs:domain rdf:Property).
---> (rdf:subject rdfs:domain rdf:Statement).
---> (rdf:predicate rdfs:domain rdf:Statement).
---> (rdf:object rdfs:domain rdf:Statement).
---> (rdf:first rdfs:domain rdf:List).
---> (rdf:rest rdfs:domain rdf:List).
--
---> (rdfs:subPropertyOf rdfs:range rdf:Property).
---> (rdfs:subClassOf rdfs:range rdfs:Class).
---> (rdfs:domain rdfs:range rdfs:Class).
---> (rdfs:range rdfs:range rdfs:Class).
---> (rdf:type rdfs:range rdfs:Class).
---> (rdfs:comment rdfs:range rdfs:Literal).
---> (rdfs:label rdfs:range rdfs:Literal).
---> (rdf:rest rdfs:range rdf:List).
--
---> (rdf:Alt rdfs:subClassOf rdfs:Container).
---> (rdf:Bag rdfs:subClassOf rdfs:Container).
---> (rdf:Seq rdfs:subClassOf rdfs:Container).
---> (rdfs:ContainerMembershipProperty rdfs:subClassOf rdf:Property).
--
---> (rdfs:isDefinedBy rdfs:subPropertyOf rdfs:seeAlso).
--
---> (rdf:XMLLiteral rdf:type rdfs:Datatype).
---> (rdfs:Datatype rdfs:subClassOf rdfs:Class).
--
--#------------------------------------------------------------------
--# RDFS Closure rules
--#------------------------------------------------------------------
--
--# This one could be omitted since the results are not really very interesting!
--[rdf1and4: (?x ?p ?y) -> (?p rdf:type rdf:Property), (?x rdf:type rdfs:Resource), (?y rdf:type rdfs:Resource)]
--[rdfs7b: (?a rdf:type rdfs:Class) -> (?a rdfs:subClassOf rdfs:Resource)] 
--
--[rdfs2:  (?x ?p ?y), (?p rdfs:domain ?c) -> (?x rdf:type ?c)] 
--[rdfs3:  (?x ?p ?y), (?p rdfs:range ?c) -> (?y rdf:type ?c)] 
--[rdfs5a: (?a rdfs:subPropertyOf ?b), (?b rdfs:subPropertyOf ?c) -> (?a rdfs:subPropertyOf ?c)] 
--[rdfs5b: (?a rdf:type rdf:Property) -> (?a rdfs:subPropertyOf ?a)] 
--[rdfs6:  (?a ?p ?b), (?p rdfs:subPropertyOf ?q) -> (?a ?q ?b)] 
--[rdfs7:  (?a rdf:type rdfs:Class) -> (?a rdfs:subClassOf ?a)]
--[rdfs8:  (?a rdfs:subClassOf ?b), (?b rdfs:subClassOf ?c) -> (?a rdfs:subClassOf ?c)] 
--[rdfs9:  (?x rdfs:subClassOf ?y), (?a rdf:type ?x) -> (?a rdf:type ?y)] 
--[rdfs10: (?x rdf:type rdfs:ContainerMembershipProperty) -> (?x rdfs:subPropertyOf rdfs:member)] 
++# Licensed to the Apache Software Foundation (ASF) under one
++# or more contributor license agreements.  See the NOTICE file
++# distributed with this work for additional information
++# regarding copyright ownership.  The ASF licenses this file
++# to you under the Apache License, Version 2.0 (the
++# "License"); you may not use this file except in compliance
++# with the License.  You may obtain a copy of the License at
++#
++#     http://www.apache.org/licenses/LICENSE-2.0
++#
++# Unless required by applicable law or agreed to in writing, software
++# distributed under the License is distributed on an "AS IS" BASIS,
++# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++# See the License for the specific language governing permissions and
++# limitations under the License.
++
++#------------------------------------------------------------------
++# RDFS rule set v0.1.
++# This is a direct implementation of the RDFS closure rules.
++# $Id: $
++#------------------------------------------------------------------
++
++#------------------------------------------------------------------
++# RDFS Axioms
++#------------------------------------------------------------------
++
++-> (rdf:type      rdfs:range rdfs:Class).
++-> (rdfs:Resource  rdf:type  rdfs:Class).
++-> (rdfs:Literal   rdf:type  rdfs:Class).
++-> (rdf:Statement  rdf:type  rdfs:Class).
++-> (rdf:nil        rdf:type  rdf:List).
++-> (rdf:subject    rdf:type  rdf:Property).
++-> (rdf:object     rdf:type  rdf:Property).
++-> (rdf:predicate  rdf:type  rdf:Property).
++-> (rdf:first      rdf:type  rdf:Property).
++-> (rdf:rest       rdf:type  rdf:Property).
++        
++-> (rdfs:subPropertyOf rdfs:domain rdf:Property).
++-> (rdfs:subClassOf rdfs:domain rdfs:Class).
++-> (rdfs:domain rdfs:domain rdf:Property).
++-> (rdfs:range rdfs:domain rdf:Property).
++-> (rdf:subject rdfs:domain rdf:Statement).
++-> (rdf:predicate rdfs:domain rdf:Statement).
++-> (rdf:object rdfs:domain rdf:Statement).
++-> (rdf:first rdfs:domain rdf:List).
++-> (rdf:rest rdfs:domain rdf:List).
++
++-> (rdfs:subPropertyOf rdfs:range rdf:Property).
++-> (rdfs:subClassOf rdfs:range rdfs:Class).
++-> (rdfs:domain rdfs:range rdfs:Class).
++-> (rdfs:range rdfs:range rdfs:Class).
++-> (rdf:type rdfs:range rdfs:Class).
++-> (rdfs:comment rdfs:range rdfs:Literal).
++-> (rdfs:label rdfs:range rdfs:Literal).
++-> (rdf:rest rdfs:range rdf:List).
++
++-> (rdf:Alt rdfs:subClassOf rdfs:Container).
++-> (rdf:Bag rdfs:subClassOf rdfs:Container).
++-> (rdf:Seq rdfs:subClassOf rdfs:Container).
++-> (rdfs:ContainerMembershipProperty rdfs:subClassOf rdf:Property).
++
++-> (rdfs:isDefinedBy rdfs:subPropertyOf rdfs:seeAlso).
++
++-> (rdf:XMLLiteral rdf:type rdfs:Datatype).
++-> (rdfs:Datatype rdfs:subClassOf rdfs:Class).
++
++#------------------------------------------------------------------
++# RDFS Closure rules
++#------------------------------------------------------------------
++
++# This one could be omitted since the results are not really very interesting!
++[rdf1and4: (?x ?p ?y) -> (?p rdf:type rdf:Property), (?x rdf:type rdfs:Resource), (?y rdf:type rdfs:Resource)]
++[rdfs7b: (?a rdf:type rdfs:Class) -> (?a rdfs:subClassOf rdfs:Resource)] 
++
++[rdfs2:  (?x ?p ?y), (?p rdfs:domain ?c) -> (?x rdf:type ?c)] 
++[rdfs3:  (?x ?p ?y), (?p rdfs:range ?c) -> (?y rdf:type ?c)] 
++[rdfs5a: (?a rdfs:subPropertyOf ?b), (?b rdfs:subPropertyOf ?c) -> (?a rdfs:subPropertyOf ?c)] 
++[rdfs5b: (?a rdf:type rdf:Property) -> (?a rdfs:subPropertyOf ?a)] 
++[rdfs6:  (?a ?p ?b), (?p rdfs:subPropertyOf ?q) -> (?a ?q ?b)] 
++[rdfs7:  (?a rdf:type rdfs:Class) -> (?a rdfs:subClassOf ?a)]
++[rdfs8:  (?a rdfs:subClassOf ?b), (?b rdfs:subClassOf ?c) -> (?a rdfs:subClassOf ?c)] 
++[rdfs9:  (?x rdfs:subClassOf ?y), (?a rdf:type ?x) -> (?a rdf:type ?y)] 
++[rdfs10: (?x rdf:type rdfs:ContainerMembershipProperty) -> (?x rdfs:subPropertyOf rdfs:member)] 

http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-core/src/test/resources/ont-policy-test.rdf
----------------------------------------------------------------------
diff --cc jena-core/src/test/resources/ont-policy-test.rdf
index dfa320a,dfa320a..1102137
--- a/jena-core/src/test/resources/ont-policy-test.rdf
+++ b/jena-core/src/test/resources/ont-policy-test.rdf
@@@ -1,58 -1,58 +1,58 @@@
--<?xml version='1.0'?>
--
--<!DOCTYPE rdf:RDF [
--    <!ENTITY jena    'http://jena.hpl.hp.com/schemas/'>
--
--    <!ENTITY rdf     'http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
--    <!ENTITY rdfs    'http://www.w3.org/2000/01/rdf-schema#'>
--    <!ENTITY xsd     'http://www.w3.org/2001/XMLSchema#'>
--    <!ENTITY base    '&jena;2003/03/ont-manager'>
--    <!ENTITY ont     '&base;#'>
--]>
--
--<rdf:RDF
--  xmlns:rdf ="&rdf;"
--  xmlns:rdfs="&rdfs;"
--  xmlns     ="&ont;"
--  xml:base  ="&base;"
-->
--
--<!--
--    An augmented set of mappings for locally cached ontologies, used in the test scripts
--
--    Author: Ian Dickinson, mailto:ian_dickinson@users.sourceforge.net
--    CVS:    $Id: ont-policy.rdf,v 1.5 2003/11/06 17:37:24 ian_dickinson Exp $
---->
--
--<DocumentManagerPolicy>
--    <!-- policy for controlling the document manager's behaviour -->
--    <processImports rdf:datatype="&xsd;boolean">true</processImports>
--    <cacheModels    rdf:datatype="&xsd;boolean">true</cacheModels>
--</DocumentManagerPolicy>
--
--
--<OntologySpec>
--    <!-- local version of the OWL language ontology (in OWL) -->
--    <publicURI rdf:resource="http://www.w3.org/2002/07/owl" />
--    <altURL    rdf:resource="file:vocabularies/owl.owl" />
--    <language  rdf:resource="http://www.w3.org/2002/07/owl#" />
--    <prefix    rdf:datatype="&xsd;string">owl</prefix>
--</OntologySpec>
--
--<OntologySpec>
--    <!-- local version of the RDFS vocabulary -->
--    <publicURI rdf:resource="http://www.w3.org/2000/01/rdf-schema" />
--    <altURL    rdf:resource="file:vocabularies/rdf-schema.rdf" />
--    <language  rdf:resource="http://www.w3.org/2000/01/rdf-schema#" />
--    <prefix    rdf:datatype="&xsd;string">rdfs</prefix>
--</OntologySpec>
--
--<OntologySpec>
--    <publicURI rdf:resource="http://www.daml.org/2001/03/daml+oil" />
--    <altURL    rdf:resource="file:vocabularies/daml+oil.daml" />
--    <language  rdf:resource="http://www.daml.org/2001/03/daml+oil#" />
--    <prefix    rdf:datatype="&xsd;string">daml</prefix>
--</OntologySpec>
--
--
--</rdf:RDF>
++<?xml version='1.0'?>
++
++<!DOCTYPE rdf:RDF [
++    <!ENTITY jena    'http://jena.hpl.hp.com/schemas/'>
++
++    <!ENTITY rdf     'http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
++    <!ENTITY rdfs    'http://www.w3.org/2000/01/rdf-schema#'>
++    <!ENTITY xsd     'http://www.w3.org/2001/XMLSchema#'>
++    <!ENTITY base    '&jena;2003/03/ont-manager'>
++    <!ENTITY ont     '&base;#'>
++]>
++
++<rdf:RDF
++  xmlns:rdf ="&rdf;"
++  xmlns:rdfs="&rdfs;"
++  xmlns     ="&ont;"
++  xml:base  ="&base;"
++>
++
++<!--
++    An augmented set of mappings for locally cached ontologies, used in the test scripts
++
++    Author: Ian Dickinson, mailto:ian_dickinson@users.sourceforge.net
++    CVS:    $Id: ont-policy.rdf,v 1.5 2003/11/06 17:37:24 ian_dickinson Exp $
++-->
++
++<DocumentManagerPolicy>
++    <!-- policy for controlling the document manager's behaviour -->
++    <processImports rdf:datatype="&xsd;boolean">true</processImports>
++    <cacheModels    rdf:datatype="&xsd;boolean">true</cacheModels>
++</DocumentManagerPolicy>
++
++
++<OntologySpec>
++    <!-- local version of the OWL language ontology (in OWL) -->
++    <publicURI rdf:resource="http://www.w3.org/2002/07/owl" />
++    <altURL    rdf:resource="file:vocabularies/owl.owl" />
++    <language  rdf:resource="http://www.w3.org/2002/07/owl#" />
++    <prefix    rdf:datatype="&xsd;string">owl</prefix>
++</OntologySpec>
++
++<OntologySpec>
++    <!-- local version of the RDFS vocabulary -->
++    <publicURI rdf:resource="http://www.w3.org/2000/01/rdf-schema" />
++    <altURL    rdf:resource="file:vocabularies/rdf-schema.rdf" />
++    <language  rdf:resource="http://www.w3.org/2000/01/rdf-schema#" />
++    <prefix    rdf:datatype="&xsd;string">rdfs</prefix>
++</OntologySpec>
++
++<OntologySpec>
++    <publicURI rdf:resource="http://www.daml.org/2001/03/daml+oil" />
++    <altURL    rdf:resource="file:vocabularies/daml+oil.daml" />
++    <language  rdf:resource="http://www.daml.org/2001/03/daml+oil#" />
++    <prefix    rdf:datatype="&xsd;string">daml</prefix>
++</OntologySpec>
++
++
++</rdf:RDF>

http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-core/src/test/resources/ontology/list0.rdf
----------------------------------------------------------------------
diff --cc jena-core/src/test/resources/ontology/list0.rdf
index 2bbe1a6,2bbe1a6..1a1c6ef
--- a/jena-core/src/test/resources/ontology/list0.rdf
+++ b/jena-core/src/test/resources/ontology/list0.rdf
@@@ -1,20 -1,20 +1,20 @@@
--<?xml version='1.0' encoding='ISO-8859-1'?>
--
--<!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#'>
--]>
--
--<rdf:RDF
--    xmlns:rdf   ="&rdf;"
--    xmlns:rdfs  ="&rdfs;"
--    xml:base    ="uri:urn:x-rdf:test"
--    xmlns       ="uri:urn:x-rdf:test#"
-->
--
--<rdf:Description rdf:ID="root">
--   <p rdf:parseType="Collection">
--   </p>
--</rdf:Description>
--
--</rdf:RDF>
++<?xml version='1.0' encoding='ISO-8859-1'?>
++
++<!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#'>
++]>
++
++<rdf:RDF
++    xmlns:rdf   ="&rdf;"
++    xmlns:rdfs  ="&rdfs;"
++    xml:base    ="uri:urn:x-rdf:test"
++    xmlns       ="uri:urn:x-rdf:test#"
++>
++
++<rdf:Description rdf:ID="root">
++   <p rdf:parseType="Collection">
++   </p>
++</rdf:Description>
++
++</rdf:RDF>

http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-core/src/test/resources/ontology/list1.rdf
----------------------------------------------------------------------
diff --cc jena-core/src/test/resources/ontology/list1.rdf
index 5c62e6d,5c62e6d..e402b1f
--- a/jena-core/src/test/resources/ontology/list1.rdf
+++ b/jena-core/src/test/resources/ontology/list1.rdf
@@@ -1,21 -1,21 +1,21 @@@
--<?xml version='1.0' encoding='ISO-8859-1'?>
--
--<!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#'>
--]>
--
--<rdf:RDF
--    xmlns:rdf   ="&rdf;"
--    xmlns:rdfs  ="&rdfs;"
--    xml:base    ="uri:urn:x-rdf:test"
--    xmlns       ="uri:urn:x-rdf:test#"
-->
--
--<rdf:Description rdf:ID="root">
--   <p rdf:parseType="Collection">
--    <rdf:Description rdf:ID="a" />
--   </p>
--</rdf:Description>
--
--</rdf:RDF>
++<?xml version='1.0' encoding='ISO-8859-1'?>
++
++<!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#'>
++]>
++
++<rdf:RDF
++    xmlns:rdf   ="&rdf;"
++    xmlns:rdfs  ="&rdfs;"
++    xml:base    ="uri:urn:x-rdf:test"
++    xmlns       ="uri:urn:x-rdf:test#"
++>
++
++<rdf:Description rdf:ID="root">
++   <p rdf:parseType="Collection">
++    <rdf:Description rdf:ID="a" />
++   </p>
++</rdf:Description>
++
++</rdf:RDF>

http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-core/src/test/resources/ontology/list2.rdf
----------------------------------------------------------------------
diff --cc jena-core/src/test/resources/ontology/list2.rdf
index 5746ff1,5746ff1..2ec558c
--- a/jena-core/src/test/resources/ontology/list2.rdf
+++ b/jena-core/src/test/resources/ontology/list2.rdf
@@@ -1,22 -1,22 +1,22 @@@
--<?xml version='1.0' encoding='ISO-8859-1'?>
--
--<!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#'>
--]>
--
--<rdf:RDF
--    xmlns:rdf   ="&rdf;"
--    xmlns:rdfs  ="&rdfs;"
--    xml:base    ="uri:urn:x-rdf:test"
--    xmlns       ="uri:urn:x-rdf:test#"
-->
--
--<rdf:Description rdf:ID="root">
--   <p rdf:parseType="Collection">
--    <rdf:Description rdf:ID="a" />
--    <rdf:Description rdf:ID="b" />
--   </p>
--</rdf:Description>
--
--</rdf:RDF>
++<?xml version='1.0' encoding='ISO-8859-1'?>
++
++<!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#'>
++]>
++
++<rdf:RDF
++    xmlns:rdf   ="&rdf;"
++    xmlns:rdfs  ="&rdfs;"
++    xml:base    ="uri:urn:x-rdf:test"
++    xmlns       ="uri:urn:x-rdf:test#"
++>
++
++<rdf:Description rdf:ID="root">
++   <p rdf:parseType="Collection">
++    <rdf:Description rdf:ID="a" />
++    <rdf:Description rdf:ID="b" />
++   </p>
++</rdf:Description>
++
++</rdf:RDF>

http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-core/src/test/resources/ontology/list3.rdf
----------------------------------------------------------------------
diff --cc jena-core/src/test/resources/ontology/list3.rdf
index 70c5dc8,70c5dc8..004777f
--- a/jena-core/src/test/resources/ontology/list3.rdf
+++ b/jena-core/src/test/resources/ontology/list3.rdf
@@@ -1,23 -1,23 +1,23 @@@
--<?xml version='1.0' encoding='ISO-8859-1'?>
--
--<!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#'>
--]>
--
--<rdf:RDF
--    xmlns:rdf   ="&rdf;"
--    xmlns:rdfs  ="&rdfs;"
--    xml:base    ="uri:urn:x-rdf:test"
--    xmlns       ="uri:urn:x-rdf:test#"
-->
--
--<rdf:Description rdf:ID="root">
--   <p rdf:parseType="Collection">
--    <rdf:Description rdf:ID="a" />
--    <rdf:Description rdf:ID="b" />
--    <rdf:Description rdf:ID="c" />
--   </p>
--</rdf:Description>
--
--</rdf:RDF>
++<?xml version='1.0' encoding='ISO-8859-1'?>
++
++<!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#'>
++]>
++
++<rdf:RDF
++    xmlns:rdf   ="&rdf;"
++    xmlns:rdfs  ="&rdfs;"
++    xml:base    ="uri:urn:x-rdf:test"
++    xmlns       ="uri:urn:x-rdf:test#"
++>
++
++<rdf:Description rdf:ID="root">
++   <p rdf:parseType="Collection">
++    <rdf:Description rdf:ID="a" />
++    <rdf:Description rdf:ID="b" />
++    <rdf:Description rdf:ID="c" />
++   </p>
++</rdf:Description>
++
++</rdf:RDF>

http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-core/src/test/resources/ontology/list4.rdf
----------------------------------------------------------------------
diff --cc jena-core/src/test/resources/ontology/list4.rdf
index 4ad6644,4ad6644..c4d7ecd
--- a/jena-core/src/test/resources/ontology/list4.rdf
+++ b/jena-core/src/test/resources/ontology/list4.rdf
@@@ -1,24 -1,24 +1,24 @@@
--<?xml version='1.0' encoding='ISO-8859-1'?>
--
--<!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#'>
--]>
--
--<rdf:RDF
--    xmlns:rdf   ="&rdf;"
--    xmlns:rdfs  ="&rdfs;"
--    xml:base    ="uri:urn:x-rdf:test"
--    xmlns       ="uri:urn:x-rdf:test#"
-->
--
--<rdf:Description rdf:ID="root">
--   <p rdf:parseType="Collection">
--    <rdf:Description rdf:ID="a" />
--    <rdf:Description rdf:ID="b" />
--    <rdf:Description rdf:ID="c" />
--    <rdf:Description rdf:ID="d" />
--   </p>
--</rdf:Description>
--
--</rdf:RDF>
++<?xml version='1.0' encoding='ISO-8859-1'?>
++
++<!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#'>
++]>
++
++<rdf:RDF
++    xmlns:rdf   ="&rdf;"
++    xmlns:rdfs  ="&rdfs;"
++    xml:base    ="uri:urn:x-rdf:test"
++    xmlns       ="uri:urn:x-rdf:test#"
++>
++
++<rdf:Description rdf:ID="root">
++   <p rdf:parseType="Collection">
++    <rdf:Description rdf:ID="a" />
++    <rdf:Description rdf:ID="b" />
++    <rdf:Description rdf:ID="c" />
++    <rdf:Description rdf:ID="d" />
++   </p>
++</rdf:Description>
++
++</rdf:RDF>

http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-core/src/test/resources/ontology/list5.rdf
----------------------------------------------------------------------
diff --cc jena-core/src/test/resources/ontology/list5.rdf
index 7bbaff0,7bbaff0..d0d573b
--- a/jena-core/src/test/resources/ontology/list5.rdf
+++ b/jena-core/src/test/resources/ontology/list5.rdf
@@@ -1,25 -1,25 +1,25 @@@
--<?xml version='1.0' encoding='ISO-8859-1'?>
--
--<!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#'>
--]>
--
--<rdf:RDF
--    xmlns:rdf   ="&rdf;"
--    xmlns:rdfs  ="&rdfs;"
--    xml:base    ="uri:urn:x-rdf:test"
--    xmlns       ="uri:urn:x-rdf:test#"
-->
--
--<rdf:Description rdf:ID="root">
--   <p rdf:parseType="Collection">
--    <rdf:Description rdf:ID="a" />
--    <rdf:Description rdf:ID="b" />
--    <rdf:Description rdf:ID="c" />
--    <rdf:Description rdf:ID="d" />
--    <rdf:Description rdf:ID="e" />
--   </p>
--</rdf:Description>
--
--</rdf:RDF>
++<?xml version='1.0' encoding='ISO-8859-1'?>
++
++<!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#'>
++]>
++
++<rdf:RDF
++    xmlns:rdf   ="&rdf;"
++    xmlns:rdfs  ="&rdfs;"
++    xml:base    ="uri:urn:x-rdf:test"
++    xmlns       ="uri:urn:x-rdf:test#"
++>
++
++<rdf:Description rdf:ID="root">
++   <p rdf:parseType="Collection">
++    <rdf:Description rdf:ID="a" />
++    <rdf:Description rdf:ID="b" />
++    <rdf:Description rdf:ID="c" />
++    <rdf:Description rdf:ID="d" />
++    <rdf:Description rdf:ID="e" />
++   </p>
++</rdf:Description>
++
++</rdf:RDF>

http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-core/testing/Turtle/build
----------------------------------------------------------------------
diff --cc jena-core/testing/Turtle/build
index 3edd780,3edd780..31bed10
--- a/jena-core/testing/Turtle/build
+++ b/jena-core/testing/Turtle/build
@@@ -1,31 -1,31 +1,31 @@@
--#!/bin/bash
--# Build vocabulary
--
--function syntaxCheck
--{
--    FILE="$1"
--    echo "Syntax check: $FILE"
--    n3 -n -rdf "$FILE"
--}
--
--function proc
--{
--    TMP=TT
--    FILE="$1"
--    CLASS="$2"
--    NS="$3"
--    echo "Schemagen: $FILE"
--    schemagen --rdfs -i "$FILE" -n "$CLASS" -a "$NS" -o "$CLASS".java -e N3
--    # Add imports
--    echo "package dev.turtle.test ;" >> "$TMP"
--    echo >>"$TMP"
--    cat "$CLASS".java >> "$TMP"
--    mv "$TMP" "$CLASS".java
--}
--
--syntaxCheck TurtleTestVocab.ttl
--
--proc TurtleTestVocab.ttl TurtleTestVocab \
--	"http://jena.hpl.hp.com/2005/12/test-turtle#"
--
++#!/bin/bash
++# Build vocabulary
++
++function syntaxCheck
++{
++    FILE="$1"
++    echo "Syntax check: $FILE"
++    n3 -n -rdf "$FILE"
++}
++
++function proc
++{
++    TMP=TT
++    FILE="$1"
++    CLASS="$2"
++    NS="$3"
++    echo "Schemagen: $FILE"
++    schemagen --rdfs -i "$FILE" -n "$CLASS" -a "$NS" -o "$CLASS".java -e N3
++    # Add imports
++    echo "package dev.turtle.test ;" >> "$TMP"
++    echo >>"$TMP"
++    cat "$CLASS".java >> "$TMP"
++    mv "$TMP" "$CLASS".java
++}
++
++syntaxCheck TurtleTestVocab.ttl
++
++proc TurtleTestVocab.ttl TurtleTestVocab \
++	"http://jena.hpl.hp.com/2005/12/test-turtle#"
++
  echo "mv TurtleTestVocab.java ../../src-dev/dev/turtle/test/"

http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-core/testing/arp/i18n/badbom8.rdf
----------------------------------------------------------------------
diff --cc jena-core/testing/arp/i18n/badbom8.rdf
index bb36d5b,bb36d5b..f087b71
--- a/jena-core/testing/arp/i18n/badbom8.rdf
+++ b/jena-core/testing/arp/i18n/badbom8.rdf
@@@ -1,34 -1,34 +1,34 @@@
--\ufeff<?xml version="1.0" encoding="iso-8859-1"?>
--<!--
--  Copyright World Wide Web Consortium, (Massachusetts Institute of
--  Technology, Institut National de Recherche en Informatique et en
--  Automatique, Keio University).
-- 
--  All Rights Reserved.
-- 
--  Please see the full Copyright clause at
--  <http://www.w3.org/Consortium/Legal/copyright-software.html>
--
--  $Id: test001.rdf,v 1.1.1.1 2002/12/19 19:37:12 bwm Exp $
---->
--<!--
--
-- Assumed base URI:
--
--http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-empty-property-elements/test001.rdf
--
-- Description:
--
-- The rdf:resource attribute means that the value of this property element
-- is a resource.
--
---->
--<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
--  xmlns:random="http://random.ioctl.org/#">
--
--<rdf:Description rdf:about="http://random.ioctl.org/#bar">
--  <random:someProperty rdf:resource="http://random.ioctl.org/#foo" />
--</rdf:Description>
--
--</rdf:RDF>
--
++\ufeff<?xml version="1.0" encoding="iso-8859-1"?>
++<!--
++  Copyright World Wide Web Consortium, (Massachusetts Institute of
++  Technology, Institut National de Recherche en Informatique et en
++  Automatique, Keio University).
++ 
++  All Rights Reserved.
++ 
++  Please see the full Copyright clause at
++  <http://www.w3.org/Consortium/Legal/copyright-software.html>
++
++  $Id: test001.rdf,v 1.1.1.1 2002/12/19 19:37:12 bwm Exp $
++-->
++<!--
++
++ Assumed base URI:
++
++http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-empty-property-elements/test001.rdf
++
++ Description:
++
++ The rdf:resource attribute means that the value of this property element
++ is a resource.
++
++-->
++<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
++  xmlns:random="http://random.ioctl.org/#">
++
++<rdf:Description rdf:about="http://random.ioctl.org/#bar">
++  <random:someProperty rdf:resource="http://random.ioctl.org/#foo" />
++</rdf:Description>
++
++</rdf:RDF>
++

http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-core/testing/arp/i18n/bom8.rdf
----------------------------------------------------------------------
diff --cc jena-core/testing/arp/i18n/bom8.rdf
index 2ad477f,2ad477f..e8fd930
--- a/jena-core/testing/arp/i18n/bom8.rdf
+++ b/jena-core/testing/arp/i18n/bom8.rdf
@@@ -1,33 -1,33 +1,33 @@@
--\ufeff<!--
--  Copyright World Wide Web Consortium, (Massachusetts Institute of
--  Technology, Institut National de Recherche en Informatique et en
--  Automatique, Keio University).
-- 
--  All Rights Reserved.
-- 
--  Please see the full Copyright clause at
--  <http://www.w3.org/Consortium/Legal/copyright-software.html>
--
--  $Id: test001.rdf,v 1.1.1.1 2002/12/19 19:37:12 bwm Exp $
---->
--<!--
--
-- Assumed base URI:
--
--http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-empty-property-elements/test001.rdf
--
-- Description:
--
-- The rdf:resource attribute means that the value of this property element
-- is a resource.
--
---->
--<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
--  xmlns:random="http://random.ioctl.org/#">
--
--<rdf:Description rdf:about="http://random.ioctl.org/#bar">
--  <random:someProperty rdf:resource="http://random.ioctl.org/#foo" />
--</rdf:Description>
--
--</rdf:RDF>
--
++\ufeff<!--
++  Copyright World Wide Web Consortium, (Massachusetts Institute of
++  Technology, Institut National de Recherche en Informatique et en
++  Automatique, Keio University).
++ 
++  All Rights Reserved.
++ 
++  Please see the full Copyright clause at
++  <http://www.w3.org/Consortium/Legal/copyright-software.html>
++
++  $Id: test001.rdf,v 1.1.1.1 2002/12/19 19:37:12 bwm Exp $
++-->
++<!--
++
++ Assumed base URI:
++
++http://www.w3.org/2000/10/rdf-tests/rdfcore/rdfms-empty-property-elements/test001.rdf
++
++ Description:
++
++ The rdf:resource attribute means that the value of this property element
++ is a resource.
++
++-->
++<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
++  xmlns:random="http://random.ioctl.org/#">
++
++<rdf:Description rdf:about="http://random.ioctl.org/#bar">
++  <random:someProperty rdf:resource="http://random.ioctl.org/#foo" />
++</rdf:Description>
++
++</rdf:RDF>
++

http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-core/testing/arp/i18n/i18nID.rdf
----------------------------------------------------------------------
diff --cc jena-core/testing/arp/i18n/i18nID.rdf
index 2f52c51,2f52c51..e1955de
--- a/jena-core/testing/arp/i18n/i18nID.rdf
+++ b/jena-core/testing/arp/i18n/i18nID.rdf
@@@ -1,26 -1,26 +1,26 @@@
--<?xml version="1.0" encoding="iso-8859-1"?>
--<!--
--
--Sourceforge bug 984001
--
--http://sourceforge.net/tracker/?func=detail&aid=984001&group_id=40417&atid=430288
--
--
-- 
--  This file is iso-8859-1 encoded, and is the samne as the companion file.
--    ENTITY eacute CDATA "&#233;" - latin small letter e with acute,
--                                  U+00E9 ISOlat1 
--                     escaped UTF-8 of '\ufffd' is %C3%A9
--                     
--                     '\ufffd' in ISO-8859-1 is 0xFC
--&#x0680; is an arabic number sign.
--
--Note: this file fails to reproduce the reported bug.
--  
---->
--<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
--   >
--
--  <rdf:Description rdf:ID="\ufffdg&#x0680;b\ufffdr" rdf:value="foo"/>
--   
--</rdf:RDF>
++<?xml version="1.0" encoding="iso-8859-1"?>
++<!--
++
++Sourceforge bug 984001
++
++http://sourceforge.net/tracker/?func=detail&aid=984001&group_id=40417&atid=430288
++
++
++ 
++  This file is iso-8859-1 encoded, and is the samne as the companion file.
++    ENTITY eacute CDATA "&#233;" - latin small letter e with acute,
++                                  U+00E9 ISOlat1 
++                     escaped UTF-8 of '\ufffd' is %C3%A9
++                     
++                     '\ufffd' in ISO-8859-1 is 0xFC
++&#x0680; is an arabic number sign.
++
++Note: this file fails to reproduce the reported bug.
++  
++-->
++<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
++   >
++
++  <rdf:Description rdf:ID="\ufffdg&#x0680;b\ufffdr" rdf:value="foo"/>
++   
++</rdf:RDF>

http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-core/testing/arp/xml-prop.rdf
----------------------------------------------------------------------
diff --cc jena-core/testing/arp/xml-prop.rdf
index 6047724,6047724..96067de
--- a/jena-core/testing/arp/xml-prop.rdf
+++ b/jena-core/testing/arp/xml-prop.rdf
@@@ -1,6 -1,6 +1,6 @@@
--<?xml version="1.0" encoding="utf-8"?>
--<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
--  <rdf:Description rdf:about="http://example.org/Test">
--    <xml:property rdf:resource="http://example.org/Value" />
--  </rdf:Description>
++<?xml version="1.0" encoding="utf-8"?>
++<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
++  <rdf:Description rdf:about="http://example.org/Test">
++    <xml:property rdf:resource="http://example.org/Value" />
++  </rdf:Description>
  </rdf:RDF>

http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-core/testing/ontology/list0.rdf
----------------------------------------------------------------------
diff --cc jena-core/testing/ontology/list0.rdf
index 2bbe1a6,2bbe1a6..1a1c6ef
--- a/jena-core/testing/ontology/list0.rdf
+++ b/jena-core/testing/ontology/list0.rdf
@@@ -1,20 -1,20 +1,20 @@@
--<?xml version='1.0' encoding='ISO-8859-1'?>
--
--<!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#'>
--]>
--
--<rdf:RDF
--    xmlns:rdf   ="&rdf;"
--    xmlns:rdfs  ="&rdfs;"
--    xml:base    ="uri:urn:x-rdf:test"
--    xmlns       ="uri:urn:x-rdf:test#"
-->
--
--<rdf:Description rdf:ID="root">
--   <p rdf:parseType="Collection">
--   </p>
--</rdf:Description>
--
--</rdf:RDF>
++<?xml version='1.0' encoding='ISO-8859-1'?>
++
++<!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#'>
++]>
++
++<rdf:RDF
++    xmlns:rdf   ="&rdf;"
++    xmlns:rdfs  ="&rdfs;"
++    xml:base    ="uri:urn:x-rdf:test"
++    xmlns       ="uri:urn:x-rdf:test#"
++>
++
++<rdf:Description rdf:ID="root">
++   <p rdf:parseType="Collection">
++   </p>
++</rdf:Description>
++
++</rdf:RDF>

http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-core/testing/ontology/list1.rdf
----------------------------------------------------------------------
diff --cc jena-core/testing/ontology/list1.rdf
index 5c62e6d,5c62e6d..e402b1f
--- a/jena-core/testing/ontology/list1.rdf
+++ b/jena-core/testing/ontology/list1.rdf
@@@ -1,21 -1,21 +1,21 @@@
--<?xml version='1.0' encoding='ISO-8859-1'?>
--
--<!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#'>
--]>
--
--<rdf:RDF
--    xmlns:rdf   ="&rdf;"
--    xmlns:rdfs  ="&rdfs;"
--    xml:base    ="uri:urn:x-rdf:test"
--    xmlns       ="uri:urn:x-rdf:test#"
-->
--
--<rdf:Description rdf:ID="root">
--   <p rdf:parseType="Collection">
--    <rdf:Description rdf:ID="a" />
--   </p>
--</rdf:Description>
--
--</rdf:RDF>
++<?xml version='1.0' encoding='ISO-8859-1'?>
++
++<!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#'>
++]>
++
++<rdf:RDF
++    xmlns:rdf   ="&rdf;"
++    xmlns:rdfs  ="&rdfs;"
++    xml:base    ="uri:urn:x-rdf:test"
++    xmlns       ="uri:urn:x-rdf:test#"
++>
++
++<rdf:Description rdf:ID="root">
++   <p rdf:parseType="Collection">
++    <rdf:Description rdf:ID="a" />
++   </p>
++</rdf:Description>
++
++</rdf:RDF>

http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-core/testing/ontology/list2.rdf
----------------------------------------------------------------------
diff --cc jena-core/testing/ontology/list2.rdf
index 5746ff1,5746ff1..2ec558c
--- a/jena-core/testing/ontology/list2.rdf
+++ b/jena-core/testing/ontology/list2.rdf
@@@ -1,22 -1,22 +1,22 @@@
--<?xml version='1.0' encoding='ISO-8859-1'?>
--
--<!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#'>
--]>
--
--<rdf:RDF
--    xmlns:rdf   ="&rdf;"
--    xmlns:rdfs  ="&rdfs;"
--    xml:base    ="uri:urn:x-rdf:test"
--    xmlns       ="uri:urn:x-rdf:test#"
-->
--
--<rdf:Description rdf:ID="root">
--   <p rdf:parseType="Collection">
--    <rdf:Description rdf:ID="a" />
--    <rdf:Description rdf:ID="b" />
--   </p>
--</rdf:Description>
--
--</rdf:RDF>
++<?xml version='1.0' encoding='ISO-8859-1'?>
++
++<!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#'>
++]>
++
++<rdf:RDF
++    xmlns:rdf   ="&rdf;"
++    xmlns:rdfs  ="&rdfs;"
++    xml:base    ="uri:urn:x-rdf:test"
++    xmlns       ="uri:urn:x-rdf:test#"
++>
++
++<rdf:Description rdf:ID="root">
++   <p rdf:parseType="Collection">
++    <rdf:Description rdf:ID="a" />
++    <rdf:Description rdf:ID="b" />
++   </p>
++</rdf:Description>
++
++</rdf:RDF>

http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-core/testing/ontology/list3.rdf
----------------------------------------------------------------------
diff --cc jena-core/testing/ontology/list3.rdf
index 70c5dc8,70c5dc8..004777f
--- a/jena-core/testing/ontology/list3.rdf
+++ b/jena-core/testing/ontology/list3.rdf
@@@ -1,23 -1,23 +1,23 @@@
--<?xml version='1.0' encoding='ISO-8859-1'?>
--
--<!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#'>
--]>
--
--<rdf:RDF
--    xmlns:rdf   ="&rdf;"
--    xmlns:rdfs  ="&rdfs;"
--    xml:base    ="uri:urn:x-rdf:test"
--    xmlns       ="uri:urn:x-rdf:test#"
-->
--
--<rdf:Description rdf:ID="root">
--   <p rdf:parseType="Collection">
--    <rdf:Description rdf:ID="a" />
--    <rdf:Description rdf:ID="b" />
--    <rdf:Description rdf:ID="c" />
--   </p>
--</rdf:Description>
--
--</rdf:RDF>
++<?xml version='1.0' encoding='ISO-8859-1'?>
++
++<!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#'>
++]>
++
++<rdf:RDF
++    xmlns:rdf   ="&rdf;"
++    xmlns:rdfs  ="&rdfs;"
++    xml:base    ="uri:urn:x-rdf:test"
++    xmlns       ="uri:urn:x-rdf:test#"
++>
++
++<rdf:Description rdf:ID="root">
++   <p rdf:parseType="Collection">
++    <rdf:Description rdf:ID="a" />
++    <rdf:Description rdf:ID="b" />
++    <rdf:Description rdf:ID="c" />
++   </p>
++</rdf:Description>
++
++</rdf:RDF>

http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-core/testing/ontology/list4.rdf
----------------------------------------------------------------------
diff --cc jena-core/testing/ontology/list4.rdf
index 4ad6644,4ad6644..c4d7ecd
--- a/jena-core/testing/ontology/list4.rdf
+++ b/jena-core/testing/ontology/list4.rdf
@@@ -1,24 -1,24 +1,24 @@@
--<?xml version='1.0' encoding='ISO-8859-1'?>
--
--<!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#'>
--]>
--
--<rdf:RDF
--    xmlns:rdf   ="&rdf;"
--    xmlns:rdfs  ="&rdfs;"
--    xml:base    ="uri:urn:x-rdf:test"
--    xmlns       ="uri:urn:x-rdf:test#"
-->
--
--<rdf:Description rdf:ID="root">
--   <p rdf:parseType="Collection">
--    <rdf:Description rdf:ID="a" />
--    <rdf:Description rdf:ID="b" />
--    <rdf:Description rdf:ID="c" />
--    <rdf:Description rdf:ID="d" />
--   </p>
--</rdf:Description>
--
--</rdf:RDF>
++<?xml version='1.0' encoding='ISO-8859-1'?>
++
++<!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#'>
++]>
++
++<rdf:RDF
++    xmlns:rdf   ="&rdf;"
++    xmlns:rdfs  ="&rdfs;"
++    xml:base    ="uri:urn:x-rdf:test"
++    xmlns       ="uri:urn:x-rdf:test#"
++>
++
++<rdf:Description rdf:ID="root">
++   <p rdf:parseType="Collection">
++    <rdf:Description rdf:ID="a" />
++    <rdf:Description rdf:ID="b" />
++    <rdf:Description rdf:ID="c" />
++    <rdf:Description rdf:ID="d" />
++   </p>
++</rdf:Description>
++
++</rdf:RDF>

http://git-wip-us.apache.org/repos/asf/jena/blob/4b5cd267/jena-core/testing/ontology/list5.rdf
----------------------------------------------------------------------
diff --cc jena-core/testing/ontology/list5.rdf
index 7bbaff0,7bbaff0..d0d573b
--- a/jena-core/testing/ontology/list5.rdf
+++ b/jena-core/testing/ontology/list5.rdf
@@@ -1,25 -1,25 +1,25 @@@
--<?xml version='1.0' encoding='ISO-8859-1'?>
--
--<!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#'>
--]>
--
--<rdf:RDF
--    xmlns:rdf   ="&rdf;"
--    xmlns:rdfs  ="&rdfs;"
--    xml:base    ="uri:urn:x-rdf:test"
--    xmlns       ="uri:urn:x-rdf:test#"
-->
--
--<rdf:Description rdf:ID="root">
--   <p rdf:parseType="Collection">
--    <rdf:Description rdf:ID="a" />
--    <rdf:Description rdf:ID="b" />
--    <rdf:Description rdf:ID="c" />
--    <rdf:Description rdf:ID="d" />
--    <rdf:Description rdf:ID="e" />
--   </p>
--</rdf:Description>
--
--</rdf:RDF>
++<?xml version='1.0' encoding='ISO-8859-1'?>
++
++<!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#'>
++]>
++
++<rdf:RDF
++    xmlns:rdf   ="&rdf;"
++    xmlns:rdfs  ="&rdfs;"
++    xml:base    ="uri:urn:x-rdf:test"
++    xmlns       ="uri:urn:x-rdf:test#"
++>
++
++<rdf:Description rdf:ID="root">
++   <p rdf:parseType="Collection">
++    <rdf:Description rdf:ID="a" />
++    <rdf:Description rdf:ID="b" />
++    <rdf:Description rdf:ID="c" />
++    <rdf:Description rdf:ID="d" />
++    <rdf:Description rdf:ID="e" />
++   </p>
++</rdf:Description>
++
++</rdf:RDF>