NIHVIVO-2254 Simplify the unit tests for IndividualFiltering

This commit is contained in:
j2blake 2011-04-01 19:32:51 +00:00
parent 81c48b9fdd
commit c0d461c64a
5 changed files with 186 additions and 5879 deletions

View file

@ -1,14 +1,7 @@
# $This file is distributed under the terms of the license in /doc/license.txt$
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix bib: <http://purl.org/ontology/bibo/> .
@prefix core: <http://vivoweb.org/ontology/core#> .
@prefix mydomain: <http://vivo.mydomain.edu/individual/> .
@prefix vitro: <http://vitro.mannlib.cornell.edu/ns/vitro/0.7#> .
@prefix role: <http://vitro.mannlib.cornell.edu/ns/vitro/role#> .
### This file is for the test IndividualFilteringTest.java.
@ -16,90 +9,82 @@
# Bozo
#
mydomain:bozo
a foaf:Person ;
a mydomain:publicClass ;
foaf:firstName "Bozo" ;
foaf:lastName "Person" ;
core:hrJobTitle "Clown" ;
core:primaryEmail "bozo@Comedy.com" ;
core:phoneNumber "555-9999" ;
core:email "bozo@clowncollege.edu";
mydomain:publicDataProperty "public info" ;
mydomain:selfDataProperty "self info" ;
mydomain:editorDataProperty "editor info" ;
mydomain:curatorDataProperty "curator info" ;
mydomain:dbaDataProperty "dba info" ;
mydomain:hiddenDataProperty "hidden info" ;
core:editorOf mydomain:publicObject ;
core:editorOf mydomain:selfObject ;
core:editorOf mydomain:editorObject ;
core:editorOf mydomain:curatorObject ;
core:editorOf mydomain:dbaObject ;
core:editorOf mydomain:hiddenObject ;
mydomain:publicObjectProperty mydomain:publicObject ;
mydomain:publicObjectProperty mydomain:selfObject ;
mydomain:publicObjectProperty mydomain:editorObject ;
mydomain:publicObjectProperty mydomain:curatorObject ;
mydomain:publicObjectProperty mydomain:dbaObject ;
mydomain:publicObjectProperty mydomain:hiddenObject ;
core:roleIn mydomain:publicObject ;
core:roleIn mydomain:selfObject ;
core:roleIn mydomain:editorObject ;
core:roleIn mydomain:curatorObject ;
core:roleIn mydomain:dbaObject ;
core:roleIn mydomain:hiddenObject ;
mydomain:selfObjectProperty mydomain:publicObject ;
mydomain:selfObjectProperty mydomain:selfObject ;
mydomain:selfObjectProperty mydomain:editorObject ;
mydomain:selfObjectProperty mydomain:curatorObject ;
mydomain:selfObjectProperty mydomain:dbaObject ;
mydomain:selfObjectProperty mydomain:hiddenObject ;
core:roleOf mydomain:publicObject ;
core:roleOf mydomain:selfObject ;
core:roleOf mydomain:editorObject ;
core:roleOf mydomain:curatorObject ;
core:roleOf mydomain:dbaObject ;
core:roleOf mydomain:hiddenObject ;
mydomain:editorObjectProperty mydomain:publicObject ;
mydomain:editorObjectProperty mydomain:selfObject ;
mydomain:editorObjectProperty mydomain:editorObject ;
mydomain:editorObjectProperty mydomain:curatorObject ;
mydomain:editorObjectProperty mydomain:dbaObject ;
mydomain:editorObjectProperty mydomain:hiddenObject ;
core:partOf mydomain:publicObject ;
core:partOf mydomain:selfObject ;
core:partOf mydomain:editorObject ;
core:partOf mydomain:curatorObject ;
core:partOf mydomain:dbaObject ;
core:partOf mydomain:hiddenObject ;
mydomain:curatorObjectProperty mydomain:publicObject ;
mydomain:curatorObjectProperty mydomain:selfObject ;
mydomain:curatorObjectProperty mydomain:editorObject ;
mydomain:curatorObjectProperty mydomain:curatorObject ;
mydomain:curatorObjectProperty mydomain:dbaObject ;
mydomain:curatorObjectProperty mydomain:hiddenObject ;
core:offers mydomain:publicObject ;
core:offers mydomain:selfObject ;
core:offers mydomain:editorObject ;
core:offers mydomain:curatorObject ;
core:offers mydomain:dbaObject ;
core:offers mydomain:hiddenObject ;
mydomain:dbaObjectProperty mydomain:publicObject ;
mydomain:dbaObjectProperty mydomain:selfObject ;
mydomain:dbaObjectProperty mydomain:editorObject ;
mydomain:dbaObjectProperty mydomain:curatorObject ;
mydomain:dbaObjectProperty mydomain:dbaObject ;
mydomain:dbaObjectProperty mydomain:hiddenObject ;
core:featuredIn mydomain:publicObject ;
core:featuredIn mydomain:selfObject ;
core:featuredIn mydomain:editorObject ;
core:featuredIn mydomain:curatorObject ;
core:featuredIn mydomain:dbaObject ;
core:featuredIn mydomain:hiddenObject ;
mydomain:hiddenObjectProperty mydomain:publicObject ;
mydomain:hiddenObjectProperty mydomain:selfObject ;
mydomain:hiddenObjectProperty mydomain:editorObject ;
mydomain:hiddenObjectProperty mydomain:curatorObject ;
mydomain:hiddenObjectProperty mydomain:dbaObject ;
mydomain:hiddenObjectProperty mydomain:hiddenObject ;
.
#
# public Homepage
#
mydomain:publicHomepage
a foaf:Document ;
rdfs:label "public homepage" ;
.
#
# Objects of object properties
#
mydomain:publicObject
a core:Student ;
a mydomain:publicClass ;
rdfs:label "public file" ;
.
mydomain:selfObject
a core:Presentation ;
a mydomain:selfClass ;
rdfs:label "self file" ;
.
mydomain:editorObject
a core:SeminarSeries ;
a mydomain:editorClass ;
rdfs:label "editor file" ;
.
mydomain:curatorObject
a core:Video ;
a mydomain:curatorClass ;
rdfs:label "curator file" ;
.
mydomain:dbaObject
a core:ClinicalRole ;
a mydomain:dbaClass ;
rdfs:label "dba file" ;
.
mydomain:hiddenObject
a core:Facility ;
a mydomain:hiddenClass ;
rdfs:label "hidden file" ;
.

