You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by cl...@apache.org on 2013/08/27 08:01:02 UTC

svn commit: r1517755 [2/2] - in /jena/Experimental/new-test: ./ .settings/ src/ src/test/ src/test/java/ src/test/java/com/ src/test/java/com/hp/ src/test/java/com/hp/hpl/ src/test/java/com/hp/hpl/jena/ src/test/java/com/hp/hpl/jena/graph/ src/test/jav...

Added: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/test/TestUtils.java
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/test/TestUtils.java?rev=1517755&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/test/TestUtils.java (added)
+++ jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/test/TestUtils.java Tue Aug 27 06:01:01 2013
@@ -0,0 +1,167 @@
+/*
+ * 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.
+ */
+
+package com.hp.hpl.jena.test;
+
+import java.lang.reflect.*;
+import static org.junit.Assert.*;
+import java.util.*;
+
+import com.hp.hpl.jena.util.CollectionFactory;
+import com.hp.hpl.jena.util.iterator.*;
+
+/**
+    A basis for Jena test cases which provides assertFalse and assertDiffer.
+    Often the logic of the names is clearer than using a negation.
+*/
+public class TestUtils
+    {
+	// do not instantiate
+    protected TestUtils() {};
+         
+    /**
+        assert that the two objects must be unequal according to .equals().
+        @param title a labelling string for the assertion failure text
+        @param x an object to test; the subject of a .equals()
+        @param y the other object; the argument of the .equals()
+    */
+    public static void assertDiffer( String title, Object x, Object y )
+        { 
+        if (x == null ? y == null : x.equals( y ))
+            fail( (title == null ? "objects should be different, but both were: " : title) + x );
+        }
+        
+    /**
+        assert that the two objects must be unequal according to .equals().
+        @param x an object to test; the subject of a .equals()
+        @param y the other object; the argument of the .equals()
+    */
+    public static void assertDiffer( Object x, Object y )
+        { assertDiffer( null, x, y ); }
+    
+    /**
+        assert that the object <code>x</code> must be of the class 
+        <code>expected</code>.
+    */
+    public static void assertInstanceOf( Class<?> expected, Object x )
+        {
+        if (x == null)
+            fail( "expected instance of " + expected + ", but had null" );
+        if (!expected.isInstance( x )) 
+            fail( "expected instance of " + expected + ", but had instance of " + x.getClass() );
+        }
+        
+    /**
+    	Answer a Set formed from the elements of the List <code>L</code>.
+    */
+    public static <T> Set<T> listToSet( List<T> L )
+        { return CollectionFactory.createHashedSet( L ); }
+
+    /**
+        Answer a List of the substrings of <code>s</code> that are separated 
+        by spaces.
+    */
+    public static List<String> listOfStrings( String s )
+        {
+        List<String> result = new ArrayList<String>();
+        StringTokenizer st = new StringTokenizer( s );
+        while (st.hasMoreTokens()) result.add( st.nextToken() );
+        return result;
+        }
+    
+    /**
+        Answer a Set of the substrings of <code>s</code> that are separated 
+        by spaces.
+    */
+    public static Set<String> setOfStrings( String s )
+        {
+        Set<String> result = new HashSet<String>();
+        StringTokenizer st = new StringTokenizer( s );
+        while (st.hasMoreTokens()) result.add( st.nextToken() );
+        return result;
+        }
+
+    /**
+        Answer a list containing the single object <code>x</code>.
+    */
+    public static <T> List<T> listOfOne( T x )
+        {
+        List<T> result = new ArrayList<T>();
+        result.add( x );
+        return result;
+        }
+
+    /**
+        Answer a Set containing the single object <code>x</code>.
+    */
+    public static <T> Set<T> setOfOne( T x )
+        {
+        Set<T> result = new HashSet<T>();
+        result.add( x );
+        return result;
+        }
+    
+    /**
+        Answer a fresh list which is the concatenation of <code>L</code> then
+        <code>R</code>. Neither <code>L</code> nor <code>R</code> is updated.
+    */
+    public static <T> List<T> append( List<? extends T> L, List<? extends T> R )
+        { List<T> result = new ArrayList<T>( L );
+        result.addAll( R );
+        return result; }
+    
+    /**
+        Answer an iterator over the space-separated substrings of <code>s</code>.
+    */
+    protected static ExtendedIterator<String> iteratorOfStrings( String s )
+        { return WrappedIterator.create( listOfStrings( s ).iterator() ); }
+    
+    /**
+        Answer the constructor of the class <code>c</code> which takes arguments 
+        of the type(s) in <code>args</code>, or <code>null</code> if there 
+        isn't one.
+    */
+    public static Constructor<?> getConstructor( Class<?> c, Class<?> [] args )
+        {
+        try { return c.getConstructor( args ); }
+        catch (NoSuchMethodException e) { return null; }
+        }
+
+    /**
+         Answer true iff <code>subClass</code> is the same class as 
+         <code>superClass</code>, if its superclass <i>is</i> <code>superClass</code>,
+         or if one of its interfaces hasAsInterface that class.
+    */
+    public static boolean hasAsParent( Class<?> subClass, Class<?> superClass )
+        {
+        if (subClass == superClass || subClass.getSuperclass() == superClass) return true;
+        Class<?> [] is = subClass.getInterfaces();
+        for (int i = 0; i < is.length; i += 1) if (hasAsParent( is[i], superClass )) return true;
+        return false;
+        }
+    
+    /**
+         Fail unless <code>subClass</code> has <code>superClass</code> as a
+         parent, either a superclass or an implemented (directly or not) interface.
+    */
+    public static void assertHasParent( Class<?> subClass, Class<?> superClass )
+        {
+        if (hasAsParent( subClass, superClass ) == false)
+            fail( "" + subClass + " should have " + superClass + " as a parent" );
+        }
+    }

Propchange: jena/Experimental/new-test/src/test/java/com/hp/hpl/jena/test/TestUtils.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: jena/Experimental/new-test/src/test/resources/regression/testModelEquals/1-1.rdf
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/regression/testModelEquals/1-1.rdf?rev=1517755&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/regression/testModelEquals/1-1.rdf (added)
+++ jena/Experimental/new-test/src/test/resources/regression/testModelEquals/1-1.rdf Tue Aug 27 06:01:01 2013
@@ -0,0 +1,183 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<rdf:RDF
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
+
+<rdfs:Class rdf:ID="Resource">
+  <rdfs:label xml:lang="en">Resource</rdfs:label>
+  <rdfs:label xml:lang="fr">Ressource</rdfs:label>
+  <rdfs:comment>The most general class</rdfs:comment>
+</rdfs:Class>
+
+<rdf:Property rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#type">
+  <rdfs:label xml:lang="en">type</rdfs:label>
+  <rdfs:label xml:lang="fr">type</rdfs:label>
+  <rdfs:comment>Indicates membership of a class</rdfs:comment>
+  <rdfs:range rdf:resource="#Class"/>
+</rdf:Property>
+
+<rdf:Property rdf:ID="comment">
+  <rdfs:label xml:lang="en">comment</rdfs:label>
+  <rdfs:label xml:lang="fr">commentaire</rdfs:label>
+  <rdfs:domain rdf:resource="#Resource"/>
+  <rdfs:comment>Use this for descriptions</rdfs:comment>
+  <rdfs:range rdf:resource="#Literal"/>
+</rdf:Property>
+
+<rdf:Property rdf:ID="label">
+ <rdfs:label xml:lang="en">label</rdfs:label>
+ <rdfs:label xml:lang="fr">label</rdfs:label>
+ <rdfs:domain rdf:resource="#Resource"/>
+ <rdfs:comment>Provides a human-readable version of a rdf:resource name.</rdfs:comment>
+ <rdfs:range rdf:resource="#Literal"/>
+</rdf:Property>
+
+<rdfs:Class rdf:ID="Class">
+  <rdfs:label xml:lang="en">Class</rdfs:label>
+  <rdfs:label xml:lang="fr">Classe</rdfs:label>
+  <rdfs:comment>The concept of Class</rdfs:comment>
+  <rdfs:subClassOf rdf:resource="#Resource"/>
+</rdfs:Class>
+
+<rdf:Property rdf:ID="subClassOf">
+  <rdfs:label xml:lang="en">subClassOf</rdfs:label>
+  <rdfs:label xml:lang="fr">sousClasseDe</rdfs:label>
+  <rdfs:comment>Indicates membership of a class</rdfs:comment>
+  <rdfs:range rdf:resource="#Class"/>
+  <rdfs:domain rdf:resource="#Class"/>
+</rdf:Property>
+
+<rdf:Property rdf:ID="subPropertyOf">
+  <rdfs:label xml:lang="en">subPropertyOf</rdfs:label>
+  <rdfs:label xml:lang="fr">sousPropriétéDe</rdfs:label>
+  <rdfs:comment>Indicates specialization of properties</rdfs:comment>
+  <rdfs:range rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
+  <rdfs:domain rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
+</rdf:Property>
+
+<rdf:Property rdf:ID="seeAlso">
+  <rdfs:label xml:lang="en">seeAlso</rdfs:label>
+  <rdfs:label xml:lang="fr">voirAussi</rdfs:label>
+  <rdfs:comment>Indicates a rdf:resource that provides information rdf:about the subject rdf:resource.</rdfs:comment>
+  <rdfs:range rdf:resource="#Resource"/>
+  <rdfs:domain rdf:resource="#Resource"/>
+</rdf:Property>
+
+<rdf:Property rdf:ID="isDefinedBy">
+  <rdfs:subPropertyOf rdf:resource="#seeAlso"/>
+  <rdfs:label xml:lang="en">isDefinedBy</rdfs:label>
+  <rdfs:label xml:lang="fr">esD&#233;finiPar</rdfs:label>
+  <rdfs:comment>Indicates a rdf:resource containing and defining the subject rdf:resource.</rdfs:comment>
+  <rdfs:range rdf:resource="#Resource"/>
+  <rdfs:domain rdf:resource="#Resource"/>
+</rdf:Property>
+
+<rdfs:Class rdf:ID="ConstraintResource">
+  <rdfs:label xml:lang="en">ConstraintResource</rdfs:label>
+  <rdfs:label xml:lang="fr">RessourceContrainte</rdfs:label>
+  <rdfs:subClassOf rdf:resource="#Resource"/>
+  <rdfs:comment>Resources used to express RDF Schema constraints.</rdfs:comment>
+</rdfs:Class>
+
+<rdfs:Class rdf:ID="ConstraintProperty">
+  <rdfs:label xml:lang="en">ConstraintProperty</rdfs:label>
+  <rdfs:label xml:lang="fr">Propri&#233;t&#233;Contrainte</rdfs:label>
+  <rdfs:subClassOf rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
+  <rdfs:subClassOf rdf:resource="#ConstraintResource"/>
+  <rdfs:comment>Properties used to express RDF Schema constraints.</rdfs:comment>
+</rdfs:Class>
+
+<rdfs:ConstraintProperty rdf:ID="domain">
+  <rdfs:label xml:lang="en">domain</rdfs:label>
+  <rdfs:label xml:lang="fr">domaine</rdfs:label>
+  <rdfs:comment>This is how we associate a class with properties that its instances can have</rdfs:comment>
+</rdfs:ConstraintProperty>
+
+<rdfs:ConstraintProperty rdf:ID="range">
+  <rdfs:label xml:lang="en">range</rdfs:label>
+  <rdfs:label xml:lang="fr">&#233;tendue</rdfs:label>
+  <rdfs:comment>Properties that can be used in a schema to provide constraints</rdfs:comment>
+  <rdfs:range rdf:resource="#Class"/>
+  <rdfs:domain rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
+</rdfs:ConstraintProperty>
+
+<rdfs:Class rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property">
+  <rdfs:label xml:lang="en">Property</rdfs:label>
+  <rdfs:label xml:lang="fr">Propri&#233;t&#233;</rdfs:label>
+  <rdfs:comment>The concept of a property.</rdfs:comment>
+  <rdfs:subClassOf rdf:resource="#Resource"/>
+</rdfs:Class>
+
+<rdfs:Class rdf:ID="Literal">
+  <rdfs:label xml:lang="en">Literal</rdfs:label>
+  <rdfs:label xml:lang="fr">Litt&#233;ral</rdfs:label>
+  <rdfs:comment>This represents the set of atomic values, eg. textual strings.</rdfs:comment>
+</rdfs:Class>
+
+<rdfs:Class rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement">
+  <rdfs:label xml:lang="en">Statement</rdfs:label>
+  <rdfs:label xml:lang="fr">D&#233;claration</rdfs:label>
+  <rdfs:subClassOf rdf:resource="#Resource"/>
+  <rdfs:comment>This represents the set of reified statements.</rdfs:comment>
+</rdfs:Class>
+
+<rdf:Property rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#subject">
+  <rdfs:label xml:lang="en">subject</rdfs:label>
+  <rdfs:label xml:lang="fr">sujet</rdfs:label>
+  <rdfs:domain rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement"/>
+  <rdfs:range rdf:resource="#Resource"/>
+</rdf:Property>
+
+<rdf:Property rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate">
+  <rdfs:label xml:lang="en">predicate</rdfs:label>
+  <rdfs:label xml:lang="fr">pr&#233;dicat</rdfs:label>
+  <rdfs:domain rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement"/>
+  <rdfs:range rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
+</rdf:Property>
+
+<rdf:Property rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#object">
+  <rdfs:label xml:lang="en">object</rdfs:label>
+  <rdfs:label xml:lang="fr">objet</rdfs:label>
+  <rdfs:domain rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement"/>
+</rdf:Property>
+
+<rdfs:Class rdf:ID="Container">
+  <rdfs:label xml:lang="en">Container</rdfs:label>
+  <rdfs:label xml:lang="fr">Enveloppe</rdfs:label>
+  <rdfs:subClassOf rdf:resource="#Resource"/>
+  <rdfs:comment>This represents the set Containers.</rdfs:comment>
+</rdfs:Class>
+
+<rdfs:Class rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag">
+  <rdfs:label xml:lang="en">Bag</rdfs:label>
+  <rdfs:label xml:lang="fr">Ensemble</rdfs:label>
+  <rdfs:subClassOf rdf:resource="#Container"/>
+</rdfs:Class>
+
+<rdfs:Class rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#Seq">
+  <rdfs:label xml:lang="en">Sequence</rdfs:label>
+  <rdfs:label xml:lang="fr">S&#233;quence</rdfs:label>
+  <rdfs:subClassOf rdf:resource="#Container"/>
+</rdfs:Class>
+
+<rdfs:Class rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#Alt">
+  <rdfs:label xml:lang="en">Alt</rdfs:label>
+  <rdfs:label xml:lang="fr">Choix</rdfs:label>
+  <rdfs:subClassOf rdf:resource="#Container"/>
+</rdfs:Class>
+
+<rdfs:Class rdf:ID="ContainerMembershipProperty">
+  <rdfs:label xml:lang="en">ContainerMembershipProperty</rdfs:label>
+  <rdfs:subClassOf rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
+</rdfs:Class>
+
+<rdf:Property rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#value">
+  <rdfs:label xml:lang="en">object</rdfs:label>
+  <rdfs:label xml:lang="fr">value</rdfs:label>
+</rdf:Property>
+
+<rdf:Description rdf:about="http://www.w3.org/2000/01/rdf-schema#">
+  <rdfs:seeAlso rdf:resource="http://www.w3.org/2000/01/rdf-schema-more"/>
+</rdf:Description>
+
+</rdf:RDF>