View file

@ -1,11 +1,6 @@
# $This file is distributed under the terms of the license in /doc/license.txt$
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix bib: <http://purl.org/ontology/bibo/> .
@prefix core: <http://vivoweb.org/ontology/core#> .
@prefix mydomain: <http://vivo.mydomain.edu/individual/> .
@prefix vitro: <http://vitro.mannlib.cornell.edu/ns/vitro/0.7#> .
@prefix role: <http://vitro.mannlib.cornell.edu/ns/vitro/role#> .
@ -14,31 +9,100 @@
### This file is for the test IndividualFilteringTest.java.
#
# restrict the data properties.
# create the data properties
#
foaf:lastName vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public .
foaf:firstName vitro:hiddenFromDisplayBelowRoleLevelAnnot role:selfEditor .
core:email vitro:hiddenFromDisplayBelowRoleLevelAnnot role:editor .
core:hrJobTitle vitro:hiddenFromDisplayBelowRoleLevelAnnot role:curator .
core:phoneNumber vitro:hiddenFromDisplayBelowRoleLevelAnnot role:dbAdmin .
core:primaryEmail vitro:hiddenFromDisplayBelowRoleLevelAnnot role:nobody .
mydomain:publicDataProperty
a owl:DatatypeProperty ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
.
mydomain:selfDataProperty
a owl:DatatypeProperty ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:selfEditor ;
.
mydomain:editorDataProperty
a owl:DatatypeProperty ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:editor ;
.
mydomain:curatorDataProperty
a owl:DatatypeProperty ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:curator ;
.
mydomain:dbaDataProperty
a owl:DatatypeProperty ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:dbAdmin ;
.
mydomain:hiddenDataProperty
a owl:DatatypeProperty ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:nobody ;
.
#
# create the object properties
#
mydomain:publicObjectProperty
a owl:ObjectProperty ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
.
mydomain:selfObjectProperty
a owl:ObjectProperty ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:selfEditor ;
.
mydomain:editorObjectProperty
a owl:ObjectProperty ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:editor ;
.
mydomain:curatorObjectProperty
a owl:ObjectProperty ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:curator ;
.
mydomain:dbaObjectProperty
a owl:ObjectProperty ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:dbAdmin ;
.
mydomain:hiddenObjectProperty
a owl:ObjectProperty ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:nobody ;
.
#
# restrict the object properties.
# create the object classes
#
core:editorOf vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public .
core:roleIn vitro:hiddenFromDisplayBelowRoleLevelAnnot role:selfEditor .
core:roleOf vitro:hiddenFromDisplayBelowRoleLevelAnnot role:editor .
core:partOf vitro:hiddenFromDisplayBelowRoleLevelAnnot role:curator .
core:offers vitro:hiddenFromDisplayBelowRoleLevelAnnot role:dbAdmin .
core:featuredIn vitro:hiddenFromDisplayBelowRoleLevelAnnot role:nobody .
#
# restrict the classes of the objects.
#
core:Student vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public .
core:Presentation vitro:hiddenFromDisplayBelowRoleLevelAnnot role:selfEditor .
core:SeminarSeries vitro:hiddenFromDisplayBelowRoleLevelAnnot role:editor .
core:Video vitro:hiddenFromDisplayBelowRoleLevelAnnot role:curator .
core:ClinicalRole vitro:hiddenFromDisplayBelowRoleLevelAnnot role:dbAdmin .
core:Facility vitro:hiddenFromDisplayBelowRoleLevelAnnot role:nobody .
mydomain:publicClass
a owl:Class ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
.
mydomain:selfClass
a owl:Class ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:selfEditor ;
.
mydomain:editorClass
a owl:Class ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:editor ;
.
mydomain:curatorClass
a owl:Class ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:curator ;
.
mydomain:dbaClass
a owl:Class ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:dbAdmin ;
.
mydomain:hiddenClass
a owl:Class ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:nobody ;
.