Added: jena/Experimental/new-test/src/test/resources/regression/testModelEquals/1-2.rdf
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/regression/testModelEquals/1-2.rdf?rev=1517755&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/regression/testModelEquals/1-2.rdf (added)
+++ jena/Experimental/new-test/src/test/resources/regression/testModelEquals/1-2.rdf Tue Aug 27 06:01:01 2013
@@ -0,0 +1,183 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<rdf:RDF
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
+
+<rdfs:Class rdf:ID="Resource">
+  <rdfs:label xml:lang="en">Resource</rdfs:label>
+  <rdfs:label xml:lang="fr">Ressource</rdfs:label>
+  <rdfs:comment>The most general class</rdfs:comment>
+</rdfs:Class>
+
+<rdf:Property rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#type">
+  <rdfs:label xml:lang="en">type</rdfs:label>
+  <rdfs:label xml:lang="fr">type</rdfs:label>
+  <rdfs:comment>Indicates membership of a class</rdfs:comment>
+  <rdfs:range rdf:resource="#Class"/>
+</rdf:Property>
+
+<rdf:Property rdf:ID="comment">
+  <rdfs:label xml:lang="en">comment</rdfs:label>
+  <rdfs:label xml:lang="fr">commentaire</rdfs:label>
+  <rdfs:domain rdf:resource="#Resource"/>
+  <rdfs:comment>Use this for descriptions</rdfs:comment>
+  <rdfs:range rdf:resource="#Literal"/>
+</rdf:Property>
+
+<rdf:Property rdf:ID="label">
+ <rdfs:label xml:lang="en">label</rdfs:label>
+ <rdfs:label xml:lang="fr">label</rdfs:label>
+ <rdfs:domain rdf:resource="#Resource"/>
+ <rdfs:comment>Provides a human-readable version of a rdf:resource name.</rdfs:comment>
+ <rdfs:range rdf:resource="#Literal"/>
+</rdf:Property>
+
+<rdfs:Class rdf:ID="Class">
+  <rdfs:label xml:lang="en">Class</rdfs:label>
+  <rdfs:label xml:lang="fr">Classe</rdfs:label>
+  <rdfs:comment>The concept of Class</rdfs:comment>
+  <rdfs:subClassOf rdf:resource="#Resource"/>
+</rdfs:Class>
+
+<rdf:Property rdf:ID="subClassOf">
+  <rdfs:label xml:lang="en">subClassOf</rdfs:label>
+  <rdfs:label xml:lang="fr">sousClasseDe</rdfs:label>
+  <rdfs:comment>Indicates membership of a class</rdfs:comment>
+  <rdfs:range rdf:resource="#Class"/>
+  <rdfs:domain rdf:resource="#Class"/>
+</rdf:Property>
+
+<rdf:Property rdf:ID="subPropertyOf">
+  <rdfs:label xml:lang="en">subPropertyOf</rdfs:label>
+  <rdfs:label xml:lang="fr">sousPropriétéDe</rdfs:label>
+  <rdfs:comment>Indicates specialization of properties</rdfs:comment>
+  <rdfs:range rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
+  <rdfs:domain rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
+</rdf:Property>
+
+<rdf:Property rdf:ID="seeAlso">
+  <rdfs:label xml:lang="en">seeAlso</rdfs:label>
+  <rdfs:label xml:lang="fr">voirAussi</rdfs:label>
+  <rdfs:comment>Indicates a rdf:resource that provides information rdf:about the subject rdf:resource.</rdfs:comment>
+  <rdfs:range rdf:resource="#Resource"/>
+  <rdfs:domain rdf:resource="#Resource"/>
+</rdf:Property>
+
+<rdf:Property rdf:ID="isDefinedBy">
+  <rdfs:subPropertyOf rdf:resource="#seeAlso"/>
+  <rdfs:label xml:lang="en">isDefinedBy</rdfs:label>
+  <rdfs:label xml:lang="fr">esD&#233;finiPar</rdfs:label>
+  <rdfs:comment>Indicates a rdf:resource containing and defining the subject rdf:resource.</rdfs:comment>
+  <rdfs:range rdf:resource="#Resource"/>
+  <rdfs:domain rdf:resource="#Resource"/>
+</rdf:Property>
+
+<rdfs:Class rdf:ID="ConstraintResource">
+  <rdfs:label xml:lang="en">ConstraintResource</rdfs:label>
+  <rdfs:label xml:lang="fr">RessourceContrainte</rdfs:label>
+  <rdfs:subClassOf rdf:resource="#Resource"/>
+  <rdfs:comment>Resources used to express RDF Schema constraints.</rdfs:comment>
+</rdfs:Class>
+
+<rdfs:Class rdf:ID="ConstraintProperty">
+  <rdfs:label xml:lang="en">ConstraintProperty</rdfs:label>
+  <rdfs:label xml:lang="fr">Propri&#233;t&#233;Contrainte</rdfs:label>
+  <rdfs:subClassOf rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
+  <rdfs:subClassOf rdf:resource="#ConstraintResource"/>
+  <rdfs:comment>Properties used to express RDF Schema constraints.</rdfs:comment>
+</rdfs:Class>
+
+<rdfs:ConstraintProperty rdf:ID="domain">
+  <rdfs:label xml:lang="en">domain</rdfs:label>
+  <rdfs:label xml:lang="fr">domaine</rdfs:label>
+  <rdfs:comment>This is how we associate a class with properties that its instances can have</rdfs:comment>
+</rdfs:ConstraintProperty>
+
+<rdfs:ConstraintProperty rdf:ID="range">
+  <rdfs:label xml:lang="en">range</rdfs:label>
+  <rdfs:label xml:lang="fr">&#233;tendue</rdfs:label>
+  <rdfs:comment>Properties that can be used in a schema to provide constraints</rdfs:comment>
+  <rdfs:range rdf:resource="#Class"/>
+  <rdfs:domain rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
+</rdfs:ConstraintProperty>
+
+<rdfs:Class rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property">
+  <rdfs:label xml:lang="en">Property</rdfs:label>
+  <rdfs:label xml:lang="fr">Propri&#233;t&#233;</rdfs:label>
+  <rdfs:comment>The concept of a property.</rdfs:comment>
+  <rdfs:subClassOf rdf:resource="#Resource"/>
+</rdfs:Class>
+
+<rdfs:Class rdf:ID="Literal">
+  <rdfs:label xml:lang="en">Literal</rdfs:label>
+  <rdfs:label xml:lang="fr">Litt&#233;ral</rdfs:label>
+  <rdfs:comment>This represents the set of atomic values, eg. textual strings.</rdfs:comment>
+</rdfs:Class>
+
+<rdfs:Class rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement">
+  <rdfs:label xml:lang="en">Statement</rdfs:label>
+  <rdfs:label xml:lang="fr">D&#233;claration</rdfs:label>
+  <rdfs:subClassOf rdf:resource="#Resource"/>
+  <rdfs:comment>This represents the set of reified statements.</rdfs:comment>
+</rdfs:Class>
+
+<rdf:Property rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#subject">
+  <rdfs:label xml:lang="en">subject</rdfs:label>
+  <rdfs:label xml:lang="fr">sujet</rdfs:label>
+  <rdfs:domain rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement"/>
+  <rdfs:range rdf:resource="#Resource"/>
+</rdf:Property>
+
+<rdf:Property rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate">
+  <rdfs:label xml:lang="en">predicate</rdfs:label>
+  <rdfs:label xml:lang="fr">pr&#233;dicat</rdfs:label>
+  <rdfs:domain rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement"/>
+  <rdfs:range rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
+</rdf:Property>
+
+<rdf:Property rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#object">
+  <rdfs:label xml:lang="en">object</rdfs:label>
+  <rdfs:label xml:lang="fr">objet</rdfs:label>
+  <rdfs:domain rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement"/>
+</rdf:Property>
+
+<rdfs:Class rdf:ID="Container">
+  <rdfs:label xml:lang="en">Container</rdfs:label>
+  <rdfs:label xml:lang="fr">Enveloppe</rdfs:label>
+  <rdfs:subClassOf rdf:resource="#Resource"/>
+  <rdfs:comment>This represents the set Containers.</rdfs:comment>
+</rdfs:Class>
+
+<rdfs:Class rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag">
+  <rdfs:label xml:lang="en">Bag</rdfs:label>
+  <rdfs:label xml:lang="fr">Ensemble</rdfs:label>
+  <rdfs:subClassOf rdf:resource="#Container"/>
+</rdfs:Class>
+
+<rdfs:Class rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#Seq">
+  <rdfs:label xml:lang="en">Sequence</rdfs:label>
+  <rdfs:label xml:lang="fr">S&#233;quence</rdfs:label>
+  <rdfs:subClassOf rdf:resource="#Container"/>
+</rdfs:Class>
+
+<rdfs:Class rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#Alt">
+  <rdfs:label xml:lang="en">Alt</rdfs:label>
+  <rdfs:label xml:lang="fr">Choix</rdfs:label>
+  <rdfs:subClassOf rdf:resource="#Container"/>
+</rdfs:Class>
+
+<rdfs:Class rdf:ID="ContainerMembershipProperty">
+  <rdfs:label xml:lang="en">ContainerMembershipProperty</rdfs:label>
+  <rdfs:subClassOf rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
+</rdfs:Class>
+
+<rdf:Property rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#value">
+  <rdfs:label xml:lang="en">object</rdfs:label>
+  <rdfs:label xml:lang="fr">value</rdfs:label>
+</rdf:Property>
+
+<rdf:Description rdf:about="http://www.w3.org/2000/01/rdf-schema#">
+  <rdfs:seeAlso rdf:resource="http://www.w3.org/2000/01/rdf-schema-more"/>
+</rdf:Description>
+
+</rdf:RDF>