View file

@ -49,7 +49,19 @@ import edu.cornell.mannlib.vitro.webapp.dao.jena.OntModelSelectorImpl;
import edu.cornell.mannlib.vitro.webapp.dao.jena.WebappDaoFactoryJena;
/**
* TODO
* Test the filtering of IndividualFiltering.
*
* There are 6 levels of data hiding - public, selfEditor, editor, curator,
* dbAdmin and nobody.
*
* The data files for this test describe an Individual with 6 data properties,
* each with a different hiding level, and 36 object properties, showing all
* combinations of hiding levels for the property and for the class of the
* object.
*
* There is a flag in HiddenFromDisplayBelowRoleLevelFilter which
* enables/disables filtering based on the class of the object. These tests
* should work regardless of how that flag is set.
*/
@RunWith(value = Parameterized.class)
public class IndividualFilteringTest extends AbstractTestClass {
@ -61,11 +73,9 @@ public class IndividualFilteringTest extends AbstractTestClass {
// ----------------------------------------------------------------------
/**
* Files that will create the TBOX.
* Where the ontology statements are stored for this test.
*/
private static final String TBOX_VITRO_CORE_FILENAME = "vitro-0.7.owl";
private static final String TBOX_VIVO_CORE_FILENAME = "vivo-core-1.2.owl";
private static final String TBOX_ANNOTATIONS_FILENAME = "IndividualFilteringTest-TBoxAnnotations.n3";
private static final String TBOX_DATA_FILENAME = "IndividualFilteringTest-TBoxAnnotations.n3";
/**
* Where the model statements are stored for this test.
@ -73,20 +83,24 @@ public class IndividualFilteringTest extends AbstractTestClass {
private static final String ABOX_DATA_FILENAME = "IndividualFilteringTest-Abox.n3";
/**
* The individual we are reading.
* The domain where all of the objects and properties are defined.
*/
private static final String NS = "http://vivo.mydomain.edu/individual/";
private static final String INDIVIDUAL_URI = NS + "bozo";
/**
* The individual we are reading.
*/
private static final String INDIVIDUAL_URI = mydomain("bozo");
/**
* Data properties to look for.
*/
private static final String PUBLIC_DATA_PROPERTY = "http://xmlns.com/foaf/0.1/lastName";
private static final String SELF_DATA_PROPERTY = "http://xmlns.com/foaf/0.1/firstName";
private static final String EDITOR_DATA_PROPERTY = "http://vivoweb.org/ontology/core#email";
private static final String CURATOR_DATA_PROPERTY = "http://vivoweb.org/ontology/core#hrJobTitle";
private static final String DBA_DATA_PROPERTY = "http://vivoweb.org/ontology/core#phoneNumber";
private static final String HIDDEN_DATA_PROPERTY = "http://vivoweb.org/ontology/core#primaryEmail";
private static final String PUBLIC_DATA_PROPERTY = mydomain("publicDataProperty");
private static final String SELF_DATA_PROPERTY = mydomain("selfDataProperty");
private static final String EDITOR_DATA_PROPERTY = mydomain("editorDataProperty");
private static final String CURATOR_DATA_PROPERTY = mydomain("curatorDataProperty");
private static final String DBA_DATA_PROPERTY = mydomain("dbaDataProperty");
private static final String HIDDEN_DATA_PROPERTY = mydomain("hiddenDataProperty");
private static final String[] DATA_PROPERTIES = { PUBLIC_DATA_PROPERTY,
SELF_DATA_PROPERTY, EDITOR_DATA_PROPERTY, CURATOR_DATA_PROPERTY,
DBA_DATA_PROPERTY, HIDDEN_DATA_PROPERTY };
@ -94,12 +108,12 @@ public class IndividualFilteringTest extends AbstractTestClass {
/**
* Object properties to look for.
*/
private static final String PUBLIC_OBJECT_PROPERTY = "http://vivoweb.org/ontology/core#editorOf";
private static final String SELF_OBJECT_PROPERTY = "http://vivoweb.org/ontology/core#roleIn";
private static final String EDITOR_OBJECT_PROPERTY = "http://vivoweb.org/ontology/core#roleOf";
private static final String CURATOR_OBJECT_PROPERTY = "http://vivoweb.org/ontology/core#partOf";
private static final String DBA_OBJECT_PROPERTY = "http://vivoweb.org/ontology/core#offers";
private static final String HIDDEN_OBJECT_PROPERTY = "http://vivoweb.org/ontology/core#featuredIn";
private static final String PUBLIC_OBJECT_PROPERTY = mydomain("publicObjectProperty");
private static final String SELF_OBJECT_PROPERTY = mydomain("selfObjectProperty");
private static final String EDITOR_OBJECT_PROPERTY = mydomain("editorObjectProperty");
private static final String CURATOR_OBJECT_PROPERTY = mydomain("curatorObjectProperty");
private static final String DBA_OBJECT_PROPERTY = mydomain("dbaObjectProperty");
private static final String HIDDEN_OBJECT_PROPERTY = mydomain("hiddenObjectProperty");
private static final String[] OBJECT_PROPERTIES = { PUBLIC_OBJECT_PROPERTY,
SELF_OBJECT_PROPERTY, EDITOR_OBJECT_PROPERTY,
CURATOR_OBJECT_PROPERTY, DBA_OBJECT_PROPERTY,
@ -108,12 +122,12 @@ public class IndividualFilteringTest extends AbstractTestClass {
/**
* Objects to look for.
*/
private static final String PUBLIC_OBJECT = "http://vivo.mydomain.edu/individual/publicObject";
private static final String SELF_OBJECT = "http://vivo.mydomain.edu/individual/selfObject";
private static final String EDITOR_OBJECT = "http://vivo.mydomain.edu/individual/editorObject";
private static final String CURATOR_OBJECT = "http://vivo.mydomain.edu/individual/curatorObject";
private static final String DBA_OBJECT = "http://vivo.mydomain.edu/individual/dbaObject";
private static final String HIDDEN_OBJECT = "http://vivo.mydomain.edu/individual/hiddenObject";
private static final String PUBLIC_OBJECT = mydomain("publicObject");
private static final String SELF_OBJECT = mydomain("selfObject");
private static final String EDITOR_OBJECT = mydomain("editorObject");
private static final String CURATOR_OBJECT = mydomain("curatorObject");
private static final String DBA_OBJECT = mydomain("dbaObject");
private static final String HIDDEN_OBJECT = mydomain("hiddenObject");
private static final String[] OBJECTS = { PUBLIC_OBJECT, SELF_OBJECT,
EDITOR_OBJECT, CURATOR_OBJECT, DBA_OBJECT, HIDDEN_OBJECT };
@ -125,6 +139,10 @@ public class IndividualFilteringTest extends AbstractTestClass {
return data;
}
private static String mydomain(String localname) {
return NS + localname;
}
private static TestData selfTestData() {
TestData data = new TestData(SELF);
data.addExpectedDataProperties(PUBLIC_DATA_PROPERTY, SELF_DATA_PROPERTY);
@ -193,9 +211,7 @@ public class IndividualFilteringTest extends AbstractTestClass {
OntModel ontModel = ModelFactory
.createOntologyModel(OntModelSpec.OWL_DL_MEM);
readFileIntoModel(ontModel, TBOX_VITRO_CORE_FILENAME, "RDF/XML");
readFileIntoModel(ontModel, TBOX_VIVO_CORE_FILENAME, "RDF/XML");
readFileIntoModel(ontModel, TBOX_ANNOTATIONS_FILENAME, "N3");
readFileIntoModel(ontModel, TBOX_DATA_FILENAME, "N3");
return ontModel;
}

View file

@ -1,285 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rdf [
<!ENTITY vitro "http://vitro.mannlib.cornell.edu/ns/vitro/0.7#">
<!ENTITY list "http://vitro.mannlib.cornell.edu/ns/vitro/0.7#"> ]>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:vitro="&vitro;"
>
<!-- Vitro Application Ontology version 0.7 -->
<!-- This ontology is used internally by the Vitro 0.7 Java application. It is not user viewable or editable: editing this file could have various unintended consequences -->
<owl:Ontology rdf:about="http://vitro.mannlib.cornell.edu/ns/vitro/0.7">
<rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Vitro internals</rdfs:label>
<owl:versionInfo rdf:datatype="http://www.w3.org/2001/XMLSchema#decimal">0.7</owl:versionInfo>
</owl:Ontology>
<!-- general Vitro constructs -->
<owl:AnnotationProperty rdf:about="&vitro;descriptionAnnot"/>
<owl:DatatypeProperty rdf:about="&vitro;displayLimit"/>
<owl:AnnotationProperty rdf:about="&vitro;displayLimitAnnot"/>
<owl:DatatypeProperty rdf:about="&vitro;displayRank"/>
<owl:AnnotationProperty rdf:about="&vitro;displayRankAnnot"/>
<owl:AnnotationProperty rdf:about="&vitro;exampleAnnot"/>
<owl:DatatypeProperty rdf:about="&vitro;hidden"/>
<owl:AnnotationProperty rdf:about="&vitro;hiddenAnnot"/>
<owl:AnnotationProperty rdf:about="&vitro;modTimeAnnot"/>
<owl:AnnotationProperty rdf:about="&vitro;shortDefAnnot"/>
<owl:AnnotationProperty rdf:about="&vitro;oldId"/>
<!-- VClassGroup-related constructs -->
<owl:Class rdf:about="&vitro;ClassGroup"/>
<!-- VClass-related constructs -->
<owl:AnnotationProperty rdf:about="&vitro;harvestId"/>
<owl:AnnotationProperty rdf:about="&vitro;inClassGroup"/>
<!-- ObjectProperty-related constructs -->
<owl:AnnotationProperty rdf:about="&vitro;fullPropertyNameAnnot"/>
<owl:AnnotationProperty rdf:about="&vitro;individualSortFieldAnnot"/>
<owl:AnnotationProperty rdf:about="&vitro;individualSortDirectionAnnot"/>
<!-- Tab-related constructs -->
<!-- externalID-related constructs -->
<owl:AnnotationProperty rdf:about="&vitro;isExternalId"/>
<owl:AnnotationProperty rdf:about="&vitro;originalId"/>
<!-- Keyword related -->
<owl:Class rdf:about="&vitro;Keyword"/>
<owl:DatatypeProperty rdf:about="&vitro;keywordStem"/>
<owl:DatatypeProperty rdf:about="&vitro;keywordType"/>
<owl:DatatypeProperty rdf:about="&vitro;keywordSource"/>
<owl:DatatypeProperty rdf:about="&vitro;keywordComments"/>
<owl:DatatypeProperty rdf:about="&vitro;keywordOrigin"/>
<owl:Class rdf:about="&vitro;KeywordRelation"/>
<owl:ObjectProperty rdf:about="&vitro;involvesIndividual"/>
<owl:ObjectProperty rdf:about="&vitro;involvesKeyword"/>
<owl:DatatypeProperty rdf:about="&vitro;keywordMode"/>
<!-- Link related -->
<owl:ObjectProperty rdf:about="&vitro;primaryLink"/>
<owl:ObjectProperty rdf:about="&vitro;additionalLink"/>
<owl:Class rdf:about="&vitro;Link"/>
<owl:DatatypeProperty rdf:about="&vitro;linkAnchor"/>
<owl:DatatypeProperty rdf:about="&vitro;linkURL"/>
<!-- other Individual-related -->
<owl:DatatypeProperty rdf:about="&vitro;curatorNote">
<rdfs:label xml:lang="en">curation note</rdfs:label>
</owl:DatatypeProperty>
<owl:DatatypeProperty rdf:about="&vitro;blurb"/>
<owl:DatatypeProperty rdf:about="&vitro;citation"/>
<owl:DatatypeProperty rdf:about="&vitro;description"/>
<owl:DatatypeProperty rdf:about="&vitro;imageThumb"/>
<owl:DatatypeProperty rdf:about="&vitro;imageFile"/>
<owl:DatatypeProperty rdf:about="&vitro;modTime"/>
<owl:DatatypeProperty rdf:about="&vitro;moniker"/>
<owl:DatatypeProperty rdf:about="&vitro;sunrise"/>
<owl:DatatypeProperty rdf:about="&vitro;sunset"/>
<owl:DatatypeProperty rdf:about="&vitro;timekey"/>
<!-- portal flag classes -->
<owl:Class rdf:about="&vitro;Flag1Value0Thing"/>
<owl:Class rdf:about="&vitro;Flag1Value1Thing"/>
<owl:Class rdf:about="&vitro;Flag1Value2Thing"/>
<owl:Class rdf:about="&vitro;Flag1Value3Thing"/>
<owl:Class rdf:about="&vitro;Flag1Value4Thing"/>
<owl:Class rdf:about="&vitro;Flag1Value5Thing"/>
<owl:Class rdf:about="&vitro;Flag1Value6Thing"/>
<owl:Class rdf:about="&vitro;Flag1Value7Thing"/>
<owl:Class rdf:about="&vitro;Flag1Value8Thing"/>
<owl:Class rdf:about="&vitro;Flag1Value9Thing"/>
<owl:Class rdf:about="&vitro;Flag1Value10Thing"/>
<owl:Class rdf:about="&vitro;Flag1Value11Thing"/>
<owl:Class rdf:about="&vitro;Flag1Value12Thing"/>
<owl:Class rdf:about="&vitro;Flag1Value13Thing"/>
<owl:Class rdf:about="&vitro;Flag1Value14Thing"/>
<owl:Class rdf:about="&vitro;Flag1Value15Thing"/>
<owl:Class rdf:about="&vitro;Flag1Value16Thing"/>
<owl:Class rdf:about="&vitro;Flag1Value17Thing"/>
<owl:Class rdf:about="&vitro;Flag1Value18Thing"/>
<owl:Class rdf:about="&vitro;Flag1Value19Thing"/>
<owl:Class rdf:about="&vitro;Flag1Value20Thing"/>
<!-- Portal-related constructs -->
<owl:Class rdf:about="&vitro;Portal"/>
<owl:ObjectProperty rdf:about="&vitro;rootTab"/>
<owl:DatatypeProperty rdf:about="&vitro;themeDir"/>
<owl:DatatypeProperty rdf:about="&vitro;bannerImage"/>
<owl:DatatypeProperty rdf:about="&vitro;contactMail"/>
<owl:DatatypeProperty rdf:about="&vitro;shortHand"/>
<owl:DatatypeProperty rdf:about="&vitro;aboutText"/>
<owl:DatatypeProperty rdf:about="&vitro;acknowledgeText"/>
<owl:DatatypeProperty rdf:about="&vitro;bannerWidth"/>
<owl:DatatypeProperty rdf:about="&vitro;bannerHeight"/>
<owl:DatatypeProperty rdf:about="&vitro;flag2Numeric"/>
<owl:DatatypeProperty rdf:about="&vitro;flag3Numeric"/>
<owl:DatatypeProperty rdf:about="&vitro;copyrightURL"/>
<owl:DatatypeProperty rdf:about="&vitro;copyrightAnchor"/>
<owl:DatatypeProperty rdf:about="&vitro;rootBreadCrumbURL"/>
<owl:DatatypeProperty rdf:about="&vitro;rootBreadCrumbAnchor"/>
<owl:DatatypeProperty rdf:about="&vitro;logotypeImage"/>
<owl:DatatypeProperty rdf:about="&vitro;logotypeHeight"/>
<owl:DatatypeProperty rdf:about="&vitro;logotypeWidth"/>
<owl:DatatypeProperty rdf:about="&vitro;imageThumbWidth"/>
<owl:DatatypeProperty rdf:about="&vitro;flag1SearchFiltering"/>
<owl:DatatypeProperty rdf:about="&vitro;flag2SearchFiltering"/>
<owl:DatatypeProperty rdf:about="&vitro;flag3SearchFiltering"/>
<owl:DatatypeProperty rdf:about="&vitro;urlPrefix"/>
<!-- Tab-related constructs -->
<owl:Class rdf:about="&vitro;Tab"/>
<owl:Class rdf:about="&vitro;SubcollectionCategory">
<rdfs:subClassOf rdf:resource="&vitro;Tab"/>
</owl:Class>
<owl:Class rdf:about="&vitro;Subcollection">
<rdfs:subClassOf rdf:resource="&vitro;Tab"/>
</owl:Class>
<owl:Class rdf:about="&vitro;Collection">
<rdfs:subClassOf rdf:resource="&vitro;Tab"/>
</owl:Class>
<owl:Class rdf:about="&vitro;SecondaryTab">
<rdfs:subClassOf rdf:resource="&vitro;Tab"/>
</owl:Class>
<owl:Class rdf:about="&vitro;PrimaryTabContent">
<rdfs:subClassOf rdf:resource="&vitro;Tab"/>
</owl:Class>
<owl:Class rdf:about="&vitro;PrimaryTab">
<rdfs:subClassOf rdf:resource="&vitro;Tab"/>
</owl:Class>
<owl:Class rdf:about="&vitro;AutoLinkableTab">
<rdfs:subClassOf rdf:resource="&vitro;Tab"/>
</owl:Class>
<owl:Class rdf:about="&vitro;ManuallyLinkableTab">
<rdfs:subClassOf rdf:resource="&vitro;Tab"/>
</owl:Class>
<owl:Class rdf:about="&vitro;MixedTab">
<rdfs:subClassOf rdf:resource="&vitro;AutoLinkableTab"/>
<rdfs:subClassOf rdf:resource="&vitro;ManuallyLinkableTab"/>
</owl:Class>
<owl:DatatypeProperty rdf:about="&vitro;tabCreatorUserId"/>
<owl:DatatypeProperty rdf:about="&vitro;statusId"/>
<owl:DatatypeProperty rdf:about="&vitro;tabBody"/>
<owl:DatatypeProperty rdf:about="&vitro;dayLimit"/>
<owl:DatatypeProperty rdf:about="&vitro;galleryRows"/>
<owl:DatatypeProperty rdf:about="&vitro;galleryCols"/>
<owl:DatatypeProperty rdf:about="&vitro;moreTag"/>
<owl:DatatypeProperty rdf:about="&vitro;imageWidth"/>
<owl:DatatypeProperty rdf:about="&vitro;individualSortDirection"/>
<owl:DatatypeProperty rdf:about="&vitro;individualSortField"/>
<owl:ObjectProperty rdf:about="&vitro;inPortal"/>
<owl:DatatypeProperty rdf:about="&vitro;individualSortField"/>
<owl:DatatypeProperty rdf:about="&vitro;individualSortDirection"/>
<owl:DatatypeProperty rdf:about="&vitro;rssUrl"/>
<owl:DatatypeProperty rdf:about="&vitro;flag2Set"/>
<owl:DatatypeProperty rdf:about="&vitro;flag3Set"/>
<owl:DatatypeProperty rdf:about="&vitro;flag2Mode"/>
<owl:DatatypeProperty rdf:about="&vitro;flag3Mode"/>
<owl:ObjectProperty rdf:about="&vitro;subTabOf"/>
<owl:AnnotationProperty rdf:about="&vitro;autoLinkedToTab"/>
<owl:Class rdf:about="&vitro;TabIndividualRelation"/>
<owl:ObjectProperty rdf:about="&vitro;involvesIndividual"/>
<owl:ObjectProperty rdf:about="&vitro;involvesTab"/>
<!-- Application-related constructs -->
<owl:Class rdf:about="&vitro;Application"/>
<owl:DatatypeProperty rdf:about="&vitro;flag1Name"/>
<owl:DatatypeProperty rdf:about="&vitro;flag2Name"/>
<owl:DatatypeProperty rdf:about="&vitro;flag3Name"/>
<owl:DatatypeProperty rdf:about="&vitro;minSharedPortalId"/>
<owl:DatatypeProperty rdf:about="&vitro;maxSharedPortalId"/>
<owl:DatatypeProperty rdf:about="&vitro;rootLogotypeImage"/>
<owl:DatatypeProperty rdf:about="&vitro;keywordHeading"/>
<owl:DatatypeProperty rdf:about="&vitro;onlyCurrent"/>
<owl:DatatypeProperty rdf:about="&vitro;maxPortalId"/>
<owl:DatatypeProperty rdf:about="&vitro;flag2Values"/>
<owl:DatatypeProperty rdf:about="&vitro;flag1Values"/>
<owl:DatatypeProperty rdf:about="&vitro;flag3Values"/>
<!-- User-related constructs -->
<owl:Class rdf:about="&vitro;User"/>
<owl:DatatypeProperty rdf:about="http://vitro.mannlib.cornell.edu/ns/vitro/0.7#username"/>
<owl:DatatypeProperty rdf:about="http://vitro.mannlib.cornell.edu/ns/vitro/0.7#md5password"/>
<owl:DatatypeProperty rdf:about="http://vitro.mannlib.cornell.edu/ns/vitro/0.7#oldpassword"/>
<owl:DatatypeProperty rdf:about="http://vitro.mannlib.cornell.edu/ns/vitro/0.7#modTime"/>
<owl:DatatypeProperty rdf:about="http://vitro.mannlib.cornell.edu/ns/vitro/0.7#firstTime"/>
<owl:DatatypeProperty rdf:about="http://vitro.mannlib.cornell.edu/ns/vitro/0.7#loginCount"/>
<owl:DatatypeProperty rdf:about="http://vitro.mannlib.cornell.edu/ns/vitro/0.7#roleURI"/>
<!-- Namespace metadata -->
<owl:DatatypeProperty rdf:about="http://vitro.mannlib.cornell.edu/ns/vitro/0.7#namespaceURI"/>
<owl:Class rdf:about="http://vitro.mannlib.cornell.edu/ns/vitro/0.7#Namespace"/>
<!-- additions -->
<rdf:Description rdf:about="http://vitro.mannlib.cornell.edu/ns/vitro/0.7#hiddenFromDisplayBelowRoleLevelAnnot">
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AnnotationProperty"/>
</rdf:Description>
<rdf:Description rdf:about="http://vitro.mannlib.cornell.edu/ns/vitro/0.7#flag1Filtering">
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#DatatypeProperty"/>
</rdf:Description>
<rdf:Description rdf:about="http://vitro.mannlib.cornell.edu/ns/vitro/0.7#forceStubDeletionAnnot">
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AnnotationProperty"/>
</rdf:Description>
<rdf:Description rdf:about="http://vitro.mannlib.cornell.edu/ns/vitro/0.7#offerCreateNewOptionAnnot">
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AnnotationProperty"/>
</rdf:Description>
<rdf:Description rdf:about="http://vitro.mannlib.cornell.edu/ns/vitro/0.7#customShortViewAnnot">
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AnnotationProperty"/>
</rdf:Description>
<rdf:Description rdf:about="http://vitro.mannlib.cornell.edu/ns/vitro/0.7#objectIndividualSortProperty">
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AnnotationProperty"/>
</rdf:Description>
<rdf:Description rdf:about="http://vitro.mannlib.cornell.edu/ns/vitro/0.7#PropertyGroup">
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
</rdf:Description>
<rdf:Description rdf:about="http://vitro.mannlib.cornell.edu/ns/vitro/0.7#customEntryFormAnnot">
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AnnotationProperty"/>
</rdf:Description>
<rdf:Description rdf:about="http://vitro.mannlib.cornell.edu/ns/vitro/0.7#inPropertyGroupAnnot">
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AnnotationProperty"/>
</rdf:Description>
<rdf:Description rdf:about="http://vitro.mannlib.cornell.edu/ns/vitro/0.7#shortDef">
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AnnotationProperty"/>
</rdf:Description>
<rdf:Description rdf:about="http://vitro.mannlib.cornell.edu/ns/vitro/0.7#DependentResource">
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
</rdf:Description>
<rdf:Description rdf:about="http://vitro.mannlib.cornell.edu/ns/vitro/0.7#publicDescriptionAnnot">
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AnnotationProperty"/>
</rdf:Description>
<rdf:Description rdf:about="http://vitro.mannlib.cornell.edu/ns/vitro/0.7#prohibitedFromUpdateBelowRoleLevelAnnot">
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AnnotationProperty"/>
</rdf:Description>
<rdf:Description rdf:about="http://vitro.mannlib.cornell.edu/ns/vitro/0.7#selectFromExistingAnnot">
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AnnotationProperty"/>
</rdf:Description>
<rdf:Description rdf:about="http://vitro.mannlib.cornell.edu/ns/vitro/0.7#customDisplayViewAnnot">
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#AnnotationProperty"/>
</rdf:Description>
</rdf:RDF>