Added: jena/Experimental/new-test/src/test/resources/regression/testModelEquals/2-1.rdf
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/regression/testModelEquals/2-1.rdf?rev=1517755&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/regression/testModelEquals/2-1.rdf (added)
+++ jena/Experimental/new-test/src/test/resources/regression/testModelEquals/2-1.rdf Tue Aug 27 06:01:01 2013
@@ -0,0 +1,9 @@
+<?xml version='1.0'?>
+<rdf:RDF
+  xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'
+  xmlns:rdfs='http://www.w3.org/2000/01/rdf-schema#'
+  xmlns:test="http://aldabaran.hpl.hp.com/rdftest/test18/">
+  <rdf:Description rdf:about="http://aldabaran.hpl.hp.com/rdftest/test18/1">
+    <rdf:value rdf:parseType="Literal"><foo bar="bar"><bar>abc<foobar/>def&lt;&gt;&apos;&quot;&amp;</bar></foo></rdf:value>
+  </rdf:Description>
+</rdf:RDF>

Added: jena/Experimental/new-test/src/test/resources/regression/testModelEquals/2-2.rdf
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/regression/testModelEquals/2-2.rdf?rev=1517755&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/regression/testModelEquals/2-2.rdf (added)
+++ jena/Experimental/new-test/src/test/resources/regression/testModelEquals/2-2.rdf Tue Aug 27 06:01:01 2013
@@ -0,0 +1,9 @@
+<?xml version='1.0'?>
+<rdf:RDF
+  xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'
+  xmlns:rdfs='http://www.w3.org/2000/01/rdf-schema#'
+  xmlns:test="http://aldabaran.hpl.hp.com/rdftest/test18/">
+  <rdf:Description rdf:about="http://aldabaran.hpl.hp.com/rdftest/test18/1">
+    <rdf:value rdf:parseType="Literal"><foo bar="bar"><bar>abc<foobar/>def&lt;&gt;&apos;&quot;&amp;</bar></foo></rdf:value>
+  </rdf:Description>
+</rdf:RDF>

Added: jena/Experimental/new-test/src/test/resources/regression/testModelEquals/3-1.rdf
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/regression/testModelEquals/3-1.rdf?rev=1517755&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/regression/testModelEquals/3-1.rdf (added)
+++ jena/Experimental/new-test/src/test/resources/regression/testModelEquals/3-1.rdf Tue Aug 27 06:01:01 2013
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<rdf:RDF xmlns:rdf  = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+         xmlns:rdfs = "http://www.w3.org/2000/01/rdf-schema#"
+         xmlns:foo  = "http://example.org/foo">
+
+<foo:bar>
+  <foo:p1>hello there</foo:p1>
+</foo:bar>
+ 
+
+</rdf:RDF>
+
+

Added: jena/Experimental/new-test/src/test/resources/regression/testModelEquals/3-2.rdf
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/regression/testModelEquals/3-2.rdf?rev=1517755&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/regression/testModelEquals/3-2.rdf (added)
+++ jena/Experimental/new-test/src/test/resources/regression/testModelEquals/3-2.rdf Tue Aug 27 06:01:01 2013
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<rdf:RDF xmlns:rdf  = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+         xmlns:rdfs = "http://www.w3.org/2000/01/rdf-schema#"
+         xmlns:foo  = "http://example.org/foo">
+
+<foo:bar>
+  <foo:p1>hello there</foo:p1>
+</foo:bar>
+ 
+
+</rdf:RDF>
+
+

Added: jena/Experimental/new-test/src/test/resources/regression/testModelEquals/4-1.rdf
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/regression/testModelEquals/4-1.rdf?rev=1517755&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/regression/testModelEquals/4-1.rdf (added)
+++ jena/Experimental/new-test/src/test/resources/regression/testModelEquals/4-1.rdf Tue Aug 27 06:01:01 2013
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<rdf:RDF xmlns:rdf  = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+         xmlns:rdfs = "http://www.w3.org/2000/01/rdf-schema#"
+         xmlns:foo  = "http://example.org/foo">
+
+<foo:bar>
+  <foo:p1 rdf:parseType="daml:collection">
+    <foo:mem rdf:about="m1"/>
+    <foo:mem rdf:about="m2">
+       <foo:bar>foobar</foo:bar>
+    </foo:mem>
+    <foo:mem rdf:about="m2">
+      <foo:r rdf:parseType="daml:collection">
+        <foo:mem rdf:about="m3"/>
+        <foo:mem rdf:about="m4">
+          <foo:q>barfoo</foo:q>
+        </foo:mem>
+      </foo:r>
+    </foo:mem>
+  </foo:p1>
+</foo:bar>
+ 
+
+</rdf:RDF>
+
+

Added: jena/Experimental/new-test/src/test/resources/regression/testModelEquals/4-2.rdf
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/regression/testModelEquals/4-2.rdf?rev=1517755&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/regression/testModelEquals/4-2.rdf (added)
+++ jena/Experimental/new-test/src/test/resources/regression/testModelEquals/4-2.rdf Tue Aug 27 06:01:01 2013
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<rdf:RDF xmlns:rdf  = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+         xmlns:rdfs = "http://www.w3.org/2000/01/rdf-schema#"
+         xmlns:foo  = "http://example.org/foo">
+
+<foo:bar>
+  <foo:p1 rdf:parseType="daml:collection">
+    <foo:mem rdf:about="m1"/>
+    <foo:mem rdf:about="m2">
+       <foo:bar>foobar</foo:bar>
+    </foo:mem>
+    <foo:mem rdf:about="m2">
+      <foo:r rdf:parseType="daml:collection">
+        <foo:mem rdf:about="m3"/>
+        <foo:mem rdf:about="m4">
+          <foo:q>barfoo</foo:q>
+        </foo:mem>
+      </foo:r>
+    </foo:mem>
+  </foo:p1>
+</foo:bar>
+ 
+
+</rdf:RDF>
+
+

Added: jena/Experimental/new-test/src/test/resources/regression/testModelEquals/5-1.rdf
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/regression/testModelEquals/5-1.rdf?rev=1517755&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/regression/testModelEquals/5-1.rdf (added)
+++ jena/Experimental/new-test/src/test/resources/regression/testModelEquals/5-1.rdf Tue Aug 27 06:01:01 2013
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<rdf:RDF xmlns:rdf  = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+         xmlns:rdfs = "http://www.w3.org/2000/01/rdf-schema#"
+         xmlns:foo  = "http://example.org/foo">
+
+<foo:bar>
+  <foo:p1>hello there</foo:p1>
+  <foo:p1 rdf:parseType="Resource"/>
+</foo:bar>
+ 
+
+</rdf:RDF>
+
+

Added: jena/Experimental/new-test/src/test/resources/regression/testModelEquals/5-2.rdf
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/regression/testModelEquals/5-2.rdf?rev=1517755&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/regression/testModelEquals/5-2.rdf (added)
+++ jena/Experimental/new-test/src/test/resources/regression/testModelEquals/5-2.rdf Tue Aug 27 06:01:01 2013
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<rdf:RDF xmlns:rdf  = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+         xmlns:rdfs = "http://www.w3.org/2000/01/rdf-schema#"
+         xmlns:foo  = "http://example.org/foo">
+
+<foo:bar>
+  <foo:p1>hello there</foo:p1>
+</foo:bar>
+<foo:bar/>
+ 
+
+</rdf:RDF>
+
+

Added: jena/Experimental/new-test/src/test/resources/regression/testModelEquals/6-1.rdf
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/regression/testModelEquals/6-1.rdf?rev=1517755&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/regression/testModelEquals/6-1.rdf (added)
+++ jena/Experimental/new-test/src/test/resources/regression/testModelEquals/6-1.rdf Tue Aug 27 06:01:01 2013
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<rdf:RDF xmlns:rdf  = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+         xmlns:rdfs = "http://www.w3.org/2000/01/rdf-schema#"
+         xmlns:foo  = "http://example.org/foo">
+
+<foo:bar>
+  <foo:p1 rdf:parseType="daml:collection">
+    <foo:mem rdf:about="m1"/>
+    <foo:mem rdf:about="m2">
+       <foo:bar>foobar</foo:bar>
+    </foo:mem>
+    <foo:mem rdf:about="m2">
+      <foo:r rdf:parseType="daml:collection">
+        <foo:mem rdf:about="m3"/>
+        <foo:mem rdf:about="m4">
+          <foo:q>barfoo</foo:q>
+        </foo:mem>
+        <rdf:Description/>
+      </foo:r>
+    </foo:mem>
+  </foo:p1>
+</foo:bar>
+ 
+
+</rdf:RDF>
+
+

Added: jena/Experimental/new-test/src/test/resources/regression/testModelEquals/6-2.rdf
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/regression/testModelEquals/6-2.rdf?rev=1517755&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/regression/testModelEquals/6-2.rdf (added)
+++ jena/Experimental/new-test/src/test/resources/regression/testModelEquals/6-2.rdf Tue Aug 27 06:01:01 2013
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<rdf:RDF xmlns:rdf  = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+         xmlns:rdfs = "http://www.w3.org/2000/01/rdf-schema#"
+         xmlns:foo  = "http://example.org/foo">
+
+<foo:bar>
+  <foo:p1 rdf:parseType="daml:collection">
+    <foo:mem rdf:about="m1"/>
+    <foo:mem rdf:about="m2">
+       <foo:bar>foobar</foo:bar>
+    </foo:mem>
+    <foo:mem rdf:about="m2">
+      <foo:r rdf:parseType="daml:collection">
+        <foo:mem rdf:about="m3"/>
+        <foo:mem rdf:about="m4">
+          <foo:q>barfoo</foo:q>
+        </foo:mem>
+      </foo:r>
+    </foo:mem>
+    <rdf:Description/>
+  </foo:p1>
+</foo:bar>
+ 
+
+</rdf:RDF>
+
+

Added: jena/Experimental/new-test/src/test/resources/regression/testModelEquals/7-1.nt
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/regression/testModelEquals/7-1.nt?rev=1517755&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/regression/testModelEquals/7-1.nt (added)
+++ jena/Experimental/new-test/src/test/resources/regression/testModelEquals/7-1.nt Tue Aug 27 06:01:01 2013
@@ -0,0 +1,5 @@
+_:a <http://test/p> _:b .
+_:b <http://test/p> _:c .
+_:c <http://test/p> _:a .
+
+

Added: jena/Experimental/new-test/src/test/resources/regression/testModelEquals/7-2.nt
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/regression/testModelEquals/7-2.nt?rev=1517755&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/regression/testModelEquals/7-2.nt (added)
+++ jena/Experimental/new-test/src/test/resources/regression/testModelEquals/7-2.nt Tue Aug 27 06:01:01 2013
@@ -0,0 +1,5 @@
+_:c <http://test/p> _:b .
+_:b <http://test/p> _:a .
+_:a <http://test/p> _:c .
+
+

Added: jena/Experimental/new-test/src/test/resources/regression/testModelEquals/8-1.nt
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/regression/testModelEquals/8-1.nt?rev=1517755&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/regression/testModelEquals/8-1.nt (added)
+++ jena/Experimental/new-test/src/test/resources/regression/testModelEquals/8-1.nt Tue Aug 27 06:01:01 2013
@@ -0,0 +1,5 @@
+_:a <http://test/p> _:b .
+_:b <http://test/p> _:c .
+_:c <http://test/p> _:a .
+
+

Added: jena/Experimental/new-test/src/test/resources/regression/testModelEquals/8-2.nt
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/regression/testModelEquals/8-2.nt?rev=1517755&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/regression/testModelEquals/8-2.nt (added)
+++ jena/Experimental/new-test/src/test/resources/regression/testModelEquals/8-2.nt Tue Aug 27 06:01:01 2013
@@ -0,0 +1,5 @@
+_:a <http://test/p> _:b .
+_:b <http://test/p> _:c .
+_:c <http://test/p> _:b .
+
+

Added: jena/Experimental/new-test/src/test/resources/regression/testModelEquals/README_LICENSE
URL: http://svn.apache.org/viewvc/jena/Experimental/new-test/src/test/resources/regression/testModelEquals/README_LICENSE?rev=1517755&view=auto
==============================================================================
--- jena/Experimental/new-test/src/test/resources/regression/testModelEquals/README_LICENSE (added)
+++ jena/Experimental/new-test/src/test/resources/regression/testModelEquals/README_LICENSE Tue Aug 27 06:01:01 2013
@@ -0,0 +1,16 @@
+The following statement applied to all files in this directory unless otherwise noted:
+
+   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.