Merge branch 'develop' of https://github.com/vivo-project/VIVO into develop

This commit is contained in:
Holly Mistlebauer 2013-12-08 00:02:10 -05:00
commit 3bd44b3bd5
31 changed files with 688 additions and 2745 deletions

View file

@ -38,10 +38,5 @@ productMods/js/visualization/entitycomparison/jquery_plugins/*
# PROBLEM: Can't find any info on licensing. # PROBLEM: Can't find any info on licensing.
productMods/js/jquery_plugins/jquery.truncator.js productMods/js/jquery_plugins/jquery.truncator.js
# See /doc/3rd-party-licenses.txt for LICENSE file
src/edu/cornell/mannlib/semservices/util/ObjectUtils.java
src/edu/cornell/mannlib/semservices/util/XMLGregorianCalendarConverter.java
src/edu/cornell/mannlib/vitro/webapp/utils/ConceptSearchService/BeanToJsonSerializer.java
# Part of the OpenSocial integration - should this really be under the Apache license? # Part of the OpenSocial integration - should this really be under the Apache license?
themes/wilma/css/openSocial/gadgets.css themes/wilma/css/openSocial/gadgets.css

View file

@ -24,6 +24,9 @@ dwr
ezmorph ezmorph
gson gson
jakarta-jstl jakarta-jstl
jackson-annotations-2.3.0
jackson-core-2.3.0
jackson-databind-2.3.0
jarjar jarjar
jmeter jmeter
joda-time joda-time

View file

@ -0,0 +1 @@
edu.cornell.mannlib.vitro.webapp.reasoner.plugin.DisableSameAs

View file

@ -290,6 +290,7 @@ a#manageLabels {
border-bottom: 1px solid #DDE4E3; border-bottom: 1px solid #DDE4E3;
padding-bottom:1px; padding-bottom:1px;
margin-bottom:8px; margin-bottom:8px;
padding-top:18px;
} }
#individual-info div#contactContainer h3{ #individual-info div#contactContainer h3{
color:#8aa149; color:#8aa149;

View file

@ -18,14 +18,14 @@ $(document).ready(function(){
buildGlobalMap(); buildGlobalMap();
$(this).addClass("selected"); $(this).addClass("selected");
$('a#countryLink').removeClass("selected"); $('a#countryLink').removeClass("selected");
$('a#nyLink').removeClass("selected"); $('a#localLink').removeClass("selected");
}); });
$('a#countryLink').click(function() { $('a#countryLink').click(function() {
buildCountryMap(); buildCountryMap();
$(this).addClass("selected"); $(this).addClass("selected");
$('a#globalLink').removeClass("selected"); $('a#globalLink').removeClass("selected");
$('a#nyLink').removeClass("selected"); $('a#localLink').removeClass("selected");
}); });
$('a#localLink').click(function() { $('a#localLink').click(function() {
@ -369,10 +369,11 @@ $(document).ready(function(){
var html = i18nStrings.currentlyNoResearchers; var html = i18nStrings.currentlyNoResearchers;
$('section#home-geo-focus div#timeIndicatorGeo span').html(html); $('section#home-geo-focus div#timeIndicatorGeo span').html(html);
$('section#home-geo-focus').css("height","175px"); $('section#home-geo-focus').css("height","175px");
$('section#home-geo-focus div#timeIndicator').css("margin-top","50px"); $('section#home-geo-focus div#timeIndicatorGeo').css("margin-top","50px");
$('section#home-geo-focus div#mapGlobal').hide(); $('section#home-geo-focus div#mapGlobal').hide();
$('section#home-geo-focus div#mapCountry').hide(); $('section#home-geo-focus div#mapCountry').hide();
$('section#home-geo-focus div#mapLocal').hide(); $('section#home-geo-focus div#mapLocal').hide();
$('section#home-geo-focus div#mapControls').hide();
} }
else { else {
$.each(results, function() { $.each(results, function() {

View file

@ -60,7 +60,7 @@ $(document).ready(function(){
getFacultyMembers(); getFacultyMembers();
} }
else { else {
individualList = "<p><li>" + i18nStrings.noFacultyFound + "</li></p>"; individualList = "<p><li style='padding-left:1.2em'>" + i18nStrings.noFacultyFound + "</li></p>";
$('div#tempSpacing').hide(); $('div#tempSpacing').hide();
$('div#research-faculty-mbrs ul#facultyThumbs').append(individualList); $('div#research-faculty-mbrs ul#facultyThumbs').append(individualList);
} }
@ -95,7 +95,7 @@ $(document).ready(function(){
}); });
} }
else { else {
individualList = "<p><li>" + i18nStrings.noFacultyFound + "</li></p>"; individualList = "<p><li style='padding-left:1.2em'>" + i18nStrings.noFacultyFound + "</li></p>";
$('div#tempSpacing').hide(); $('div#tempSpacing').hide();
$('div#research-faculty-mbrs ul#facultyThumbs').append(individualList); $('div#research-faculty-mbrs ul#facultyThumbs').append(individualList);
$('div#research-faculty-mbrs ul#facultyThumbs').css("padding", "1.0em 0 0.825em 0.75em"); $('div#research-faculty-mbrs ul#facultyThumbs').css("padding", "1.0em 0 0.825em 0.75em");

View file

@ -61,7 +61,7 @@
<@p.verboseDisplay title /> <@p.verboseDisplay title />
</#if> </#if>
<#list title.statements as statement> <#list title.statements as statement>
<span class="display-title<#if editable>-editable</#if>">${statement.preferredTitle}</span> <span class="display-title<#if editable>-editable<#else>-not-editable</#if>">${statement.preferredTitle}</span>
<@p.editingLinks "${title.localName}" "${title.name}" statement editable title.rangeUri /> <@p.editingLinks "${title.localName}" "${title.name}" statement editable title.rangeUri />
</#list> </#list>
</#if> </#if>
@ -96,6 +96,9 @@
<!-- Research Areas --> <!-- Research Areas -->
<#include "individual-researchAreas.ftl"> <#include "individual-researchAreas.ftl">
<!-- Geographic Focus -->
<#include "individual-geographicFocus.ftl">
<!-- Contact and Webpages --> <!-- Contact and Webpages -->
<div id="contactsWebpages"> <div id="contactsWebpages">
<div id="contactContainer" > <div id="contactContainer" >

View file

@ -69,7 +69,7 @@
<#if title?has_content> <#-- true when the property is in the list, even if not populated (when editing) --> <#if title?has_content> <#-- true when the property is in the list, even if not populated (when editing) -->
<#if (title.statements?size < 1) > <#if (title.statements?size < 1) >
<@p.addLinkWithLabel title editable /> <@p.addLinkWithLabel title editable />
<#else> <#elseif editable>
<h2 id="preferredTitle">${title.name?capitalize!}</h2> <h2 id="preferredTitle">${title.name?capitalize!}</h2>
<@p.verboseDisplay title /> <@p.verboseDisplay title />
</#if> </#if>

View file

@ -141,7 +141,7 @@
</#if> </#if>
</#list> </#list>
<#if !foundClassGroup> <#if !foundClassGroup>
<p><li>${i18n().no_research_content_found}</li></p> <p><li style="padding-left:1.2em">${i18n().no_research_content_found}</li></p>
</#if> </#if>
</ul> </ul>
</section> </section>

View file

@ -952,6 +952,8 @@ local:outputOfConfig a :ObjectPropertyDisplayConfig ;
vitro:displayRankAnnot 80 ; vitro:displayRankAnnot 80 ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ;
vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ;
vitro:selectFromExistingAnnot "true"^^xsd:boolean ;
:propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupoverview> . :propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupoverview> .
local:hasOutputContext a :ConfigContext ; local:hasOutputContext a :ConfigContext ;
@ -966,6 +968,8 @@ local:hasOutputConfig a :ObjectPropertyDisplayConfig ;
vitro:displayRankAnnot 80 ; vitro:displayRankAnnot 80 ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ;
vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ;
vitro:selectFromExistingAnnot "true"^^xsd:boolean ;
:propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupbibliographic> . :propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupbibliographic> .
@ -1145,7 +1149,7 @@ local:eventsForSeriesConfig a :ObjectPropertyDisplayConfig ;
local:eventLocationContext a :ConfigContext ; local:eventLocationContext a :ConfigContext ;
:hasConfiguration local:eventLocationConfig ; :hasConfiguration local:eventLocationConfig ;
:configContextFor <http://purl.obolibrary.org/obo/RO_0001025> ; :configContextFor <http://purl.obolibrary.org/obo/RO_0001025> ; ## located in
:qualifiedByDomain <http://purl.org/NET/c4dm/event.owl#Event> ; :qualifiedByDomain <http://purl.org/NET/c4dm/event.owl#Event> ;
:qualifiedBy vivo:GeographicLocation . :qualifiedBy vivo:GeographicLocation .
@ -1155,11 +1159,13 @@ local:eventLocationConfig a :ObjectPropertyDisplayConfig ;
vitro:displayRankAnnot 30; vitro:displayRankAnnot 30;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ;
vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ;
vitro:selectFromExistingAnnot "true"^^xsd:boolean ;
:propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupaddress> . :propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupaddress> .
local:eventInFacilityContext a :ConfigContext ; local:eventInFacilityContext a :ConfigContext ;
:hasConfiguration local:eventInFacilityConfig ; :hasConfiguration local:eventInFacilityConfig ;
:configContextFor <http://purl.obolibrary.org/obo/RO_0001025> ; :configContextFor <http://purl.obolibrary.org/obo/RO_0001025> ; ## located in
:qualifiedByDomain <http://purl.org/NET/c4dm/event.owl#Event> ; :qualifiedByDomain <http://purl.org/NET/c4dm/event.owl#Event> ;
:qualifiedBy vivo:Facility . :qualifiedBy vivo:Facility .
@ -1169,25 +1175,45 @@ local:eventInFacilityConfig a :ObjectPropertyDisplayConfig ;
vitro:displayRankAnnot 29; vitro:displayRankAnnot 29;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ;
vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ;
vitro:selectFromExistingAnnot "true"^^xsd:boolean ;
:propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupaddress> . :propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupaddress> .
local:organizationLocationContext a :ConfigContext ; local:agentInGeoLocationContext a :ConfigContext ;
:hasConfiguration local:organizationLocationConfig ; :hasConfiguration local:agentInGeoLocationConfig ;
:configContextFor <http://purl.obolibrary.org/obo/RO_0001025> ; :configContextFor <http://purl.obolibrary.org/obo/RO_0001025> ; ## located in
:qualifiedByDomain <http://xmlns.com/foaf/0.1/Organization> ; :qualifiedByDomain <http://xmlns.com/foaf/0.1/Agent> ;
:qualifiedBy vivo:GeographicLocation . :qualifiedBy vivo:GeographicLocation .
local:organizationLocationConfig a :ObjectPropertyDisplayConfig ; local:agentInGeoLocationConfig a :ObjectPropertyDisplayConfig ;
:listViewConfigFile "listViewConfig-default.xml"^^xsd:string ; :listViewConfigFile "listViewConfig-default.xml"^^xsd:string ;
:displayName "geographic location" ; :displayName "geographic location" ;
vitro:displayRankAnnot 30; vitro:displayRankAnnot 30;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ;
vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ;
vitro:selectFromExistingAnnot "true"^^xsd:boolean ;
:propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupaddress> .
local:agentInFacilityContext a :ConfigContext ;
:hasConfiguration local:agentInFacilityConfig ;
:configContextFor <http://purl.obolibrary.org/obo/RO_0001025> ; ## located in
:qualifiedByDomain <http://xmlns.com/foaf/0.1/Agent> ;
:qualifiedBy vivo:Facility .
local:agentInFacilityConfig a :ObjectPropertyDisplayConfig ;
:listViewConfigFile "listViewConfig-default.xml"^^xsd:string ;
:displayName "located in facility" ;
vitro:displayRankAnnot 32;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ;
vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ;
vitro:selectFromExistingAnnot "true"^^xsd:boolean ;
:propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupaddress> . :propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupaddress> .
local:materialEntityInFacilityContext a :ConfigContext ; local:materialEntityInFacilityContext a :ConfigContext ;
:hasConfiguration local:materialEntityInFacilityConfig ; :hasConfiguration local:materialEntityInFacilityConfig ;
:configContextFor <http://purl.obolibrary.org/obo/RO_0001025> ; :configContextFor <http://purl.obolibrary.org/obo/RO_0001025> ; ## located in
:qualifiedByDomain <http://purl.obolibrary.org/obo/BFO_0000040> ; :qualifiedByDomain <http://purl.obolibrary.org/obo/BFO_0000040> ;
:qualifiedBy vivo:Facility . :qualifiedBy vivo:Facility .
@ -1197,6 +1223,8 @@ local:materialEntityInFacilityConfig a :ObjectPropertyDisplayConfig ;
vitro:displayRankAnnot 2; vitro:displayRankAnnot 2;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ;
vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ;
vitro:selectFromExistingAnnot "true"^^xsd:boolean ;
:propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupaddress> . :propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupaddress> .
local:hasRoomContext a :ConfigContext ; local:hasRoomContext a :ConfigContext ;
@ -1208,7 +1236,7 @@ local:hasRoomContext a :ConfigContext ;
local:hasRoomConfig a :ObjectPropertyDisplayConfig ; local:hasRoomConfig a :ObjectPropertyDisplayConfig ;
:listViewConfigFile "listViewConfig-default.xml"^^xsd:string ; :listViewConfigFile "listViewConfig-default.xml"^^xsd:string ;
:displayName "rooms" ; :displayName "rooms" ;
vitro:displayRankAnnot 22; vitro:displayRankAnnot 30;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ;
vitro:selectFromExistingAnnot "true"^^xsd:boolean ; vitro:selectFromExistingAnnot "true"^^xsd:boolean ;
@ -1227,82 +1255,111 @@ local:roomWithinBuildingConfig a :ObjectPropertyDisplayConfig ;
vitro:displayRankAnnot 23; vitro:displayRankAnnot 23;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ;
vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ;
vitro:selectFromExistingAnnot "true"^^xsd:boolean ;
:propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupoverview> . :propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupoverview> .
local:geographicLocationContainsBuildingContext a :ConfigContext ; local:geographicLocationContainsBuildingContext a :ConfigContext ;
:hasConfiguration local:geographicalLocationContainsBuildingConfig ; :hasConfiguration local:geographicLocationContainsBuildingConfig ;
:configContextFor <http://purl.obolibrary.org/obo/BFO_0000051> ; :configContextFor <http://purl.obolibrary.org/obo/BFO_0000051> ;
:qualifiedByDomain vivo:GeographicLocation ; :qualifiedByDomain vivo:GeographicLocation ;
:qualifiedBy vivo:Building . :qualifiedBy vivo:Building .
local:geographicLocationContainsBuildingConfig a :ObjectPropertyDisplayConfig ; local:geographicLocationContainsBuildingConfig a :ObjectPropertyDisplayConfig ;
:listViewConfigFile "listViewConfig-default.xml"^^xsd:string ; :listViewConfigFile "listViewConfig-default.xml"^^xsd:string ;
:displayName "geographical location for facility" ; :displayName "location of facility" ;
vitro:displayRankAnnot 26; vitro:displayRankAnnot 85;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ;
vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ;
vitro:selectFromExistingAnnot "true"^^xsd:boolean ;
:propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupoverview> . :propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupoverview> .
local:bldgGeographicallyWithinContext a :ConfigContext ; local:siteGeographicallyWithinGeoLocationContext a :ConfigContext ;
:hasConfiguration local:bldgGeographicallyWithinConfig ; :hasConfiguration local:siteGeographicallyWithinGeoLocationConfig ;
:configContextFor <http://purl.obolibrary.org/obo/BFO_0000050> ; :configContextFor <http://purl.obolibrary.org/obo/BFO_0000050> ;
:qualifiedByDomain <http://purl.obolibrary.org/obo/BFO_0000029> ; ## Site :qualifiedByDomain <http://purl.obolibrary.org/obo/BFO_0000029> ; ## Site
:qualifiedBy vivo:GeographicLocation . :qualifiedBy vivo:GeographicLocation .
local:bldgGeographicallyWithinConfig a :ObjectPropertyDisplayConfig ; local:siteGeographicallyWithinGeoLocationConfig a :ObjectPropertyDisplayConfig ;
:listViewConfigFile "listViewConfig-default.xml"^^xsd:string ; :listViewConfigFile "listViewConfig-default.xml"^^xsd:string ;
:displayName "geographically within" ; :displayName "geographically within" ;
vitro:displayRankAnnot 40;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ;
vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ;
vitro:selectFromExistingAnnot "true"^^xsd:boolean ;
:propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupoverview> .
local:facilitySiteOfEventContext a :ConfigContext ;
:hasConfiguration local:facilitySiteOfEventConfig ;
:configContextFor <http://purl.obolibrary.org/obo/RO_0001015> ; ## location of
:qualifiedByDomain vivo:Facility ; ## was <http://purl.obolibrary.org/obo/BFO_0000029> ## Site
:qualifiedBy <http://purl.org/NET/c4dm/event.owl#Event> . ## was <http://purl.obolibrary.org/obo/BFO_0000004> ## Independent Continuant
local:facilitySiteOfEventConfig a :ObjectPropertyDisplayConfig ;
:listViewConfigFile "listViewConfig-default.xml"^^xsd:string ;
:displayName "facility for event" ;
vitro:displayRankAnnot 22;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ;
vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ;
vitro:selectFromExistingAnnot "true"^^xsd:boolean ;
:propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupoverview> .
local:facilitySiteOfAgentContext a :ConfigContext ;
:hasConfiguration local:facilitySiteOfAgentConfig ;
:configContextFor <http://purl.obolibrary.org/obo/RO_0001015> ; ## location of
:qualifiedByDomain vivo:Facility ; ## was <http://purl.obolibrary.org/obo/BFO_0000029> ## Site
:qualifiedBy <http://xmlns.com/foaf/0.1/Agent> . ## was <http://purl.obolibrary.org/obo/BFO_0000004> ## Independent Continuant
local:facilitySiteOfAgentConfig a :ObjectPropertyDisplayConfig ;
:listViewConfigFile "listViewConfig-default.xml"^^xsd:string ;
:displayName "facility for person, group, or organization" ;
vitro:displayRankAnnot 20; vitro:displayRankAnnot 20;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ;
vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ;
vitro:selectFromExistingAnnot "true"^^xsd:boolean ;
:propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupoverview> . :propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupoverview> .
local:bldgGeographicaLocationOfContext a :ConfigContext ; # uses and used by need work -- apply to continuants and occurrents, and material entities as well as information content entities
:hasConfiguration local:bldgGeographicaLocationOfConfig ; #local:projectUsesMaterialEntityContext a :ConfigContext ;
:configContextFor <http://purl.obolibrary.org/obo/RO_0001015> ; # :hasConfiguration local:projectUsesMaterialEntityConfig ;
:qualifiedByDomain <http://purl.obolibrary.org/obo/BFO_0000029> ; # :configContextFor <http://purl.obolibrary.org/obo/ERO_0000031> ;
:qualifiedBy <http://purl.obolibrary.org/obo/BFO_0000004> . # :qualifiedByDomain vivo:Project ;
# :qualifiedBy <http://purl.obolibrary.org/obo/BFO_0000040> . ## Material Entity
local:bldgGeographicaLocationOfConfig a :ObjectPropertyDisplayConfig ; #local:projectUsesMaterialEntityConfig a :ObjectPropertyDisplayConfig ;
:listViewConfigFile "listViewConfig-default.xml"^^xsd:string ; # :listViewConfigFile "listViewConfig-default.xml"^^xsd:string ;
:displayName "geographic location of" ; # :displayName "uses specimen, equipment, instrument, organism, reagent, or software" ;
vitro:displayRankAnnot 21; # vitro:displayRankAnnot 85;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; # vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; # vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ;
:propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupoverview> . # vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ;
# vitro:selectFromExistingAnnot "true"^^xsd:boolean ;
# :propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupoverview> .
local:projectUsesMaterialEntityContext a :ConfigContext ; #local:materialEntityUsedByProjectContext a :ConfigContext ;
:hasConfiguration local:projectUsesMaterialEntityConfig ; # :hasConfiguration local:MaterialEntityUsedByProjectConfig ;
:configContextFor <http://purl.obolibrary.org/obo/ERO_0000031> ; # :configContextFor <http://purl.obolibrary.org/obo/ERO_0000070> ;
:qualifiedByDomain vivo:Project ; # :qualifiedByDomain <http://purl.obolibrary.org/obo/BFO_0000040> ; ## Material Entity
:qualifiedBy <http://purl.obolibrary.org/obo/BFO_0000040> . ## Material Entity # :qualifiedBy vivo:Project .
local:projectUsesMaterialEntityConfig a :ObjectPropertyDisplayConfig ; #local:materialEntityUsedByProjectConfig a :ObjectPropertyDisplayConfig ;
:listViewConfigFile "listViewConfig-default.xml"^^xsd:string ; # :listViewConfigFile "listViewConfig-default.xml"^^xsd:string ;
:displayName "uses equipment or instrument" ; # :displayName "used by project" ;
vitro:displayRankAnnot 85; # vitro:displayRankAnnot 85;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; # vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; # vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ;
:propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupoverview> . # vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ;
# vitro:selectFromExistingAnnot "true"^^xsd:boolean ;
local:materialEntityUsedByProjectContext a :ConfigContext ; # :propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupoverview> .
:hasConfiguration local:MaterialEntityUsedByProjectConfig ;
:configContextFor <http://purl.obolibrary.org/obo/ERO_0000070> ;
:qualifiedByDomain <http://purl.obolibrary.org/obo/BFO_0000040> ; ## Material Entity
:qualifiedBy vivo:Project .
local:materialEntityUsedByProjectConfig a :ObjectPropertyDisplayConfig ;
:listViewConfigFile "listViewConfig-default.xml"^^xsd:string ;
:displayName "used by project" ;
vitro:displayRankAnnot 85;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ;
:propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupoverview> .
local:facilityLocationOfEquipmentContext a :ConfigContext ; local:facilityLocationOfEquipmentContext a :ConfigContext ;
:hasConfiguration local:facilityLocationOfEquipmentConfig ; :hasConfiguration local:facilityLocationOfEquipmentConfig ;
:configContextFor <http://purl.obolibrary.org/obo/RO_0001015> ; :configContextFor <http://purl.obolibrary.org/obo/RO_0001015> ; ## location of
:qualifiedByDomain <http://purl.obolibrary.org/obo/BFO_0000029> ; ## Site :qualifiedByDomain <http://purl.obolibrary.org/obo/BFO_0000029> ; ## Site
:qualifiedBy <http://purl.obolibrary.org/obo/BFO_0000040> . ## Material Entity :qualifiedBy <http://purl.obolibrary.org/obo/BFO_0000040> . ## Material Entity
@ -1312,11 +1369,13 @@ local:facilityLocationOfEquipmentConfig a :ObjectPropertyDisplayConfig ;
vitro:displayRankAnnot 14; vitro:displayRankAnnot 14;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ;
:propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupaffiliation> . vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ;
vitro:selectFromExistingAnnot "true"^^xsd:boolean ;
:propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupoverview> .
local:facilityLocationOfServiceContext a :ConfigContext ; local:facilityLocationOfServiceContext a :ConfigContext ;
:hasConfiguration local:facilityLocationOfServiceConfig ; :hasConfiguration local:facilityLocationOfServiceConfig ;
:configContextFor <http://purl.obolibrary.org/obo/RO_0001015> ; :configContextFor <http://purl.obolibrary.org/obo/RO_0001015> ; ## location of
:qualifiedByDomain vivo:Facility ; :qualifiedByDomain vivo:Facility ;
:qualifiedBy <http://purl.obolibrary.org/obo/ERO_0000005> . :qualifiedBy <http://purl.obolibrary.org/obo/ERO_0000005> .
@ -1326,7 +1385,7 @@ local:facilityLocationOfServiceConfig a :ObjectPropertyDisplayConfig ;
vitro:displayRankAnnot 18; vitro:displayRankAnnot 18;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ;
:propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupaffiliation> ; :propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupoverview> ;
vitro:publicDescriptionAnnot "This relates a facility as being used for a particular service."^^xsd:string ; vitro:publicDescriptionAnnot "This relates a facility as being used for a particular service."^^xsd:string ;
vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ; vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ;
vitro:selectFromExistingAnnot "true"^^xsd:boolean . vitro:selectFromExistingAnnot "true"^^xsd:boolean .
@ -1343,6 +1402,8 @@ local:courseOfferedByConfig a :ObjectPropertyDisplayConfig ;
vitro:displayRankAnnot 2; vitro:displayRankAnnot 2;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ;
vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ;
vitro:selectFromExistingAnnot "true"^^xsd:boolean ;
:propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupoverview> . :propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupoverview> .
local:orgOffersCourseContext a :ConfigContext ; local:orgOffersCourseContext a :ConfigContext ;
@ -1459,6 +1520,8 @@ local:grantHasSubgrantConfig a :ObjectPropertyDisplayConfig ;
vitro:displayRankAnnot 30; vitro:displayRankAnnot 30;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ;
vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ;
vitro:selectFromExistingAnnot "true"^^xsd:boolean ;
:propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupoverview> . :propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupoverview> .
local:grantIsSubgrantOfContext a :ConfigContext ; local:grantIsSubgrantOfContext a :ConfigContext ;
@ -1473,6 +1536,8 @@ local:grantIsSubgrantOfConfig a :ObjectPropertyDisplayConfig ;
vitro:displayRankAnnot 32; vitro:displayRankAnnot 32;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ;
vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ;
vitro:selectFromExistingAnnot "true"^^xsd:boolean ;
:propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupoverview> . :propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupoverview> .
local:grantGeographicFocusContext a :ConfigContext ; local:grantGeographicFocusContext a :ConfigContext ;
@ -1487,6 +1552,8 @@ local:grantGeographicFocusConfig a :ObjectPropertyDisplayConfig ;
vitro:displayRankAnnot 20; vitro:displayRankAnnot 20;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ;
vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ;
vitro:selectFromExistingAnnot "true"^^xsd:boolean ;
:propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupoverview> . :propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupoverview> .
local:awardOrHonorReceiptsContext a :ConfigContext ; local:awardOrHonorReceiptsContext a :ConfigContext ;
@ -1576,7 +1643,7 @@ local:orgAwardsGrantConfig a :ObjectPropertyDisplayConfig ;
local:addressLocationContext a :ConfigContext ; local:addressLocationContext a :ConfigContext ;
:hasConfiguration local:addressLocationConfig ; :hasConfiguration local:addressLocationConfig ;
:configContextFor <http://purl.obolibrary.org/obo/RO_0001025> ; :configContextFor <http://purl.obolibrary.org/obo/RO_0001025> ; ## located in
:qualifiedByDomain <http://www.w3.org/2006/vcard/ns#Address> ; :qualifiedByDomain <http://www.w3.org/2006/vcard/ns#Address> ;
:qualifiedBy vivo:GeographicLocation . :qualifiedBy vivo:GeographicLocation .
@ -1586,6 +1653,7 @@ local:addressLocationConfig a :ObjectPropertyDisplayConfig ;
vitro:displayRankAnnot 2; vitro:displayRankAnnot 2;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ;
vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ;
:propertyGroup <http://vivoweb.org/ontology#vitroPropertyGrouplocation> . :propertyGroup <http://vivoweb.org/ontology#vitroPropertyGrouplocation> .
### roles using the BFO_0000055 property ### ### roles using the BFO_0000055 property ###
@ -1647,4 +1715,4 @@ local:yearAwardedConfig a :ObjectPropertyDisplayConfig ;
vitro:displayRankAnnot 10; vitro:displayRankAnnot 10;
vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ; vitro:hiddenFromDisplayBelowRoleLevelAnnot role:public ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ; vitro:prohibitedFromUpdateBelowRoleLevelAnnot role:public ;
:propertyGroup <http://vivoweb.org/ontology#vitroPropertyGrouptime> . :propertyGroup <http://vivoweb.org/ontology#vitroPropertyGroupoverview> .

View file

@ -1132,17 +1132,8 @@
<owl:Class> <owl:Class>
<owl:unionOf rdf:parseType="Collection"> <owl:unionOf rdf:parseType="Collection">
<rdf:Description rdf:about="http://purl.obolibrary.org/obo/ERO_0000004"/> <rdf:Description rdf:about="http://purl.obolibrary.org/obo/ERO_0000004"/>
<rdf:Description rdf:about="http://purl.obolibrary.org/obo/ERO_0000008"/>
<rdf:Description rdf:about="http://purl.obolibrary.org/obo/ERO_0000009"/>
<rdf:Description rdf:about="http://purl.obolibrary.org/obo/ERO_0000020"/> <rdf:Description rdf:about="http://purl.obolibrary.org/obo/ERO_0000020"/>
<rdf:Description rdf:about="http://purl.obolibrary.org/obo/ERO_0000161"/>
<rdf:Description rdf:about="http://purl.obolibrary.org/obo/ERO_0000162"/>
<rdf:Description rdf:about="http://purl.obolibrary.org/obo/ERO_0000285"/>
<rdf:Description rdf:about="http://purl.obolibrary.org/obo/ERO_0000630"/>
<rdf:Description rdf:about="http://purl.obolibrary.org/obo/ERO_0001194"/>
<rdf:Description rdf:about="http://purl.obolibrary.org/obo/ERO_0001200"/>
<rdf:Description rdf:about="http://purl.obolibrary.org/obo/OBI_0100026"/> <rdf:Description rdf:about="http://purl.obolibrary.org/obo/OBI_0100026"/>
<rdf:Description rdf:about="http://purl.obolibrary.org/obo/OBI_0400147"/>
</owl:unionOf> </owl:unionOf>
</owl:Class> </owl:Class>
</rdfs:domain> </rdfs:domain>
@ -1259,30 +1250,6 @@
<!-- http://purl.obolibrary.org/obo/ERO_0000405 -->
<owl:DatatypeProperty rdf:about="http://purl.obolibrary.org/obo/ERO_0000405">
<obo:IAO_0000117 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">PERSON: Melissa Haendel</obo:IAO_0000117>
<obo:IAO_0000119 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">PERSON: Melissa Haendel</obo:IAO_0000119>
<obo:IAO_0000112 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">The accession number for a gene.</obo:IAO_0000112>
<obo:IAO_0000115 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Unique identifier of a biological polymer sequence (DNA, RNA, protein) when it is submitted to a sequence database.</obo:IAO_0000115>
<obo:IAO_0000111 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">accession number</obo:IAO_0000111>
<obo:IAO_0000114 rdf:resource="http://purl.obolibrary.org/obo/IAO_0000120"/>
<rdfs:range rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
<rdfs:domain>
<owl:Class>
<owl:unionOf rdf:parseType="Collection">
<rdf:Description rdf:about="http://purl.obolibrary.org/obo/ERO_0000161"/>
<rdf:Description rdf:about="http://purl.obolibrary.org/obo/ERO_0000285"/>
<rdf:Description rdf:about="http://purl.obolibrary.org/obo/ERO_0000404"/>
</owl:unionOf>
</owl:Class>
</rdfs:domain>
</owl:DatatypeProperty>
<!-- http://purl.obolibrary.org/obo/ERO_0000424 --> <!-- http://purl.obolibrary.org/obo/ERO_0000424 -->
<owl:DatatypeProperty rdf:about="http://purl.obolibrary.org/obo/ERO_0000424"> <owl:DatatypeProperty rdf:about="http://purl.obolibrary.org/obo/ERO_0000424">

View file

@ -738,7 +738,7 @@
<owl:Class rdf:about="http://aims.fao.org/aos/geopolitical.owl#geographical_region"> <owl:Class rdf:about="http://aims.fao.org/aos/geopolitical.owl#geographical_region">
<rdfs:subClassOf rdf:resource="http://aims.fao.org/aos/geopolitical.owl#group"/> <rdfs:subClassOf rdf:resource="http://aims.fao.org/aos/geopolitical.owl#group"/>
<rdfs:subClassOf rdf:resource="http://vivoweb.org/ontology/core#TransnationalRegion"/> <rdfs:subClassOf rdf:resource="http://vivoweb.org/ontology/core#GeographicRegion"/>
<terms:source rdf:datatype="http://www.w3.org/2001/XMLSchema#string">United Nations statistics department http://unstats.un.org/unsd/methods/m49/m49regin.htm</terms:source> <terms:source rdf:datatype="http://www.w3.org/2001/XMLSchema#string">United Nations statistics department http://unstats.un.org/unsd/methods/m49/m49regin.htm</terms:source>
</owl:Class> </owl:Class>
@ -1081,8 +1081,7 @@
<!-- http://vivoweb.org/ontology/core#Continent --> <!-- http://vivoweb.org/ontology/core#Continent -->
<owl:Class rdf:about="http://vivoweb.org/ontology/core#Continent"> <owl:Class rdf:about="http://vivoweb.org/ontology/core#Continent">
<rdfs:subClassOf rdf:resource="http://vivoweb.org/ontology/core#GeographicRegion"/>
<rdfs:subClassOf rdf:resource="http://vivoweb.org/ontology/core#TransnationalRegion"/>
<obo:IAO_0000115 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">A large contiguous landmass that is at least partially surrounded by water, together with any islands on its continental shelf.</obo:IAO_0000115> <obo:IAO_0000115 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">A large contiguous landmass that is at least partially surrounded by water, together with any islands on its continental shelf.</obo:IAO_0000115>
<obo:IAO_0000112 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Short Definition take from http://en.wiktionary.org/wiki/continent.</obo:IAO_0000112> <obo:IAO_0000112 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Short Definition take from http://en.wiktionary.org/wiki/continent.</obo:IAO_0000112>
<obo:IAO_0000112 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">The seven commonly recognized continents are Africa; Antarctica; Asia; Australia; Europe; North America; South America</obo:IAO_0000112> <obo:IAO_0000112 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">The seven commonly recognized continents are Africa; Antarctica; Asia; Australia; Europe; North America; South America</obo:IAO_0000112>
@ -1155,21 +1154,7 @@
<obo:IAO_0000115 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Smaller administrative division into which a country may be divided.</obo:IAO_0000115> <obo:IAO_0000115 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Smaller administrative division into which a country may be divided.</obo:IAO_0000115>
</owl:Class> </owl:Class>
<!-- http://vivoweb.org/ontology/core#TransnationalRegion -->
<owl:Class rdf:about="http://vivoweb.org/ontology/core#TransnationalRegion">
<rdfs:subClassOf rdf:resource="http://vivoweb.org/ontology/core#GeographicRegion"/>
<obo:IAO_0000115 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Any region that goes beyond national boundaries and does not fit into any subclass of core:TransnationalRegion.</obo:IAO_0000115>
<obo:IAO_0000112 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">None as yet.</obo:IAO_0000112>
<obo:IAO_0000112 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Not sure how to access the &quot;Editor&apos;s Comments&quot;. But as North America is a continent, it would be placed directly into the continent subclass and viewable through this class along with any other subclass entities.</obo:IAO_0000112>
<rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string">sub-Saharan Africa, North America</rdfs:comment>
</owl:Class>
</rdf:RDF> </rdf:RDF>
<!-- Generated by the OWL API (version 3.3.1957) http://owlapi.sourceforge.net --> <!-- Generated by the OWL API (version 3.3.1957) http://owlapi.sourceforge.net -->

View file

@ -351,61 +351,6 @@
<!-- http://purl.obolibrary.org/obo/ERO_0000076 -->
<owl:ObjectProperty rdf:about="http://purl.obolibrary.org/obo/ERO_0000076">
<obo:IAO_0000112 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Imaging processing software that requires .jpg format files for analysis.</obo:IAO_0000112>
<obo:IAO_0000117 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">PERSON: Carlo Torniai</obo:IAO_0000117>
<obo:IAO_0000119 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">PERSON: Melissa Haendel</obo:IAO_0000119>
<obo:IAO_0000115 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Software data input format.</obo:IAO_0000115>
<obo:IAO_0000111 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">has input format</obo:IAO_0000111>
<rdfs:range rdf:resource="http://purl.obolibrary.org/obo/ERO_0001554"/>
<obo:IAO_0000114 rdf:resource="http://purl.obolibrary.org/obo/IAO_0000120"/>
<rdfs:domain>
<owl:Class>
<owl:unionOf rdf:parseType="Collection">
<rdf:Description rdf:about="http://purl.obolibrary.org/obo/ERO_0000071"/>
<rdf:Description rdf:about="http://purl.obolibrary.org/obo/ERO_0001716"/>
</owl:unionOf>
</owl:Class>
</rdfs:domain>
</owl:ObjectProperty>
<!-- http://purl.obolibrary.org/obo/ERO_0000077 -->
<owl:ObjectProperty rdf:about="http://purl.obolibrary.org/obo/ERO_0000077">
<obo:IAO_0000112 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Microsoft Excel arranges and saves data in .xlsx format.</obo:IAO_0000112>
<obo:IAO_0000117 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">PERSON: Carlo Torniai</obo:IAO_0000117>
<obo:IAO_0000119 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">PERSON: Melissa Haendel</obo:IAO_0000119>
<obo:IAO_0000115 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Software data output type.</obo:IAO_0000115>
<obo:IAO_0000111 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">has output format</obo:IAO_0000111>
<rdfs:domain rdf:resource="http://purl.obolibrary.org/obo/ERO_0000071"/>
<rdfs:range rdf:resource="http://purl.obolibrary.org/obo/ERO_0001554"/>
<obo:IAO_0000114 rdf:resource="http://purl.obolibrary.org/obo/IAO_0000120"/>
</owl:ObjectProperty>
<!-- http://purl.obolibrary.org/obo/ERO_0000078 -->
<owl:ObjectProperty rdf:about="http://purl.obolibrary.org/obo/ERO_0000078">
<obo:IAO_0000112 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">ImageJ software measures characteristics of digital images.</obo:IAO_0000112>
<obo:IAO_0000117 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">PERSON: Carlo Torniai</obo:IAO_0000117>
<obo:IAO_0000119 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">PERSON: Melissa Haendel</obo:IAO_0000119>
<obo:IAO_0000115 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Transformation objective of the software.</obo:IAO_0000115>
<obo:IAO_0000111 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">achieves objective</obo:IAO_0000111>
<rdfs:domain rdf:resource="http://purl.obolibrary.org/obo/ERO_0000071"/>
<obo:IAO_0000114 rdf:resource="http://purl.obolibrary.org/obo/IAO_0000120"/>
<rdfs:range rdf:resource="http://purl.obolibrary.org/obo/OBI_0200166"/>
</owl:ObjectProperty>
<!-- http://purl.obolibrary.org/obo/ERO_0000390 --> <!-- http://purl.obolibrary.org/obo/ERO_0000390 -->
<owl:ObjectProperty rdf:about="http://purl.obolibrary.org/obo/ERO_0000390"> <owl:ObjectProperty rdf:about="http://purl.obolibrary.org/obo/ERO_0000390">
@ -631,24 +576,6 @@
<!-- http://purl.obolibrary.org/obo/ERO_0001057 -->
<owl:ObjectProperty rdf:about="http://purl.obolibrary.org/obo/ERO_0001057">
<obo:IAO_0000117 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">PERSON: Melissa Haendel</obo:IAO_0000117>
<obo:IAO_0000119 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">PERSON: Melissa Haendel</obo:IAO_0000119>
<obo:IAO_0000112 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Paraffin embedding of tissue.</obo:IAO_0000112>
<obo:IAO_0000115 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Technique used to prepare the biological specimen.</obo:IAO_0000115>
<obo:IAO_0000111 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">has preparation technique</obo:IAO_0000111>
<rdfs:domain rdf:resource="http://purl.obolibrary.org/obo/ERO_0000020"/>
<rdfs:subPropertyOf rdf:resource="http://purl.obolibrary.org/obo/ERO_0000543"/>
<rdfs:range rdf:resource="http://purl.obolibrary.org/obo/ERO_0001707"/>
<obo:IAO_0000114 rdf:resource="http://purl.obolibrary.org/obo/IAO_0000120"/>
</owl:ObjectProperty>
<!-- http://purl.obolibrary.org/obo/ERO_0001518 --> <!-- http://purl.obolibrary.org/obo/ERO_0001518 -->
<owl:ObjectProperty rdf:about="http://purl.obolibrary.org/obo/ERO_0001518"> <owl:ObjectProperty rdf:about="http://purl.obolibrary.org/obo/ERO_0001518">
@ -699,48 +626,6 @@
<!-- http://purl.obolibrary.org/obo/ERO_0001811 -->
<owl:ObjectProperty rdf:about="http://purl.obolibrary.org/obo/ERO_0001811">
<rdfs:domain rdf:resource="http://purl.obolibrary.org/obo/ERO_0001554"/>
<rdfs:range rdf:resource="http://purl.obolibrary.org/obo/IAO_0000098"/>
</owl:ObjectProperty>
<!-- http://purl.obolibrary.org/obo/ERO_0001824 -->
<owl:ObjectProperty rdf:about="http://purl.obolibrary.org/obo/ERO_0001824">
<obo:IAO_0000115 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Is a legal instrument (usually by way of contract law) governing the usage or redistribution of software.</obo:IAO_0000115>
<obo:IAO_0000117 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">PERSON: Scott Hoffmann</obo:IAO_0000117>
<obo:IAO_0000119 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">http://en.wikipedia.org/wiki/Software_license</obo:IAO_0000119>
<rdfs:domain rdf:resource="http://purl.obolibrary.org/obo/ERO_0000071"/>
<rdfs:range rdf:resource="http://www.ebi.ac.uk/swo/SWO_0000002"/>
</owl:ObjectProperty>
<!-- http://purl.obolibrary.org/obo/ERO_0001908 -->
<owl:ObjectProperty rdf:about="http://purl.obolibrary.org/obo/ERO_0001908">
<rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string">Links an objective to a software operation whise execution achieves the objective. Is different from OBI:objective_achieved_by which links an objective to the process that achieves it.</rdfs:comment>
<obo:IAO_0000117 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">PERSON:Matthew Brush</obo:IAO_0000117>
<obo:IAO_0000119 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">PERSON:Matthew Brush</obo:IAO_0000119>
<obo:IAO_0000115 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">a relation between a software objective (data transformation objective) and an operation whose execution in a software tool achieves the objective</obo:IAO_0000115>
<obo:IAO_0000116 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">software relation expanding to something like:
objective_achieved_by some (&apos;software/algorithm execution&apos; and (specified_by some &apos;data processing operation&apos;))</obo:IAO_0000116>
<rdfs:range rdf:resource="http://purl.obolibrary.org/obo/ERO_0100287"/>
<rdfs:domain rdf:resource="http://purl.obolibrary.org/obo/OBI_0200166"/>
</owl:ObjectProperty>
<!-- http://purl.obolibrary.org/obo/IAO_0000039 --> <!-- http://purl.obolibrary.org/obo/IAO_0000039 -->
<owl:ObjectProperty rdf:about="http://purl.obolibrary.org/obo/IAO_0000039"> <owl:ObjectProperty rdf:about="http://purl.obolibrary.org/obo/IAO_0000039">
@ -1935,14 +1820,6 @@ there is a measurement process p that has specified output m, a measurement datu
<!-- http://www.w3.org/2006/vcard/ns#hasRole -->
<owl:ObjectProperty rdf:about="http://www.w3.org/2006/vcard/ns#hasRole">
<rdfs:range rdf:resource="http://www.w3.org/2006/vcard/ns#Role"/>
</owl:ObjectProperty>
<!-- http://www.w3.org/2006/vcard/ns#hasSound --> <!-- http://www.w3.org/2006/vcard/ns#hasSound -->

View file

@ -153,6 +153,7 @@
<owl:Class rdf:about="http://purl.obolibrary.org/obo/ERO_0000014"> <owl:Class rdf:about="http://purl.obolibrary.org/obo/ERO_0000014">
<rdfs:subClassOf rdf:resource="http://purl.obolibrary.org/obo/OBI_0000011"/> <rdfs:subClassOf rdf:resource="http://purl.obolibrary.org/obo/OBI_0000011"/>
<rdfs:subClassOf rdf:resource="http://vivoweb.org/ontology/core#Project"/>
<rdfs:subClassOf> <rdfs:subClassOf>
<owl:Restriction> <owl:Restriction>
<owl:onProperty rdf:resource="http://purl.obolibrary.org/obo/BFO_0000051"/> <owl:onProperty rdf:resource="http://purl.obolibrary.org/obo/BFO_0000051"/>
@ -491,4 +492,21 @@
<obo:IAO_0000412 rdf:resource="http://purl.obolibrary.org/obo/obi.owl"/> <obo:IAO_0000412 rdf:resource="http://purl.obolibrary.org/obo/obi.owl"/>
</owl:Class> </owl:Class>
<!-- http://purl.obolibrary.org/obo/OBI_0100026 -->
<owl:Class rdf:about="http://purl.obolibrary.org/obo/OBI_0100026">
<rdfs:subClassOf rdf:resource="http://purl.obolibrary.org/obo/BFO_0000040"/>
<obo:IAO_0000117 rdf:datatype="http://www.w3.org/2001/XMLSchema#string">GROUP: OBI Biomaterial Branch</obo:IAO_0000117>
<obo:IAO_0000115 xml:lang="en">A material entity that is an individual living system, such as animal, plant, bacteria or virus, that is capable of replicating or reproducing, growth and maintenance in the right environment. An organism may be unicellular or made up, like humans, of many billions of cells divided into specialized tissues and organs.</obo:IAO_0000115>
<obo:IAO_0000119 xml:lang="en">WEB: http://en.wikipedia.org/wiki/Organism</obo:IAO_0000119>
<obo:IAO_0000112 xml:lang="en">animal</obo:IAO_0000112>
<obo:IAO_0000112 xml:lang="en">fungus</obo:IAO_0000112>
<obo:IAO_0000111 xml:lang="en">organism</obo:IAO_0000111>
<obo:IAO_0000112 xml:lang="en">plant</obo:IAO_0000112>
<obo:IAO_0000112 xml:lang="en">virus</obo:IAO_0000112>
<obo:IAO_0000114 rdf:resource="http://purl.obolibrary.org/obo/IAO_0000121"/>
<obo:IAO_0000412 rdf:resource="http://purl.obolibrary.org/obo/obi.owl"/>
</owl:Class>
</rdf:RDF> </rdf:RDF>

View file

@ -66,12 +66,10 @@ vivo:dateTimeValue
"5"^^xsd:int ; "5"^^xsd:int ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot vitro:hiddenFromDisplayBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#nobody> ; <http://vitro.mannlib.cornell.edu/ns/vitro/role#nobody> ;
vitro:inPropertyGroupAnnot
<http://vivoweb.org/ontology#vitroPropertyGrouptime> ;
vitro:offerCreateNewOptionAnnot
"true"^^xsd:boolean ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot vitro:prohibitedFromUpdateBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#nobody> ; <http://vitro.mannlib.cornell.edu/ns/vitro/role#nobody> ;
vitro:offerCreateNewOptionAnnot
"true"^^xsd:boolean ;
vitro:selectFromExistingAnnot vitro:selectFromExistingAnnot
"false"^^xsd:boolean . "false"^^xsd:boolean .
@ -166,7 +164,6 @@ geo:non_self_governing
"-1"^^xsd:int ; "-1"^^xsd:int ;
vitro:displayRankAnnot vitro:displayRankAnnot
"-1"^^xsd:int ; "-1"^^xsd:int ;
vitro:inClassGroup <http://vivoweb.org/ontology#vitroClassGrouplocations> ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot vitro:hiddenFromDisplayBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ; <http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot vitro:prohibitedFromUpdateBelowRoleLevelAnnot
@ -402,7 +399,8 @@ obo:OBI_0000643
rdfs:label "has grain"@en-US . rdfs:label "has grain"@en-US .
obo:OBI_0000272 obo:OBI_0000272
rdfs:label "Protocol"@en-US . rdfs:label "Protocol"@en-US ;
vitro:inClassGroup <http://vivoweb.org/ontology#vitroClassGroupresearch> .
vcard:Identification vcard:Identification
rdfs:label "Identification"@en-US . rdfs:label "Identification"@en-US .
@ -472,29 +470,33 @@ bibo:Manuscript
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> . <http://vitro.mannlib.cornell.edu/ns/vitro/role#public> .
owl:sameAs owl:sameAs
a owl:ObjectProperty ; a owl:ObjectProperty ;
rdfs:domain owl:Thing ; rdfs:domain owl:Thing ;
rdfs:label "mismo que"@es , "same as"@en-US ; rdfs:label "mismo que"@es , "same as"@en-US ;
rdfs:range owl:Thing ; rdfs:range owl:Thing ;
rdfs:subPropertyOf owl:topObjectProperty ; rdfs:subPropertyOf owl:topObjectProperty ;
vitro:displayLimitAnnot vitro:displayLimitAnnot
"5" ; "5" ;
vitro:displayRankAnnot
"1"^^xsd:int ;
vitro:forceStubDeletionAnnot vitro:forceStubDeletionAnnot
"false"^^xsd:boolean ; "false"^^xsd:boolean ;
vitro:fullPropertyNameAnnot vitro:fullPropertyNameAnnot
"sameAs" ; "sameAs" ;
vitro:inPropertyGroupAnnot vitro:inPropertyGroupAnnot
<http://vivoweb.org/ontology#vitroPropertyGroupmapping> ; <http://vivoweb.org/ontology#vitroPropertyGroupidentifiers> ;
vitro:offerCreateNewOptionAnnot vitro:offerCreateNewOptionAnnot
"false"^^xsd:boolean ; "true"^^xsd:boolean ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot vitro:prohibitedFromUpdateBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#nobody> ; <http://vitro.mannlib.cornell.edu/ns/vitro/role#nobody> ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#nobody> ;
vitro:publicDescriptionAnnot vitro:publicDescriptionAnnot
"This is the OWL property to link two indivdiuals with the same 'identity'. see http://www.w3.org/TR/owl-ref/#sameAs-def"@en-US ; "This is the OWL property to link two indivdiuals with the same 'identity'. see http://www.w3.org/TR/owl-ref/#sameAs-def"@en-US ;
vitro:selectFromExistingAnnot vitro:selectFromExistingAnnot
"true"^^xsd:boolean ; "true"^^xsd:boolean ;
vitro:stubObjectPropertyAnnot vitro:stubObjectPropertyAnnot
"true"^^xsd:boolean . "false"^^xsd:boolean .
vcard:hasTimeZone vcard:hasTimeZone
rdfs:label "has time zone"@en-US . rdfs:label "has time zone"@en-US .
@ -532,7 +534,6 @@ vivo:SubnationalRegion
"-1"^^xsd:int ; "-1"^^xsd:int ;
vitro:displayRankAnnot vitro:displayRankAnnot
"-1"^^xsd:int ; "-1"^^xsd:int ;
vitro:inClassGroup <http://vivoweb.org/ontology#vitroClassGrouplocations> ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot vitro:hiddenFromDisplayBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ; <http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot vitro:prohibitedFromUpdateBelowRoleLevelAnnot
@ -547,7 +548,6 @@ geo:territory
"-1"^^xsd:int ; "-1"^^xsd:int ;
vitro:displayRankAnnot vitro:displayRankAnnot
"-1"^^xsd:int ; "-1"^^xsd:int ;
vitro:inClassGroup <http://vivoweb.org/ontology#vitroClassGrouplocations> ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot vitro:hiddenFromDisplayBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ; <http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot vitro:prohibitedFromUpdateBelowRoleLevelAnnot
@ -556,13 +556,6 @@ geo:territory
vcard:OrganizationName vcard:OrganizationName
rdfs:label "Organization Name"@en-US . rdfs:label "Organization Name"@en-US .
obo:ERO_0000076
rdfs:label "has input type"@en-US ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#nobody> ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#nobody> .
vivo:researchAreaOf vivo:researchAreaOf
rdfs:label "research area of"@en-US ; rdfs:label "research area of"@en-US ;
vitro:displayLimitAnnot vitro:displayLimitAnnot
@ -705,13 +698,6 @@ obo:IAO_0000142
vivo:submitted vivo:submitted
rdfs:label "submitted"@en-US . rdfs:label "submitted"@en-US .
obo:ERO_0000077
rdfs:label "has output type"@en-US ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#nobody> ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#nobody> .
bibo:Issue bibo:Issue
rdfs:label "Issue"@en-US ; rdfs:label "Issue"@en-US ;
vitro:displayLimitAnnot vitro:displayLimitAnnot
@ -797,9 +783,6 @@ vitro:moniker
vitro:prohibitedFromUpdateBelowRoleLevelAnnot vitro:prohibitedFromUpdateBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#editor> . <http://vitro.mannlib.cornell.edu/ns/vitro/role#editor> .
obo:ERO_0000078
rdfs:label "achieves objective"@en-US .
geo:codeFAOSTAT geo:codeFAOSTAT
rdfs:label "codeFAOSTAT"@en-US ; rdfs:label "codeFAOSTAT"@en-US ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot vitro:hiddenFromDisplayBelowRoleLevelAnnot
@ -969,7 +952,6 @@ geo:disputed
"-1"^^xsd:int ; "-1"^^xsd:int ;
vitro:displayRankAnnot vitro:displayRankAnnot
"-1"^^xsd:int ; "-1"^^xsd:int ;
vitro:inClassGroup <http://vivoweb.org/ontology#vitroClassGrouplocations> ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot vitro:hiddenFromDisplayBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ; <http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot vitro:prohibitedFromUpdateBelowRoleLevelAnnot
@ -1009,9 +991,6 @@ vivo:Continent
vitro:prohibitedFromUpdateBelowRoleLevelAnnot vitro:prohibitedFromUpdateBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> . <http://vitro.mannlib.cornell.edu/ns/vitro/role#public> .
obo:ERO_0001908
rdfs:label "objective achieved by operation"@en-US .
geo:nameOfficialRU geo:nameOfficialRU
rdfs:label "nameOfficialRU"@en-US ; rdfs:label "nameOfficialRU"@en-US ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot vitro:hiddenFromDisplayBelowRoleLevelAnnot
@ -1245,13 +1224,13 @@ obo:IAO_0000007
vivo:expirationDate vivo:expirationDate
rdfs:label "expiration date"@en-US ; rdfs:label "expiration date"@en-US ;
vitro:displayLimitAnnot vitro:displayLimitAnnot
"5"^^xsd:int ; "1"^^xsd:int ;
vitro:displayRankAnnot vitro:displayRankAnnot
"6"^^xsd:int ; "19"^^xsd:int ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot vitro:hiddenFromDisplayBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ; <http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
vitro:inPropertyGroupAnnot vitro:inPropertyGroupAnnot
<http://vivoweb.org/ontology#vitroPropertyGrouptime> ; <http://vivoweb.org/ontology#vitroPropertyGroupoverview> ;
vitro:offerCreateNewOptionAnnot vitro:offerCreateNewOptionAnnot
"true"^^xsd:boolean ; "true"^^xsd:boolean ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot vitro:prohibitedFromUpdateBelowRoleLevelAnnot
@ -1373,9 +1352,6 @@ vivo:PopulatedPlace
vitro:prohibitedFromUpdateBelowRoleLevelAnnot vitro:prohibitedFromUpdateBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> . <http://vitro.mannlib.cornell.edu/ns/vitro/role#public> .
obo:ERO_0001811
rdfs:label "has format"@en-US .
vivo:FacultyAdministrativePosition vivo:FacultyAdministrativePosition
rdfs:label "Faculty Administrative Position"@en-US ; rdfs:label "Faculty Administrative Position"@en-US ;
vitro:displayLimitAnnot vitro:displayLimitAnnot
@ -1649,7 +1625,7 @@ vivo:Contract
"-1"^^xsd:int ; "-1"^^xsd:int ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot vitro:hiddenFromDisplayBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ; <http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
vitro:inClassGroup <http://vivoweb.org/ontology#vitroClassGroupresearch> ; vitro:inClassGroup <http://vivoweb.org/ontology#vitroClassGrouppublications> ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot vitro:prohibitedFromUpdateBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> . <http://vitro.mannlib.cornell.edu/ns/vitro/role#public> .
@ -1775,7 +1751,18 @@ vivo:Librarian
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> . <http://vitro.mannlib.cornell.edu/ns/vitro/role#public> .
obo:ERO_0000050 obo:ERO_0000050
rdfs:label "model number"@en-US . rdfs:label "model number"@en-US ;
vitro:displayLimitAnnot
"2"^^xsd:int ;
vitro:displayRankAnnot
"76"^^xsd:int ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
vitro:inPropertyGroupAnnot
<http://vivoweb.org/ontology#vitroPropertyGroupoverview> .
geo:nameCurrencyFR geo:nameCurrencyFR
rdfs:label "nameCurrencyFR"@en-US ; rdfs:label "nameCurrencyFR"@en-US ;
@ -1858,8 +1845,22 @@ bibo:doi
bibo:accepted bibo:accepted
rdfs:label "accepted"@en-US . rdfs:label "accepted"@en-US .
obo:ERO_0000070 obo:ERO_0000070 ## inverse of ERO_0000031
rdfs:label "used by"@en-US . rdfs:label "used by"@en-US ;
# vitro:displayLimitAnnot
# "2"^^xsd:int ;
# vitro:displayRankAnnot
# "15"^^xsd:int ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#nobody> ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#nobody> .
# vitro:inPropertyGroupAnnot
# <http://vivoweb.org/ontology#vitroPropertyGroupoverview> ;
# vitro:selectFromExistingAnnot
# "true"^^xsd:boolean ;
# vitro:offerCreateNewOptionAnnot
# "true"^^xsd:boolean .
vcard:Email vcard:Email
rdfs:label "Email"@en-US . rdfs:label "Email"@en-US .
@ -2293,7 +2294,7 @@ vivo:description
vitro:displayLimitAnnot vitro:displayLimitAnnot
"3"^^xsd:int ; "3"^^xsd:int ;
vitro:displayRankAnnot vitro:displayRankAnnot
"5"^^xsd:int ; "1"^^xsd:int ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot vitro:hiddenFromDisplayBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ; <http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
vitro:inPropertyGroupAnnot vitro:inPropertyGroupAnnot
@ -2518,7 +2519,17 @@ bibo:identifier
"Unique identifier of a document or collection. This data property is not seen or updated by anyone."^^xsd:string . "Unique identifier of a document or collection. This data property is not seen or updated by anyone."^^xsd:string .
obo:ERO_0000044 obo:ERO_0000044
rdfs:label "has inventory number"@en-US . rdfs:label "inventory number"@en-US ;
vitro:displayLimitAnnot
"2"^^xsd:int ;
vitro:displayRankAnnot
"70"^^xsd:int ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
vitro:inPropertyGroupAnnot
<http://vivoweb.org/ontology#vitroPropertyGroupoverview> .
obo:ERO_0001261 obo:ERO_0001261
rdfs:label "Analysis Service"@en-US ; rdfs:label "Analysis Service"@en-US ;
@ -2624,9 +2635,6 @@ bibo:Website
vitro:prohibitedFromUpdateBelowRoleLevelAnnot vitro:prohibitedFromUpdateBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> . <http://vitro.mannlib.cornell.edu/ns/vitro/role#public> .
obo:ERO_0001057
rdfs:label "has preparation technique"@en-US .
obo:BFO_0000003 obo:BFO_0000003
rdfs:label "Occurrent" . rdfs:label "Occurrent" .
@ -2694,10 +2702,6 @@ obo:ERO_0000045
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ; <http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot vitro:prohibitedFromUpdateBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ; <http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
vitro:selectFromExistingAnnot
"true"^^xsd:boolean ;
vitro:offerCreateNewOptionAnnot
"true"^^xsd:boolean ;
vitro:inPropertyGroupAnnot vitro:inPropertyGroupAnnot
<http://vivoweb.org/ontology#vitroPropertyGroupoverview> . <http://vivoweb.org/ontology#vitroPropertyGroupoverview> .
@ -2882,7 +2886,11 @@ obo:RO_0000052
<http://vitro.mannlib.cornell.edu/ns/vitro/role#nobody> . <http://vitro.mannlib.cornell.edu/ns/vitro/role#nobody> .
obo:OBI_0000299 obo:OBI_0000299
rdfs:label "has specified output"@en-US . rdfs:label "has specified output"@en-US ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#nobody> ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#nobody> .
vivo:proceedingsOf vivo:proceedingsOf
rdfs:label "proceedings of"@en-US ; rdfs:label "proceedings of"@en-US ;
@ -3616,7 +3624,21 @@ bibo:Proceedings
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> . <http://vitro.mannlib.cornell.edu/ns/vitro/role#public> .
obo:OBI_0000293 obo:OBI_0000293
rdfs:label "has specified input"@en-US . rdfs:label "has specified input"@en-US ;
vitro:displayLimitAnnot
"5"^^xsd:int ;
vitro:displayRankAnnot
"105"^^xsd:int ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#nobody> ;
vitro:inPropertyGroupAnnot
<http://vivoweb.org/ontology#vitroPropertyGroupoverview> ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#nobody> ;
vitro:selectFromExistingAnnot
"true"^^xsd:boolean ;
vitro:offerCreateNewOptionAnnot
"true"^^xsd:boolean .
vivo:publisher vivo:publisher
rdfs:label "publisher"@en-US ; rdfs:label "publisher"@en-US ;
@ -3705,7 +3727,7 @@ vivo:seatingCapacity
vitro:hiddenFromDisplayBelowRoleLevelAnnot vitro:hiddenFromDisplayBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ; <http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
vitro:inPropertyGroupAnnot vitro:inPropertyGroupAnnot
<http://vivoweb.org/ontology#vitroPropertyGrouplocation> ; <http://vivoweb.org/ontology#vitroPropertyGroupoverview> ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot vitro:prohibitedFromUpdateBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ; <http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
vitro:publicDescriptionAnnot vitro:publicDescriptionAnnot
@ -3928,7 +3950,23 @@ obo:ERO_0000572
rdfs:label "used to study"@en-US . rdfs:label "used to study"@en-US .
obo:RO_0001000 obo:RO_0001000
rdfs:label "derives from"@en-US . rdfs:label "derives from"@en-US ;
## note -- has a "some values from" restriction on Organism <http://purl.obolibrary.org/obo/OBI_0100026>
# vitro:displayLimitAnnot
# "5"^^xsd:int ;
# vitro:displayRankAnnot
# "50"^^xsd:int ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#nobody> ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#nobody> .
# vitro:inPropertyGroupAnnot
# <http://vivoweb.org/ontology#vitroPropertyGroupoverview> ;
# vitro:selectFromExistingAnnot
# "true"^^xsd:boolean ;
# vitro:offerCreateNewOptionAnnot
# "true"^^xsd:boolean .
bibo:gtin14 bibo:gtin14
rdfs:label "Global Trade Item Number (GTIN-14)"@en-US ; rdfs:label "Global Trade Item Number (GTIN-14)"@en-US ;
@ -3985,7 +4023,17 @@ vcard:Fax
rdfs:label "Fax"@en-US . rdfs:label "Fax"@en-US .
obo:ERO_0001521 obo:ERO_0001521
rdfs:label "human study performed by"@en-US . rdfs:label "performed by organization"@en-US ;
vitro:displayRankAnnot
"20"^^xsd:int ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
vitro:offerCreateNewOptionAnnot "true"^^xsd:boolean ;
vitro:inPropertyGroupAnnot
<http://vivoweb.org/ontology#vitroPropertyGroupoverview> .
vivo:nihmsid vivo:nihmsid
rdfs:label "NIH Manuscript Submission System ID"@en-US ; rdfs:label "NIH Manuscript Submission System ID"@en-US ;
@ -4147,9 +4195,6 @@ vivo:Screenplay
vitro:prohibitedFromUpdateBelowRoleLevelAnnot vitro:prohibitedFromUpdateBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> . <http://vitro.mannlib.cornell.edu/ns/vitro/role#public> .
obo:ERO_0001824
rdfs:label "has software license"@en-US .
geo:nameOfficialAR geo:nameOfficialAR
rdfs:label "nameOfficialAR"@en-US ; rdfs:label "nameOfficialAR"@en-US ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot vitro:hiddenFromDisplayBelowRoleLevelAnnot
@ -4646,22 +4691,22 @@ vcard:hasLanguage
vcard:hasURL vcard:hasURL
rdfs:label "has URL"@en-US . rdfs:label "has URL"@en-US .
obo:ERO_0000482 obo:ERO_0000482 # deprecated
rdfs:label "uses software"@en-US ; rdfs:label "uses software"@en-US ;
vitro:displayLimitAnnot # vitro:displayLimitAnnot
"5"^^xsd:int ; # "5"^^xsd:int ;
vitro:displayRankAnnot # vitro:displayRankAnnot
"92"^^xsd:int ; # "92"^^xsd:int ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot vitro:hiddenFromDisplayBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ; <http://vitro.mannlib.cornell.edu/ns/vitro/role#nobody> ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot vitro:prohibitedFromUpdateBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ; <http://vitro.mannlib.cornell.edu/ns/vitro/role#nobody> .
vitro:selectFromExistingAnnot # vitro:selectFromExistingAnnot
"true"^^xsd:boolean ; # "true"^^xsd:boolean ;
vitro:offerCreateNewOptionAnnot # vitro:offerCreateNewOptionAnnot
"true"^^xsd:boolean ; # "true"^^xsd:boolean ;
vitro:inPropertyGroupAnnot # vitro:inPropertyGroupAnnot
<http://vivoweb.org/ontology#vitroPropertyGroupoverview> . # <http://vivoweb.org/ontology#vitroPropertyGroupoverview> .
vivo:ResearchProposal vivo:ResearchProposal
rdfs:label "Research Proposal"@en-US ; rdfs:label "Research Proposal"@en-US ;
@ -5226,18 +5271,6 @@ obo:ERO_0000783
vitro:prohibitedFromUpdateBelowRoleLevelAnnot vitro:prohibitedFromUpdateBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> . <http://vitro.mannlib.cornell.edu/ns/vitro/role#public> .
vivo:TransnationalRegion
rdfs:label "Transnational Region"@en-US ;
vitro:displayLimitAnnot
"-1"^^xsd:int ;
vitro:displayRankAnnot
"-1"^^xsd:int ;
vitro:inClassGroup <http://vivoweb.org/ontology#vitroClassGrouplocations> ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> .
vivo:termLabel vivo:termLabel
rdfs:label "term label"@en-US ; rdfs:label "term label"@en-US ;
vitro:displayRankAnnot vitro:displayRankAnnot
@ -5668,7 +5701,22 @@ geo:nameShortEN
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> . <http://vitro.mannlib.cornell.edu/ns/vitro/role#public> .
obo:RO_0003001 obo:RO_0003001
rdfs:label "produced by"@en-US . rdfs:label "produced by"@en-US ;
vitro:displayLimitAnnot
"2"^^xsd:int ;
vitro:displayRankAnnot
"60"^^xsd:int ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
vitro:inPropertyGroupAnnot
<http://vivoweb.org/ontology#vitroPropertyGroupoverview> ;
vitro:selectFromExistingAnnot
"true"^^xsd:boolean ;
vitro:offerCreateNewOptionAnnot
"true"^^xsd:boolean .
<http://purl.org/spar/c4o/hasGlobalCountSource> <http://purl.org/spar/c4o/hasGlobalCountSource>
rdfs:label "has global count source"@en-US ; rdfs:label "has global count source"@en-US ;
@ -5774,7 +5822,22 @@ vivo:hasSuccessorOrganization
"true"^^xsd:boolean . "true"^^xsd:boolean .
obo:RO_0003000 obo:RO_0003000
rdfs:label "produces"@en-US . rdfs:label "produces"@en-US ;
vitro:displayLimitAnnot
"2"^^xsd:int ;
vitro:displayRankAnnot
"63"^^xsd:int ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
vitro:inPropertyGroupAnnot
<http://vivoweb.org/ontology#vitroPropertyGroupoverview> ;
vitro:selectFromExistingAnnot
"true"^^xsd:boolean ;
vitro:offerCreateNewOptionAnnot
"true"^^xsd:boolean .
vivo:prerequisiteFor vivo:prerequisiteFor
rdfs:label "prerequisite for"@en-US ; rdfs:label "prerequisite for"@en-US ;
@ -5989,7 +6052,6 @@ vivo:GeopoliticalEntity
"-1"^^xsd:int ; "-1"^^xsd:int ;
vitro:displayRankAnnot vitro:displayRankAnnot
"-1"^^xsd:int ; "-1"^^xsd:int ;
vitro:inClassGroup <http://vivoweb.org/ontology#vitroClassGrouplocations> ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot vitro:hiddenFromDisplayBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ; <http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot vitro:prohibitedFromUpdateBelowRoleLevelAnnot
@ -6046,7 +6108,22 @@ vcard:Muse
rdfs:label "Muse"@en-US . rdfs:label "Muse"@en-US .
obo:ERO_0000034 obo:ERO_0000034
rdfs:label "has manufacturer"@en-US . rdfs:label "manufacturer"@en-US ;
# vitro:displayLimitAnnot
# "2"^^xsd:int ;
# vitro:displayRankAnnot
# "73"^^xsd:int ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#nobody> ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#nobody> .
# vitro:inPropertyGroupAnnot
# <http://vivoweb.org/ontology#vitroPropertyGroupoverview> ;
# vitro:selectFromExistingAnnot
# "true"^^xsd:boolean ;
# vitro:offerCreateNewOptionAnnot
# "true"^^xsd:boolean .
geo:area geo:area
rdfs:label "Area"@en-US ; rdfs:label "Area"@en-US ;
@ -6129,13 +6206,13 @@ geo:nameShortES
vivo:dateIssued vivo:dateIssued
rdfs:label "date issued"@en-US ; rdfs:label "date issued"@en-US ;
vitro:displayLimitAnnot vitro:displayLimitAnnot
"5"^^xsd:int ; "1"^^xsd:int ;
vitro:displayRankAnnot vitro:displayRankAnnot
"4"^^xsd:int ; "19"^^xsd:int ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot vitro:hiddenFromDisplayBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ; <http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
vitro:inPropertyGroupAnnot vitro:inPropertyGroupAnnot
<http://vivoweb.org/ontology#vitroPropertyGrouptime> ; <http://vivoweb.org/ontology#vitroPropertyGroupoverview> ;
vitro:offerCreateNewOptionAnnot vitro:offerCreateNewOptionAnnot
"true"^^xsd:boolean ; "true"^^xsd:boolean ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot vitro:prohibitedFromUpdateBelowRoleLevelAnnot
@ -6403,7 +6480,21 @@ vcard:hasRelated
rdfs:label "has related"@en-US . rdfs:label "has related"@en-US .
obo:ERO_0000424 obo:ERO_0000424
rdfs:label "has study population"@en-US . rdfs:label "has study population"@en-US ;
vitro:displayLimitAnnot
"5"^^xsd:int ;
vitro:displayRankAnnot
"15"^^xsd:int ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
vitro:inPropertyGroupAnnot
<http://vivoweb.org/ontology#vitroPropertyGroupoverview> ;
vitro:selectFromExistingAnnot
"true"^^xsd:boolean ;
vitro:offerCreateNewOptionAnnot
"true"^^xsd:boolean .
obo:ARG_2000079 obo:ARG_2000079
rdfs:label "American Board of Pathology"@en-US . rdfs:label "American Board of Pathology"@en-US .
@ -6457,7 +6548,22 @@ vivo:distributes
"true"^^xsd:boolean . "true"^^xsd:boolean .
obo:OBI_0000304 obo:OBI_0000304
rdfs:label "is manufactured by"@en-US . rdfs:label "manufactured by"@en-US ;
vitro:displayLimitAnnot
"2"^^xsd:int ;
vitro:displayRankAnnot
"73"^^xsd:int ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
vitro:inPropertyGroupAnnot
<http://vivoweb.org/ontology#vitroPropertyGroupoverview> ;
vitro:selectFromExistingAnnot
"true"^^xsd:boolean ;
vitro:offerCreateNewOptionAnnot
"true"^^xsd:boolean .
vcard:hasFormattedName vcard:hasFormattedName
rdfs:label "has formatted name"@en-US . rdfs:label "has formatted name"@en-US .
@ -6953,13 +7059,13 @@ vcard:hasSound
vivo:dateFiled vivo:dateFiled
rdfs:label "date filed"@en-US ; rdfs:label "date filed"@en-US ;
vitro:displayLimitAnnot vitro:displayLimitAnnot
"5"^^xsd:int ; "1"^^xsd:int ;
vitro:displayRankAnnot vitro:displayRankAnnot
"4"^^xsd:int ; "19"^^xsd:int ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot vitro:hiddenFromDisplayBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ; <http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
vitro:inPropertyGroupAnnot vitro:inPropertyGroupAnnot
<http://vivoweb.org/ontology#vitroPropertyGrouptime> ; <http://vivoweb.org/ontology#vitroPropertyGroupoverview> ;
vitro:individualSortDirectionAnnot vitro:individualSortDirectionAnnot
"desc"^^xsd:string ; "desc"^^xsd:string ;
vitro:offerCreateNewOptionAnnot vitro:offerCreateNewOptionAnnot
@ -7155,8 +7261,6 @@ bibo:Statute
vitro:prohibitedFromUpdateBelowRoleLevelAnnot vitro:prohibitedFromUpdateBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> . <http://vitro.mannlib.cornell.edu/ns/vitro/role#public> .
obo:ERO_0000405
rdfs:label "has accession number"@en-US .
vivo:fundingVehicleFor vivo:fundingVehicleFor
rdfs:label "provides funding for"@en-US ; rdfs:label "provides funding for"@en-US ;
@ -7237,10 +7341,38 @@ vivo:PostdoctoralTraining
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> . <http://vitro.mannlib.cornell.edu/ns/vitro/role#public> .
obo:ERO_0000918 obo:ERO_0000918
rdfs:label "related research project"@en-US . rdfs:label "related research project"@en-US ;
vitro:displayLimitAnnot
"2"^^xsd:int ;
vitro:displayRankAnnot
"20"^^xsd:int ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
vitro:inPropertyGroupAnnot
<http://vivoweb.org/ontology#vitroPropertyGroupoverview> ;
vitro:selectFromExistingAnnot
"true"^^xsd:boolean ;
vitro:offerCreateNewOptionAnnot
"true"^^xsd:boolean .
obo:OBI_0000417 obo:OBI_0000417
rdfs:label "achieves planned objective"@en-US . rdfs:label "achieves planned objective"@en-US ;
vitro:displayLimitAnnot
"5"^^xsd:int ;
vitro:displayRankAnnot
"95"^^xsd:int ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#nobody> ;
vitro:inPropertyGroupAnnot
<http://vivoweb.org/ontology#vitroPropertyGroupoverview> ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#nobody> ;
vitro:selectFromExistingAnnot
"true"^^xsd:boolean ;
vitro:offerCreateNewOptionAnnot
"true"^^xsd:boolean .
vivo:preferredDisplayOrder vivo:preferredDisplayOrder
rdfs:label "preferred display order"@en-US ; rdfs:label "preferred display order"@en-US ;
@ -7285,7 +7417,21 @@ vcard:sound
rdfs:label "sound"@en-US . rdfs:label "sound"@en-US .
obo:ERO_0000543 obo:ERO_0000543
rdfs:label "related technique"@en-US . rdfs:label "related technique"@en-US ;
vitro:displayLimitAnnot
"5"^^xsd:int ;
vitro:displayRankAnnot
"80"^^xsd:int ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
vitro:inPropertyGroupAnnot
<http://vivoweb.org/ontology#vitroPropertyGroupoverview> ;
vitro:selectFromExistingAnnot
"true"^^xsd:boolean ;
vitro:offerCreateNewOptionAnnot
"true"^^xsd:boolean .
bibo:numPages bibo:numPages
rdfs:label "number of pages"@en-US ; rdfs:label "number of pages"@en-US ;
@ -7417,7 +7563,7 @@ geo:GDPUnit
vitro:hiddenFromDisplayBelowRoleLevelAnnot vitro:hiddenFromDisplayBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#nobody> ; <http://vitro.mannlib.cornell.edu/ns/vitro/role#nobody> ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot vitro:prohibitedFromUpdateBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> . <http://vitro.mannlib.cornell.edu/ns/vitro/role#nobody> .
bibo:edition bibo:edition
rdfs:label "edition"@en-US ; rdfs:label "edition"@en-US ;
@ -7486,7 +7632,21 @@ obo:OBI_0000011
rdfs:label "Planned Process"@en-US . rdfs:label "Planned Process"@en-US .
obo:ERO_0000919 obo:ERO_0000919
rdfs:label "related biological specimen"@en-US . rdfs:label "related biological specimen"@en-US ;
vitro:displayLimitAnnot
"5"^^xsd:int ;
vitro:displayRankAnnot
"95"^^xsd:int ;
vitro:hiddenFromDisplayBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
vitro:inPropertyGroupAnnot
<http://vivoweb.org/ontology#vitroPropertyGroupresearch> ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
vitro:selectFromExistingAnnot
"true"^^xsd:boolean ;
vitro:offerCreateNewOptionAnnot
"true"^^xsd:boolean .
bibo:status bibo:status
rdfs:label "status"@en-US ; rdfs:label "status"@en-US ;
@ -7567,7 +7727,7 @@ vivo:hasEquipment
vitro:hiddenFromDisplayBelowRoleLevelAnnot vitro:hiddenFromDisplayBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ; <http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
vitro:inPropertyGroupAnnot vitro:inPropertyGroupAnnot
<http://vivoweb.org/ontology#vitroPropertyGroupservice> ; <http://vivoweb.org/ontology#vitroPropertyGroupoutreach> ;
vitro:prohibitedFromUpdateBelowRoleLevelAnnot vitro:prohibitedFromUpdateBelowRoleLevelAnnot
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ; <http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
vitro:selectFromExistingAnnot vitro:selectFromExistingAnnot
@ -7608,3 +7768,11 @@ vivo:hasEquipment
<http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ; <http://vitro.mannlib.cornell.edu/ns/vitro/role#public> ;
vitro:selectFromExistingAnnot vitro:selectFromExistingAnnot
"true"^^xsd:boolean . "true"^^xsd:boolean .
<http://purl.obolibrary.org/obo/OBI_0100026>
rdfs:label "Organism"@en-US ;
vitro:inClassGroup <http://vivoweb.org/ontology#vitroClassGrouppublications> ; ## classgroup label is research
vitro:displayRankAnnot
"1"^^xsd:int .

View file

@ -1,751 +0,0 @@
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
package edu.cornell.mannlib.semservices.bo;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;
import edu.cornell.mannlib.semservices.util.DateUtils;
/**
* A time-less and immutable Date class for basic date arithmetics.
*
* @author <a href="mailto:jacob.dreyer@geosoft.no">Jacob Dreyer</a>
*/
public class Day implements Comparable<Day> {
/** The back end calendar instance of this day. */
protected Calendar calendar_ = Calendar.getInstance();
/**
* Create a new day. The day is lenient meaning that illegal day parameters
* can be specified and results in a recomputed day with legal month/day
* values.
*
* @param year
* Year of new day.
* @param month
* Month of new day (0-11)
* @param dayOfMonth
* Day of month of new day (1-31)
*/
public Day(int year, int month, int dayOfMonth) {
initialize(year, month, dayOfMonth);
}
/**
* Create a new day, specifying the year and the day of year. The day is
* lenient meaning that illegal day parameters can be specified and results
* in a recomputed day with legal month/day values.
*
* @param year
* Year of new day.
* @param dayOfYear
* 1=January 1, etc.
*/
public Day(int year, int dayOfYear) {
initialize(year, Calendar.JANUARY, 1);
calendar_.set(Calendar.DAY_OF_YEAR, dayOfYear);
}
/**
* Create a new day representing the day of creation (according to the
* setting of the current machine).
*/
public Day() {
// Now (in the current locale of the client machine)
Calendar calendar = Calendar.getInstance();
// Prune time part
initialize(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH),
calendar.get(Calendar.DAY_OF_MONTH));
}
/**
* Create a new day based on a java.util.Calendar instance. NOTE: The time
* component from calendar will be pruned.
*
* @param calendar
* Calendar instance to copy.
* @throws IllegalArgumentException
* If calendar is null.
*/
public Day(Calendar calendar) {
if (calendar == null)
throw new IllegalArgumentException("calendar cannot be null");
initialize(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH),
calendar.get(Calendar.DAY_OF_MONTH));
}
/**
* Create a new day based on a java.util.Date instance. NOTE: The time
* component from date will be pruned.
*
* @param date
* Date instance to copy.
* @throws IllegalArgumentException
* If date is null.
*/
public Day(Date date) {
if (date == null)
throw new IllegalArgumentException("date cannot be null");
// Create a calendar based on given date
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
// Extract date values and use these only
initialize(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH),
calendar.get(Calendar.DAY_OF_MONTH));
}
/**
* Create a new day based on a time value. Time is milliseconds since
* "the Epoch" (1.1.1970). NOTE: The time component from time will be pruned.
*
* @param time
* Milliseconds since "the Epoch".
*/
public Day(long time) {
this(new Date(time));
}
/**
* Create a new day as a copy of the specified day.
*
* @param day
* Day to clone.
* @throws IllegalArgumentException
* If day is null.
*/
public Day(Day day) {
if (day == null)
throw new IllegalArgumentException("day cannot be null");
initialize(day.getYear(), day.getMonth(), day.getDayOfMonth());
}
/**
* Initialize the internal calendar instance.
*
* @param year
* Year of new day.
* @param month
* Month of new day.
* @param dayOfMonth
* Day of month of new day.
*/
private void initialize(int year, int month, int dayOfMonth) {
calendar_.setLenient(true);
calendar_.setFirstDayOfWeek(Calendar.MONDAY);
calendar_.setTimeZone(TimeZone.getDefault());
calendar_.set(Calendar.YEAR, year);
calendar_.set(Calendar.MONTH, month);
calendar_.set(Calendar.DAY_OF_MONTH, dayOfMonth);
// Prune the time component
calendar_.set(Calendar.HOUR_OF_DAY, 0);
calendar_.set(Calendar.MINUTE, 0);
calendar_.set(Calendar.SECOND, 0);
calendar_.set(Calendar.MILLISECOND, 0);
}
/**
* A more explicit front-end to the Day() constructor which return a day
* object representing the day of creation.
*
* @return A day instance representing today.
*/
public static Day today() {
return new Day();
}
/**
* Return a Calendar instance representing the same day as this instance. For
* use by secondary methods requiring java.util.Calendar as input.
*
* @return Calendar equivalent representing this day.
*/
public Calendar getCalendar() {
return (Calendar) calendar_.clone();
}
/**
* Return a Date instance representing the same date as this instance. For
* use by secondary methods requiring java.util.Date as input.
*
* @return Date equivalent representing this day.
*/
public Date getDate() {
return getCalendar().getTime();
}
/**
* Compare this day to the specified day. If object is not of type Day a
* ClassCastException is thrown.
*
* @param day
* Day object to compare to.
* @return @see Comparable#compareTo(Object)
* @throws IllegalArgumentException
* If day is null.
*/
public int compareTo(Day day) {
if (day == null)
throw new IllegalArgumentException("day cannot be null");
return calendar_.getTime().compareTo(day.calendar_.getTime());
}
/**
* Return true if this day is after the specified day.
*
* @param day
* Day to compare to.
* @return True if this is after day, false otherwise.
* @throws IllegalArgumentException
* If day is null.
*/
public boolean isAfter(Day day) {
if (day == null)
throw new IllegalArgumentException("day cannot be null");
return calendar_.after(day.calendar_);
}
/**
* Return true if this day is before the specified day.
*
* @param day
* Day to compare to.
* @return True if this is before day, false otherwise.
* @throws IllegalArgumentException
* If day is null.
*/
public boolean isBefore(Day day) {
if (day == null)
throw new IllegalArgumentException("day cannot be null");
return calendar_.before(day.calendar_);
}
/**
* Return true if this day equals (represent the same date) as the specified
* day.
*
* @param object
* Object to compare to.
* @return True if this equals day, false otherwise.
* @throws IllegalArgumentException
* If day is null.
*/
@Override
public boolean equals(Object object) {
Day day = (Day) object;
if (day == null)
throw new IllegalArgumentException("day cannot be null");
return calendar_.equals(day.calendar_);
}
/**
* Overload required as default definition of equals() has changed.
*
* @return A hash code value for this object.
*/
@Override
public int hashCode() {
return calendar_.hashCode();
}
/**
* Return year of this day.
*
* @return Year of this day.
*/
public int getYear() {
return calendar_.get(Calendar.YEAR);
}
/**
* Return month of this day. The result must be compared to Calendar.JANUARY,
* Calendar.FEBRUARY, etc.
*
* @return Month of this day.
*/
public int getMonth() {
return calendar_.get(Calendar.MONTH);
}
public String getMonthName() {
switch (getMonth()) {
case Calendar.JANUARY:
return "January";
case Calendar.FEBRUARY:
return "February";
case Calendar.MARCH:
return "March";
case Calendar.APRIL:
return "April";
case Calendar.MAY:
return "May";
case Calendar.JUNE:
return "June";
case Calendar.JULY:
return "July";
case Calendar.AUGUST:
return "August";
case Calendar.SEPTEMBER:
return "September";
case Calendar.OCTOBER:
return "October";
case Calendar.NOVEMBER:
return "November";
case Calendar.DECEMBER:
return "December";
default:
assert false : "Invalid mongth: " + getMonth();
}
// This will never happen
return "";
}
/**
* Return the 1-based month number of the month of this day. 1 = January, 2 =
* February and so on.
*
* @return Month number of this month
*/
public int getMonthNo() {
// It is tempting to return getMonth() + 1 but this is conceptually
// wrong, as Calendar month is an enumeration and the values are tags
// only and can be anything.
switch (getMonth()) {
case Calendar.JANUARY:
return 1;
case Calendar.FEBRUARY:
return 2;
case Calendar.MARCH:
return 3;
case Calendar.APRIL:
return 4;
case Calendar.MAY:
return 5;
case Calendar.JUNE:
return 6;
case Calendar.JULY:
return 7;
case Calendar.AUGUST:
return 8;
case Calendar.SEPTEMBER:
return 9;
case Calendar.OCTOBER:
return 10;
case Calendar.NOVEMBER:
return 11;
case Calendar.DECEMBER:
return 12;
default:
assert false : "Invalid mongth: " + getMonth();
}
// This will never happen
return 0;
}
/**
* Return day of month of this day. NOTE: First day of month is 1 (not 0).
*
* @return Day of month of this day.
*/
public int getDayOfMonth() {
return calendar_.get(Calendar.DAY_OF_MONTH);
}
/**
* Return the day number of year this day represents. January 1 = 1 and so
* on.
*
* @return day number of year.
*/
public int getDayOfYear() {
return calendar_.get(Calendar.DAY_OF_YEAR);
}
/**
* Return the day of week of this day. NOTE: Must be compared to
* Calendar.MONDAY, TUSEDAY etc.
*
* @return Day of week of this day.
*/
public int getDayOfWeek() {
return calendar_.get(Calendar.DAY_OF_WEEK);
}
/**
* Return the day number of week of this day, where Monday=1, Tuesday=2, ...
* Sunday=7.
*
* @return Day number of week of this day.
*/
public int getDayNumberOfWeek() {
return getDayOfWeek() == Calendar.SUNDAY ? 7 : getDayOfWeek()
- Calendar.SUNDAY;
}
/**
* Return the week number of year, this day belongs to. 1st=1 and so on.
*
* @return Week number of year of this day.
*/
public int getWeekOfYear() {
return calendar_.get(Calendar.WEEK_OF_YEAR);
}
/**
* Return a day which is the given number of days after this day.
*
* @param nDays
* Number of days to add. May be negative.
* @return Day as requested.
*/
public Day addDays(int nDays) {
// Create a clone
Calendar calendar = (Calendar) calendar_.clone();
// Add/remove the specified number of days
calendar.add(Calendar.DAY_OF_MONTH, nDays);
// Return new instance
return new Day(calendar);
}
/**
* Subtract a number of days from this day.
*
* @param nDays
* Number of days to subtract.
* @return Day as requested.
*/
public Day subtractDays(int nDays) {
return addDays(-nDays);
}
/**
* Return a day wich is a given number of month after this day.
*
* The actual number of days added depends on the staring day. Subtracting a
* number of months can be done by a negative argument to addMonths() or
* calling subtactMonths() explicitly. NOTE: addMonth(n) m times will in
* general give a different result than addMonth(m*n). Add 1 month to January
* 31, 2005 will give February 28, 2005.
*
* @param nMonths
* Number of months to add.
* @return Day as requested.
*/
public Day addMonths(int nMonths) {
// Create a clone
Calendar calendar = (Calendar) calendar_.clone();
// Add/remove the specified number of days
calendar.add(Calendar.MONTH, nMonths);
// Return new instance
return new Day(calendar);
}
/**
* Subtract a number of months from this day.
*
* @see #addMonths(int).
*
* @param nMonths
* Number of months to subtract.
* @return Day as requested.
*/
public Day subtractMonths(int nMonths) {
return addMonths(-nMonths);
}
/**
* Return a day wich is a given number of years after this day.
*
* Add a number of years to this day. The actual number of days added depends
* on the starting day. Subtracting a number of years can be done by a
* negative argument to addYears() or calling subtractYears explicitly.
*
* @param nYears
* Number of years to add.
* @return Day as requested.
*/
public Day addYears(int nYears) {
// Create a clone
Calendar calendar = (Calendar) calendar_.clone();
// Add/remove the specified number of days
calendar.add(Calendar.YEAR, nYears);
// Return new instance
return new Day(calendar);
}
/**
* Subtract a number of years from this day.
*
* @see #addYears(int).
*
* @param nYears
* Number of years to subtract.
* @return Day as requested.
*/
public Day subtractYears(int nYears) {
return addYears(-nYears);
}
/**
* Return the number of days in the year of this day.
*
* @return Number of days in this year.
*/
public int getDaysInYear() {
return calendar_.getActualMaximum(Calendar.DAY_OF_YEAR);
}
/**
* Return true if the year of this day is a leap year.
*
* @return True if this year is a leap year, false otherwise.
*/
public boolean isLeapYear() {
return getDaysInYear() == calendar_.getMaximum(Calendar.DAY_OF_YEAR);
}
/**
* Return true if the specified year is a leap year.
*
* @param year
* Year to check.
* @return True if specified year is leap year, false otherwise.
*/
public static boolean isLeapYear(int year) {
return (new Day(year, Calendar.JANUARY, 1)).isLeapYear();
}
/**
* Return the number of days in the month of this day.
*
* @return Number of days in this month.
*/
public int getDaysInMonth() {
return calendar_.getActualMaximum(Calendar.DAY_OF_MONTH);
}
/**
* Get default locale name of this day ("Monday", "Tuesday", etc.
*
* @return Name of day.
*/
public String getDayName() {
switch (getDayOfWeek()) {
case Calendar.MONDAY:
return "Monday";
case Calendar.TUESDAY:
return "Tuesday";
case Calendar.WEDNESDAY:
return "Wednesday";
case Calendar.THURSDAY:
return "Thursday";
case Calendar.FRIDAY:
return "Friday";
case Calendar.SATURDAY:
return "Saturday";
case Calendar.SUNDAY:
return "Sunday";
default:
assert false : "Invalid day of week: " + getDayOfWeek();
}
// This will never happen
return null;
}
/**
* Get default locale name of this day ("Monday", "Tuesday", etc.
*
* @return Name of day.
*/
public String getShortDayName() {
switch (getDayOfWeek()) {
case Calendar.MONDAY:
return "Mon";
case Calendar.TUESDAY:
return "Tue";
case Calendar.WEDNESDAY:
return "Wed";
case Calendar.THURSDAY:
return "Thu";
case Calendar.FRIDAY:
return "Fri";
case Calendar.SATURDAY:
return "Sat";
case Calendar.SUNDAY:
return "Sun";
default:
assert false : "Invalid day of week: " + getDayOfWeek();
}
// This will never happen
return null;
}
/**
* Return number of days between two days. The method always returns a
* positive number of days.
*
* @param day
* The day to compare to.
* @return Number of days between this and day.
* @throws IllegalArgumentException
* If day is null.
*/
public int daysBetween(Day day) {
if (day == null)
throw new IllegalArgumentException("day cannot be null");
long millisBetween = Math.abs(calendar_.getTime().getTime()
- day.calendar_.getTime().getTime());
return (int) Math.round(millisBetween / (1000 * 60 * 60 * 24));
}
/**
* Find the n'th xxxxday of s specified month (for instance find 1st sunday
* of May 2006; findNthOfMonth (1, Calendar.SUNDAY, Calendar.MAY, 2006);
* Return null if the specified day doesn't exists.
*
* @param n
* Nth day to look for.
* @param dayOfWeek
* Day to look for (Calendar.XXXDAY).
* @param month
* Month to check (Calendar.XXX).
* @param year
* Year to check.
* @return Required Day (or null if non-existent)
* @throws IllegalArgumentException
* if dyaOfWeek parameter doesn't represent a valid day.
*/
public static Day getNthOfMonth(int n, int dayOfWeek, int month, int year) {
// Validate the dayOfWeek argument
if (dayOfWeek < 1 || dayOfWeek > 7)
throw new IllegalArgumentException("Invalid day of week: " + dayOfWeek);
Day first = new Day(year, month, 1);
int offset = dayOfWeek - first.getDayOfWeek();
if (offset < 0)
offset = 7 + offset;
int dayNo = (n - 1) * 7 + offset + 1;
return dayNo > first.getDaysInMonth() ? null
: new Day(year, month, dayNo);
}
/**
* Find the first of a specific day in a given month. For instance first
* Tuesday of May: getFirstOfMonth(Calendar.TUESDAY, Calendar.MAY, 2005);
*
* @param dayOfWeek
* Weekday to get.
* @param month
* Month of day to get.
* @param year
* Year of day to get.
* @return The requested day.
*/
public static Day getFirstOfMonth(int dayOfWeek, int month, int year) {
return Day.getNthOfMonth(1, dayOfWeek, month, year);
}
/**
* Find the last of a specific day in a given month. For instance last
* Tuesday of May: getLastOfMonth (Calendar.TUESDAY, Calendar.MAY, 2005);
*
* @param dayOfWeek
* Weekday to get.
* @param month
* Month of day to get.
* @param year
* Year of day to get.
* @return The requested day.
*/
public static Day getLastOfMonth(int dayOfWeek, int month, int year) {
Day day = Day.getNthOfMonth(5, dayOfWeek, month, year);
return day != null ? day : Day.getNthOfMonth(4, dayOfWeek, month, year);
}
public String getFormattedString(String fmt) {
return DateUtils.getFormattedDate(calendar_.getTime(), fmt);
}
/**
* Return a scratch string representation of this day. Used for debugging
* only. The format of the day is yyyy-mm-dd
*
* @return A string representation of this day.
*/
@Override
public String toString() {
StringBuffer s = new StringBuffer();
s.append(getYear());
s.append('-');
if (getMonth() < 9)
s.append('0');
s.append(getMonth() + 1);
s.append('-');
if (getDayOfMonth() < 10)
s.append('0');
s.append(getDayOfMonth());
return s.toString();
}
/**
* Testing this class.
*
* @param arguments
* Not used.
*/
public static void main(String[] arguments) {
// This proves that there are 912 days between the two major
// terrorist attacks, not 911 as is common knowledge.
Day september11 = new Day(2001, Calendar.SEPTEMBER, 11);
Day march11 = new Day(2004, Calendar.MARCH, 11);
System.out.println(september11.daysBetween(march11));
// This proves that Kennedy was president for 1037 days,
// not 1000 as is the popular belief nor 1036 which is the
// bluffers reply. Nerds knows when to add one...
Day precidency = new Day(1961, Calendar.JANUARY, 20);
Day assasination = new Day(1963, Calendar.NOVEMBER, 22);
System.out.println(precidency.daysBetween(assasination) + 1);
// Niel Armstrong walked the moon on a Sunday
Day nielOnMoon = new Day(1969, Calendar.JULY, 20);
System.out.println("Niel Armstron walked on the moon on "+ nielOnMoon.getDayName());
// Find last tuesdays for 2005
for (int i = 0; i < 12; i++) {
Day tuesday = Day.getLastOfMonth(Calendar.TUESDAY, i, 2005);
System.out.println(tuesday);
}
}
}

View file

@ -1,259 +0,0 @@
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
package edu.cornell.mannlib.semservices.bo;
import java.util.Date;
import java.util.Calendar;
import java.util.GregorianCalendar;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* A class representing a moment in time. Extends Day which represents the day
* of the moment, and defines the time within the day to millisecond accuracy.
*
* @author Jacob Dreyer (<a
* href="mailto:jacob.dreyer@geosoft.no">jacob.dreyer@geosoft.no</a>)
*/
public class Time extends Day {
protected final Log logger = LogFactory.getLog(getClass());
protected static final Log staticlogger = LogFactory.getLog(Time.class);
/**
* Instantiate a Time object. The time is lenient meaning that illegal day
* parameters can be specified and results in a recomputed day with legal
* month/day values.
*
* @param year Year of this time
* @param month Month of this time
* @param dayOfMonth Day of month of this time.
* @param hourOfDay Hours of this time [0-23]
* @param minutes Minutes of this time [0-23]
* @param seconds Seconds of this time [0-23]
*/
public Time(int year, int month, int dayOfMonth, int hourOfDay, int minutes,
int seconds) {
super(year, month, dayOfMonth);
setHourOfDay(hourOfDay);
setMinutes(minutes);
setSeconds(seconds);
}
/**
* Constructor
* @param day
* @param hourOfDay
* @param minutes
* @param seconds
*/
public Time(Day day, int hourOfDay, int minutes, int seconds) {
this(day.getYear(), day.getMonth(), day.getDayOfMonth(), hourOfDay,
minutes, seconds);
}
/**
* Constructor
* @param hourOfDay
* @param minutes
* @param seconds
*/
public Time(int hourOfDay, int minutes, int seconds) {
this(new Day(), hourOfDay, minutes, seconds);
}
/**
* Constructor
*/
public Time() {
calendar_ = new GregorianCalendar(); // Now
}
// end of constructors
// Get Methods
public Date getDay() {
return calendar_.getTime();
}
public int getHour() {
return calendar_.get(Calendar.HOUR);
}
public int getHourOfDay() {
return calendar_.get(Calendar.HOUR_OF_DAY);
}
public int getMinutes() {
return calendar_.get(Calendar.MINUTE);
}
public int getSeconds() {
return calendar_.get(Calendar.SECOND);
}
public int getMilliSeconds() {
return calendar_.get(Calendar.MILLISECOND);
}
public int getAmPm() {
return calendar_.get(Calendar.AM_PM);
}
// set Methods
public void setDay(Day day) {
setYear(day.getYear());
setMonth(day.getMonth());
setDayOfMonth(day.getDayOfMonth());
}
public void setYear(int year) {
calendar_.set(Calendar.YEAR, year);
}
public void setMonth(int month) {
calendar_.set(Calendar.MONTH, month);
}
public void setDayOfMonth(int dayOfMonth) {
calendar_.set(Calendar.DAY_OF_MONTH, dayOfMonth);
}
public void setHourOfDay(int hourOfDay) {
calendar_.set(Calendar.HOUR_OF_DAY, hourOfDay);
}
public void setHour(int hour) {
calendar_.set(Calendar.HOUR, hour);
}
public void setAmPm(int amPm) {
calendar_.set(Calendar.AM_PM, amPm);
}
public void setMinutes(int minutes) {
calendar_.set(Calendar.MINUTE, minutes);
}
public void setSeconds(int seconds) {
calendar_.set(Calendar.SECOND, seconds);
}
public void setMilliSeconds(int milliSeconds) {
calendar_.set(Calendar.MILLISECOND, milliSeconds);
}
// Time modification methods
public void addHours(int nHours) {
calendar_.add(Calendar.HOUR_OF_DAY, nHours);
}
public void addMinutes(int nMinutes) {
calendar_.add(Calendar.MINUTE, nMinutes);
}
public void addSeconds(int nSeconds) {
calendar_.add(Calendar.SECOND, nSeconds);
}
public void addMilliSeconds(int nMilliSeconds) {
calendar_.add(Calendar.MILLISECOND, nMilliSeconds);
}
public void subtractHours(int nHours) {
addHours(-nHours);
}
public void subtractMinutes(int nMinutes) {
addMinutes(-nMinutes);
}
public void subtractSeconds(int nSeconds) {
addSeconds(-nSeconds);
}
// Time test methods
public boolean isAfter(Time time) {
return calendar_.after(time.calendar_);
}
public boolean isBefore(Time time) {
return calendar_.before(time.calendar_);
}
public boolean equals(Time time) {
return calendar_.equals(time.calendar_);
}
// Time difference methods
public long milliSecondsBetween(Time time) {
long millisBetween = calendar_.getTime().getTime()
- time.calendar_.getTime().getTime();
return millisBetween;
}
public double secondsBetween(Time time) {
long millisBetween = calendar_.getTime().getTime()
- time.calendar_.getTime().getTime();
return millisBetween / 1000;
}
public double minutesBetween(Time time) {
long millisBetween = calendar_.getTime().getTime()
- time.calendar_.getTime().getTime();
return millisBetween / (1000 * 60);
}
public double hoursBetween(Time time) {
long millisBetween = calendar_.getTime().getTime()
- time.calendar_.getTime().getTime();
return millisBetween / (1000 * 60 * 60);
}
// Display methods
public String toString() {
StringBuffer string = new StringBuffer();
if (getHour() == 0) {
string.append("12"); // display "12" for midnight
} else {
string.append(getHour());
}
string.append(':');
if (getMinutes() < 10)
string.append('0');
string.append(getMinutes());
if (getAmPm() == Calendar.AM) {
string.append(" AM");
} else {
string.append(" PM");
}
return string.toString();
}
// Misc. methods
public static Time getTimeFromSqlTime(java.sql.Time sqlTime) {
// staticlogger.info("sqlTime "+ sqlTime.toString());
long ms = sqlTime.getTime();
java.util.Calendar gcal = GregorianCalendar.getInstance();
gcal.setTime(new Date(ms));
Time time = new Time(gcal.get(Calendar.HOUR_OF_DAY), gcal
.get(Calendar.MINUTE), gcal.get(Calendar.SECOND));
return time;
}
public static void main(String args[]) {
Time time = new Time(12, 00, 00);
System.out.println(time);
}
}

View file

@ -1,154 +0,0 @@
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
/*
* $Id$
* CONFIDENTIAL AND PROPRIETARY. ? 2007 Revolution Health Group LLC. All rights reserved.
* This source code may not be disclosed to others, used or reproduced without the written permission of Revolution Health Group.
*
*/
package edu.cornell.mannlib.semservices.util;
import java.lang.reflect.Constructor;
import java.lang.reflect.GenericArrayType;
import java.lang.reflect.Method;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Proxy;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import org.apache.log4j.Logger;
public class ClassUtils {
public static final String VERSION = "$Rev$";
private static final Logger LOG = Logger.getLogger(ClassUtils.class);
private ClassUtils() {}
@SuppressWarnings("unchecked")
public static Method[] getMethods(Class<?> clazz) {
if (Proxy.isProxyClass(clazz) && clazz.getInterfaces().length > 0 ) {
return clazz.getInterfaces()[0].getDeclaredMethods();
}
ArrayList<Method> methods = new ArrayList<Method>();
Class<?> interfaceClass = clazz;
// only change our classes
if ((interfaceClass.getPackage().getName().indexOf("java") != 0) && (interfaceClass != null)) {
if (!interfaceClass.isInterface()) {
Class[] interfaces = interfaceClass.getInterfaces();
for (Class interfaceTemp : interfaces) {
if (interfaceTemp.isInterface()) {
methods.addAll(Arrays.asList(interfaceTemp.getMethods()));
}
}
} else {
methods.addAll(Arrays.asList(interfaceClass.getMethods()));
}
}
if (methods.isEmpty()) {
methods.addAll(Arrays.asList(clazz.getDeclaredMethods()));
}
return methods.toArray(new Method[methods.size()]);
}
public static Object findEnumConstant(Class<Object> enumType, Object findConst) {
Object result = null;
Object[] enumConstants = enumType.getEnumConstants();
for (Object enumConst : enumConstants) {
if (enumConst.toString().equals(findConst.toString())) {
result = enumConst;
break;
}
}
if (result == null && findConst != null) { // last try for XmlEnum..
result = getXmlEnumFromValue(enumType, findConst.toString());
}
return result;
}
@SuppressWarnings("unchecked")
public static boolean isXmlEnum(Class<? extends Object> class1) {
boolean result = false;
try {
Class xmlEnumClass = Class.forName("javax.xml.bind.annotation.XmlEnum");
result = (xmlEnumClass != null) && (class1.getAnnotation(xmlEnumClass) != null);
} catch (ClassNotFoundException e) {
LOG.info("Class Not Found: javax.xml.bind.annotation.XmlEnum, this is ok if you aren't serializing JaxB Objects");
}
return result;
}
public static Object getXmlEnumFromValue(Class<Object> enumType, String findConst) {
Object result = null;
try {
if (isXmlEnum(enumType)) {
// XmlEnum will have a "fromValue" method to convert the const to the enum const
Method fromValue = enumType.getMethod("fromValue", String.class);
result = fromValue.invoke(enumType, findConst);
}
} catch (Exception e) {
// could happen..just give up and return null
}
return result;
}
public static boolean isArrayType(Class<?> type) {
return List.class.isAssignableFrom(type);
}
public static boolean isMapType(Class<?> type) {
return Map.class.isAssignableFrom(type);
}
public static Class<?> getArrayElementType(Method method, int paramIndex) {
Type[] types = method.getGenericParameterTypes();
if (types.length > paramIndex) {
return getArrayElementType(types[paramIndex]);
}
return null;
}
public static Class<?> getArrayElementType(Type genericType) {
Class<?> result = null;
if (genericType instanceof ParameterizedType) {
ParameterizedType pt = (ParameterizedType) genericType;
//Type raw = pt.getRawType();
//Type owner = pt.getOwnerType();
Type[] typeArgs = pt.getActualTypeArguments();
if (typeArgs[0] instanceof GenericArrayType) {
Class<?> arrayElementType = (Class<?>) ((GenericArrayType) typeArgs[0])
.getGenericComponentType();
result = arrayElementType;
} else if (typeArgs[0] instanceof Class<?>){
result = (Class<?>) typeArgs[0];
}
}
return result;
}
@SuppressWarnings("unchecked")
public static boolean hasEmptyConstructor(Class<?> type) {
boolean result = false;
Constructor[] constructors = type.getDeclaredConstructors();
for (Constructor constructor : constructors) {
if (constructor.getParameterTypes().length == 0) {
result = true;
break;
}
}
return result;
}
}

View file

@ -1,143 +0,0 @@
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
/*
* $Id: DateConverter.java 50408 2007-03-28 19:14:46Z jdamick $
*
* Copyright 2006- Revolution Health Group. All rights reserved.
*
* This software is the confidential and proprietary information
* of Revolution Health Group. (Confidential Information).
* You shall not disclose such Confidential Information and shall
* use it only in accordance with the terms of the license
* agreement you entered into with Revolution Health Group.
*
*/
package edu.cornell.mannlib.semservices.util;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.GregorianCalendar;
import javax.xml.datatype.DatatypeConfigurationException;
import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.XMLGregorianCalendar;
import org.apache.commons.beanutils.ConversionException;
import org.apache.commons.beanutils.Converter;
import org.apache.log4j.Logger;
import net.sf.json.JSONException;
import net.sf.json.JSONObject;
public final class DateConverter implements Converter {
private static final Logger LOG = Logger.getLogger(DateConverter.class);
// Constructors
/**
* Create a {@link Converter} that will throw a {@link ConversionException}
* if a conversion error occurs.
*/
public DateConverter() {
this.defaultValue = null;
converter = new XMLGregorianCalendarConverter(defaultValue);
}
/**
* Create a {@link Converter} that will return the specified default value
* if a conversion error occurs.
*
* @param defaultValue
* The default value to be returned
*/
public DateConverter(Object defaultValue) {
this.defaultValue = defaultValue;
converter = new XMLGregorianCalendarConverter(defaultValue);
}
// Instance Variables
/**
* The default value specified to our Constructor, if any.
*/
private Object defaultValue = null;
private XMLGregorianCalendarConverter converter = null;
// --------------------------------------------------------- Public Methods
/**
* Convert the specified input object into an output object of the specified
* type.
*
* @param type
* XMLGregorianCalendar type to which this value should be
* converted
* @param value
* The input value to be converted
*
* @exception ConversionException
* if conversion cannot be performed successfully
*/
@SuppressWarnings({ "unchecked", "deprecation" })
public Object convert(Class type, Object value) {
String dateValue = value.toString();
if (value instanceof Date) {
return (value);
} else {
try {
JSONObject jsonObj = JSONObject.fromObject(value.toString());
dateValue = jsonObj
.optString("Date" /* Date.class.toString() */);
} catch (JSONException e) { /* empty, could fail.. */
LOG.debug("no date object found in the json");
}
}
XMLGregorianCalendar calendar = (XMLGregorianCalendar) converter
.convert(type, dateValue);
Object result = null;
try {
result = calendar.toGregorianCalendar().getTime();
} catch (Exception exception) { /*
* empty, had some error parsing the
* time
*/
LOG.debug("Error converting the time");
if (result == null) {
try {
result = new Date(Date.parse(dateValue));
} catch (IllegalArgumentException argException) {
// last chance
result = java.sql.Date.valueOf(dateValue);
}
}
}
if (result != null && (result instanceof Date)
&& type.equals(java.sql.Date.class)) {
result = new java.sql.Date(((Date) result).getTime());
}
return result;
}
public static XMLGregorianCalendar toXMLGregorianCalendar(Date date) {
try {
GregorianCalendar calendar = new GregorianCalendar();
calendar.setTime(date);
return DatatypeFactory.newInstance().newXMLGregorianCalendar(
calendar);
} catch (DatatypeConfigurationException e) {
return null;
}
}
public static String toFormattedString(Date date) {
String s = new String();
s = new SimpleDateFormat("MMM d, h:mm a").format(date.getTime());
return s;
}
}

View file

@ -1,197 +0,0 @@
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
package edu.cornell.mannlib.semservices.util;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class DateUtils {
/** Logger for this class and subclasses */
protected final Log logger = LogFactory.getLog(getClass());
public static final Long MILLISECONDSINDAY = 86400L;
public static final Long MILLISECONDSINYEAR = MILLISECONDSINDAY * 365;
public static String getToday(String fmt) {
String today;
Calendar now = Calendar.getInstance();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-dd-MM");
today = formatter.format(now.getTime());
return today;
}
public static String getCurrentYear() {
String y;
Calendar now = Calendar.getInstance();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy");
y = formatter.format(now.getTime());
return y;
}
/**
* Get Current Jave Date
*
* returns a date in following format: Tue Apr 01 08:21:57 EST 2003
*/
public static java.util.Date getCurrentJavaDate() {
java.util.Date currentDate = new java.util.Date();
return currentDate;
}
/**
* get Current SQL date
*
* returns a date in following format: 2003-04-01
*/
public static java.sql.Date getCurrentSQLDate() {
java.util.Date currentDate = new java.util.Date();
java.sql.Date sqlDate = new java.sql.Date(currentDate.getTime());
return sqlDate;
}
/**
* get current SQL Timestamp
*
* returns a date in following format: 2003-04-01 08:21:57.556
*/
public static java.sql.Timestamp getCurrentSQLTimestamp() {
java.sql.Timestamp sqlTime = new java.sql.Timestamp(System.currentTimeMillis());
return sqlTime;
}
/**
* returns a formatted date/time as a string
*
* returns a date in the following format 01-04-03 08:21:57
*/
public static String getFormattedDate() {
String s = null;
Calendar today = Calendar.getInstance();
s = new SimpleDateFormat("dd-MM-yy hh:mm:ss").format(today.getTime());
return s;
}
/**
* returns a formatted date/time as a string
* @param a format string
* @return the current date in the specified format
*/
public static String getFormattedDate(String f) {
String s = null;
Calendar today = Calendar.getInstance();
s = new SimpleDateFormat(f).format(today.getTime());
return s;
}
/**
* given a String date in a described format (i.e. YYYY-mm-dd) convert
* it to a String date in a new format (i.e. MM-dd-YYYY)
*
* @param s input date string
* @param formatin a format string
* @param formatout a format string
* @return formated date string
*/
public static String convertStringDate(String s, String formatIn, String formatOut) {
try {
if (s.equals("now")) {
return (new SimpleDateFormat(formatOut).format(new java.util.Date()));
} else {
return (new SimpleDateFormat(formatOut)).format(
(new SimpleDateFormat(formatIn)).parse(
s, new ParsePosition(0)));
}
} catch( Exception e ) {
return "";
}
}
/**
* returns a Date given a formatted string
*/
public static java.util.Date setDate(String s) {
SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yy hh:mm:ss");
ParsePosition pos = new ParsePosition(0);
java.util.Date newDate = formatter.parse(s, pos);
return newDate;
}
/**
* returns a Date given a formatted string
*/
public static java.util.Date setDate(String s, String fmt) {
SimpleDateFormat formatter = new SimpleDateFormat(fmt);
ParsePosition pos = new ParsePosition(0);
java.util.Date newDate = formatter.parse(s, pos);
return newDate;
}
/**
* returns a SQL Date given a formatted string
*/
public static java.sql.Date getSQLDateFromString(String s) {
return java.sql.Date.valueOf(s);
}
/**
* returns a SQL Time given a formatted string
*/
public static java.sql.Time getSQLTimeFromString(String s) {
return java.sql.Time.valueOf(s);
}
/*
* return a formatted version of a java.sqlDate
*/
public static String getFormattedDate(java.util.Date date, String fmt) {
String formattedDate = new String();
formattedDate = new SimpleDateFormat(fmt).format(new java.util.Date(date.getTime()));
return formattedDate;
}
/*
* return a formatted version of a java.sqlDate
*/
public static String getFormattedSQLDate(java.sql.Date sqldate, String fmt) {
String formattedDate = new String();
formattedDate = new SimpleDateFormat(fmt).format(new java.util.Date(sqldate.getTime()));
return formattedDate;
}
public static java.sql.Date getNextSQLDate(java.sql.Date currentDate) {
Calendar cal = Calendar.getInstance();
cal.setTime(currentDate);
cal.add(Calendar.DATE, 1);
java.util.Date tomorrow = cal.getTime();
return new java.sql.Date(tomorrow.getTime());
}
/**
* @param start
* @param end
* @return elapsed time
*/
public static String getElapsedTime(String start, String end) {
long startlong = Long.parseLong(start, 10);
long endlong = Long.parseLong(end, 10);
long elapsed = endlong - startlong;
return Long.toString(elapsed, 10);
}
/**
* returns a SQL Timestamp given a formatted string
*/
public static java.sql.Timestamp convertSQLTimestamp(String s, String formatIn, String formatOut) {
String s2 = convertStringDate(s, formatIn, formatOut);
//System.out.println("s2: "+s2);
return java.sql.Timestamp.valueOf(s2+".0");
}
}

View file

@ -1,80 +0,0 @@
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
package edu.cornell.mannlib.semservices.util;
import java.util.Date;
import org.apache.commons.beanutils.Converter;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import edu.cornell.mannlib.semservices.bo.Day;
public class DayConverter implements Converter {
@SuppressWarnings("unused")
private static final Log logger = LogFactory.getLog(DayConverter.class);
/**
* The default value specified to our Constructor, if any.
*/
@SuppressWarnings("unused")
private Object defaultValue = null;
/**
* Should we return the default value on conversion errors?
*/
@SuppressWarnings("unused")
private boolean useDefault = true;
/**
* Constructor
*/
public DayConverter() {
this.defaultValue = null;
this.useDefault = false;
}
/**
* Constructor with object
* @param defaultValue
*/
public DayConverter(Object defaultValue) {
this.defaultValue = defaultValue;
this.useDefault = true;
}
/* (non-Javadoc)
* @see org.apache.commons.beanutils.Converter#convert(java.lang.Class, java.lang.Object)
*/
@SuppressWarnings("unchecked")
public Object convert(Class type, Object value) {
String s = value.toString();
return s;
}
/**
* Format the output to something reasonable
* @param day
* @return
*/
public static String toFormattedString(Object day) {
Day dayObject = (Day) day;
String s = dayObject.getDayName()+
", "+dayObject.getMonthName()+
" "+dayObject.getDayOfMonth()+
", "+dayObject.getYear();
return s;
}
public static String toUnixTime(Object day) {
// get date in milliseconds and divide by zero to return unixtime
Day dayObject = (Day) day;
Date date = dayObject.getDate();
Long seconds = date.getTime() / 1000;
//logger.info("unixtime: " + seconds.toString());
return seconds.toString();
}
}

View file

@ -1,276 +0,0 @@
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
/*
* $Id$
* CONFIDENTIAL AND PROPRIETARY. © 2007 Revolution Health Group LLC. All rights reserved.
* This source code may not be disclosed to others, used or reproduced without the written permission of Revolution Health Group.
*
*/
package edu.cornell.mannlib.semservices.util;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class ObjectUtils {
public static final String VERSION = "$Rev: 63219 $";
private static final Log logger = LogFactory.getLog(ObjectUtils.class);
@SuppressWarnings("unchecked")
private static final Set<Class> SIMPLE_TYPES = new HashSet<Class>() {
/**
*
*/
private static final long serialVersionUID = 1L;
{
add(Boolean.class);
add(boolean.class);
add(Float.class);
add(float.class);
add(Double.class);
add(double.class);
add(Integer.class);
add(int.class);
add(Long.class);
add(long.class);
add(Short.class);
add(short.class);
add(Byte.class);
add(byte.class);
add(String.class);
add(BigDecimal.class);
add(BigInteger.class);
}
};
/**
*
*/
private ObjectUtils() {
}
/**
* @param obj
* @return
*/
@SuppressWarnings("unchecked")
public static boolean isMap(Object obj) {
if (obj instanceof Map) {
return true;
}
return false;
}
/**
* @param obj
* @return
*/
public static boolean isBigDecimal(Object obj) {
if (obj instanceof BigDecimal) {
return true;
}
return false;
}
/**
* @param obj
* @return
*/
public static boolean isArray(Object obj) {
if (obj != null) {
return isClassArray(obj.getClass());
}
return false;
}
/**
* @param clazz
* @return
*/
@SuppressWarnings("unchecked")
public static boolean isClassArray(Class clazz) {
if (clazz.isArray()) {
return true;
}
if (Collection.class.isAssignableFrom(clazz)) {
return true;
}
return false;
}
/**
* @param obj
* @return
*/
public static boolean isSimpleType(Object obj) {
boolean result = false;
if (obj != null) {
result = isClassSimpleType(obj.getClass());
}
return result;
}
/**
* @param clazz
* @return
*/
@SuppressWarnings("unchecked")
public static boolean isClassSimpleType(Class clazz) {
boolean result = false;
if (clazz != null && SIMPLE_TYPES.contains(clazz)) {
result = true;
}
return result;
}
/**
* @param value
* @return
*/
@SuppressWarnings("unchecked")
public static boolean isComplex(Object value) {
Class type = value.getClass();
return !(isSimpleType(value) || type.isEnum());
}
/**
* @param enumObj
* @return
*/
@SuppressWarnings("unchecked")
public static String getXmlEnumValue(Object enumObj) {
String result = null;
try {
if (ClassUtils.isXmlEnum((Class<Object>) enumObj.getClass())) {
// XmlEnum will have a "fromValue" method to convert the const
// to the enum const
Method value = enumObj.getClass().getMethod("value");
result = value.invoke(enumObj).toString();
}
} catch (Exception e) {
// could happen..just give up and return null
}
return result;
}
/**
* @param o
*/
public static void printBusinessObject(Object o) {
Field[] fields = o.getClass().getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
Field field = fields[i];
try {
field.setAccessible(true);
System.out.println(field.getName()+": "+field.get(o));
}
catch (IllegalAccessException e) {
System.err.println("Illegal access exception");
} catch (NullPointerException e) {
System.err.println("Nullpointer Exception");
}
}
System.out.println();
}
/**
* @param o
* @param fieldnames
*/
public static void printBusinessObject(Object o, List<String> fieldnames) {
Field[] fields = new Field[fieldnames.size()];
int f = 0;
for (String s: fieldnames) {
try {
fields[f++] = o.getClass().getDeclaredField(s);
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchFieldException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
for (int i = 0; i < fields.length; i++) {
Field field = fields[i];
try {
field.setAccessible(true);
System.out.println(field.getName()+": "+field.get(o));
}
catch (IllegalAccessException e) {
System.err.println("Illegal access exception");
} catch (NullPointerException e) {
System.err.println("Nullpointer Exception");
}
}
System.out.println();
}
/**
* @param o
*/
public static void logBusinessObject(Object o) {
Field[] fields = o.getClass().getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
Field field = fields[i];
try {
field.setAccessible(true);
logger.info(field.getName()+": "+field.get(o));
}
catch (IllegalAccessException e) {
logger.error("Illegal access exception");
} catch (NullPointerException e) {
logger.error("Nullpointer Exception");
}
}
}
/**
* @param mapobject
*/
public static void printMapObject(Map<?, ?> mapobject) {
Iterator<?> iter = mapobject.keySet().iterator();
while (iter.hasNext()) {
Object keyobj = iter.next();
Object valobj = mapobject.get(keyobj);
System.out.println(keyobj +": "+ valobj);
}
}
/**
* @param mapobject
*/
public static void logMapObject(Map<?, ?> mapobject) {
Iterator<?> iter = mapobject.keySet().iterator();
while (iter.hasNext()) {
Object keyobj = iter.next();
Object valobj = mapobject.get(keyobj);
logger.info(keyobj +": "+ valobj);
}
}
public static String nl2br(String text) {
return text.replaceAll("\n\n", "<p>").replaceAll("\n", "<br>");
}
}

View file

@ -1,74 +0,0 @@
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
package edu.cornell.mannlib.semservices.util;
import edu.cornell.mannlib.semservices.bo.Time;
import java.util.Date;
import org.apache.commons.beanutils.Converter;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class TimeConverter implements Converter {
@SuppressWarnings("unused")
private static final Log logger = LogFactory.getLog(TimeConverter.class);
/**
* The default value specified to our Constructor, if any.
*/
@SuppressWarnings("unused")
private Object defaultValue = null;
/**
* Should we return the default value on conversion errors?
*/
@SuppressWarnings("unused")
private boolean useDefault = true;
/**
*
*/
public TimeConverter() {
this.defaultValue = null;
this.useDefault = false;
}
/**
* @param defaultValue
*/
public TimeConverter(Object defaultValue) {
this.defaultValue = defaultValue;
this.useDefault = true;
}
/* (non-Javadoc)
* @see org.apache.commons.beanutils.Converter#convert(java.lang.Class, java.lang.Object)
*/
@SuppressWarnings("unchecked")
public Object convert(Class type, Object value) {
String s = value.toString();
return s;
}
/**
* @param time
* @return
*/
public static String toFormattedString(Object time) {
return time.toString();
}
/**
* @param time
* @return
*/
public static String toUnixTime(Object time) {
Time timeObject = (Time) time;
Date date = timeObject.getDate();
Long seconds = date.getTime() / 1000;
//logger.info("unixtime: " + seconds.toString());
return seconds.toString();
}
}

View file

@ -1,65 +0,0 @@
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
package edu.cornell.mannlib.semservices.util;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.commons.beanutils.Converter;
public class TimestampConverter implements Converter {
/**
* The default value specified to our Constructor, if any.
*/
@SuppressWarnings("unused")
private Object defaultValue = null;
/**
* Should we return the default value on conversion errors?
*/
@SuppressWarnings("unused")
private boolean useDefault = true;
/**
*
*/
public TimestampConverter() {
this.defaultValue = null;
this.useDefault = false;
}
/**
* @param defaultValue
*/
public TimestampConverter(Object defaultValue) {
this.defaultValue = defaultValue;
this.useDefault = true;
}
/* (non-Javadoc)
* @see org.apache.commons.beanutils.Converter#convert(java.lang.Class, java.lang.Object)
*/
@SuppressWarnings("unchecked")
public Object convert(Class type, Object value) {
Timestamp ts = (Timestamp) value;
String s = new String();
s = new SimpleDateFormat("MMM d, h:mm a").format(ts.getTime());
return s;
}
/**
* @param time
* @return
*/
public String toUnixTime(Object time) {
Timestamp ts = (Timestamp) time;
Date date = new Date(ts.getTime());
Long seconds = date.getTime() / 1000;
//logger.info("unixtime: " + seconds.toString());
return seconds.toString();
}
}

View file

@ -1,103 +0,0 @@
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
/*
* $Id: XMLGregorianCalendarConverter.java 28642 2006-10-25 13:41:54Z jdamick $
*
* Copyright 2006- Revolution Health Group. All rights reserved.
*
* This software is the confidential and proprietary information
* of Revolution Health Group. (Confidential Information).
* You shall not disclose such Confidential Information and shall
* use it only in accordance with the terms of the license
* agreement you entered into with Revolution Health Group.
*
*/
package edu.cornell.mannlib.semservices.util;
import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.XMLGregorianCalendar;
import org.apache.commons.beanutils.ConversionException;
import org.apache.commons.beanutils.Converter;
public final class XMLGregorianCalendarConverter implements Converter {
// Constructors
/**
* Create a {@link Converter} that will throw a {@link ConversionException}
* if a conversion error occurs.
*/
public XMLGregorianCalendarConverter() {
this.defaultValue = null;
this.useDefault = false;
}
/**
* Create a {@link Converter} that will return the specified default value if
* a conversion error occurs.
*
* @param defaultValue
* The default value to be returned
*/
public XMLGregorianCalendarConverter(Object defaultValue) {
this.defaultValue = defaultValue;
this.useDefault = true;
}
// Instance Variables
/**
* The default value specified to our Constructor, if any.
*/
private Object defaultValue = null;
/**
* Should we return the default value on conversion errors?
*/
private boolean useDefault = true;
// Public Methods
/**
* Convert the specified input object into an output object of the specified
* type.
*
* @param type
* XMLGregorianCalendar type to which this value should be
* converted
* @param value
* The input value to be converted
*
* @exception ConversionException
* if conversion cannot be performed successfully
*/
@SuppressWarnings("unchecked")
public Object convert(Class type, Object value) {
if (value == null) {
if (useDefault) {
return (defaultValue);
} else {
throw new ConversionException("No value specified");
}
}
if (value instanceof XMLGregorianCalendar) {
return (value);
}
try {
return DatatypeFactory.newInstance().newXMLGregorianCalendar(
value.toString());
} catch (Exception e) {
if (useDefault) {
return (defaultValue);
} else {
throw new ConversionException(e);
}
}
}
}

View file

@ -1,228 +0,0 @@
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
/*
* $Id: BeanToJsonSerializer.java 66350 2007-08-20 21:11:41Z xluan $
*
* Copyright 2006- Revolution Health Group. All rights reserved.
*
* This software is the confidential and proprietary information
* of Revolution Health Group. (Confidential Information).
* You shall not disclose such Confidential Information and shall
* use it only in accordance with the terms of the license
* agreement you entered into with Revolution Health Group.
*
*/
package edu.cornell.mannlib.semservices.view;
import java.beans.PropertyDescriptor;
import java.lang.reflect.InvocationTargetException;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import javax.xml.datatype.XMLGregorianCalendar;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.beanutils.PropertyUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import net.sf.json.JSONArray;
import net.sf.json.JSONException;
import net.sf.json.JSONNull;
import net.sf.json.JSONObject;
import edu.cornell.mannlib.semservices.bo.Day;
import edu.cornell.mannlib.semservices.bo.Time;
import edu.cornell.mannlib.semservices.util.ClassUtils;
import edu.cornell.mannlib.semservices.util.DateConverter;
import edu.cornell.mannlib.semservices.util.DayConverter;
import edu.cornell.mannlib.semservices.util.ObjectUtils;
import edu.cornell.mannlib.semservices.util.TimeConverter;
import edu.cornell.mannlib.semservices.util.TimestampConverter;
@SuppressWarnings("serial")
public class BeanToJsonSerializer {
private static final Log logger = LogFactory.getLog(BeanToJsonSerializer.class);
/**
*
*/
private BeanToJsonSerializer() {
ConvertUtils.register(new DateConverter(), java.util.Date.class);
ConvertUtils.register(new TimestampConverter(),
String.class);
ConvertUtils.register(new TimeConverter(), String.class);
ConvertUtils.register(new DayConverter(), String.class);
}
/**
*
*/
@SuppressWarnings("unchecked")
private static final Set<Class> CONVERTABLE_CLASSES = new HashSet<Class>() {
{
add(XMLGregorianCalendar.class);
}
};
/**
* @param bean
* @return
*/
public static JSONObject serializeToJsonObject(Object bean) {
Object result = serialize(bean);
JSONObject jsonObj = new JSONObject();
try {
if (ObjectUtils.isArray(bean) || result instanceof JSONArray) {
jsonObj.put("array", result);
} else if (result instanceof JSONObject) {
jsonObj = (JSONObject) result;
} else {
jsonObj.put(bean.getClass().getSimpleName(), result);
}
} catch (JSONException e) {
logger.error("JSONException ",e);
}
return jsonObj;
}
/**
* @param bean
* @return
*/
@SuppressWarnings("unchecked")
public static Object serialize(Object bean) {
//String simpleName = bean.getClass().getSimpleName();
Object result = JSONNull.getInstance();
if (isObjectJson(bean)) {
result = bean;
} else if (bean != null && isConvertable(bean.getClass())) {
//logger.info("Converting convertable Class: "+simpleName);
result = ConvertUtils.convert(bean);
} else if (bean != null && Time.class.isAssignableFrom(bean.getClass())) {
//logger.info("Converting Time Class: "+simpleName);
result = TimeConverter.toUnixTime((Time) bean);
} else if (bean != null && Day.class.isAssignableFrom(bean.getClass())) {
//logger.info("Converting Day Class: "+simpleName);
result = DayConverter.toUnixTime((Day) bean);
} else if (bean != null
&& java.util.Date.class.isAssignableFrom(bean.getClass())) {
// for date consistency, use the XMLGregorianCalendar
// result =
// DateConverter.toXMLGregorianCalendar((java.util.Date)bean
// ).toString();
//logger.info("Converting Date Class: "+simpleName);
result = DateConverter.toFormattedString((java.util.Date) bean);
} else if (bean != null && ObjectUtils.isComplex(bean)
&& !ObjectUtils.isArray(bean) && !ObjectUtils.isMap(bean)) {
//logger.info("Converting complex bean: "+simpleName);
JSONObject jsonObject = new JSONObject();
try {
PropertyDescriptor[] pds = PropertyUtils
.getPropertyDescriptors(bean);
for (int i = 0; i < pds.length; i++) {
String key = pds[i].getName();
if ("class".equals(key)) {
continue;
}
Class type = pds[i].getPropertyType();
Object value = PropertyUtils.getProperty(bean, key);
if (String.class.isAssignableFrom(type)) {
jsonObject.put(key, (value == null) ? "" : value);
} else if (ObjectUtils.isArray(value)) {
jsonObject.put(key, serialize(value));
} else if (value == null) {
jsonObject.put(key, JSONNull.getInstance());
} else if (ObjectUtils.isSimpleType(value) || type.isEnum()) {
if (ClassUtils.isXmlEnum(type)) {
jsonObject.put(key, ObjectUtils.getXmlEnumValue(value));
} else {
jsonObject.put(key, value);
}
} else {
jsonObject.put(key, serialize(value));
}
}
result = jsonObject;
} catch (IllegalAccessException e) {
logger.error("IllegalAccessException ", e);
} catch (InvocationTargetException e) {
logger.error("InvocationTargetException ", e);
} catch (NoSuchMethodException e) {
logger.error("NoSuchMethodException ", e);
} catch (JSONException e) {
logger.error("JSONException ", e);
}
} else if (ObjectUtils.isArray(bean)) {
//logger.info("Converting Array bean: "+simpleName);
Collection collection = null;
if (bean.getClass().isArray()) {
collection = Arrays.asList((Object[]) bean);
} else {
collection = (Collection) bean;
}
result = new JSONArray();
for (Object item : collection) {
((JSONArray) result).add(serialize(item));
}
} else if (ObjectUtils.isMap(bean)) {
//logger.info("Converting Map bean: "+simpleName);
Map map = (Map) bean;
result = new JSONObject();
for (Object key : map.keySet()) {
try {
((JSONObject) result).put(key.toString(),
serialize(map.get(key)));
} catch (JSONException e) {
logger.error("JSONException ",e);
}
}
} else if (bean != null && ClassUtils.isXmlEnum(bean.getClass())) {
//logger.info("converting xmlEnum bean: "+simpleName);
result = ObjectUtils.getXmlEnumValue(bean);
} else {
//logger.info("just returning the bean: "+simpleName);
result = bean;
}
return result;
}
/**
* @param clazz
* @return
*/
@SuppressWarnings("unchecked")
private static boolean isConvertable(Class clazz) {
boolean found = false;
for (Class convertableClass : CONVERTABLE_CLASSES) {
if (convertableClass.isAssignableFrom(clazz)) {
found = true;
break;
} else {
//logger.warn("Class is not convertable");
//logger.warn("Class: " + clazz.getSimpleName());
}
}
return found;
}
/**
* @param bean
* @return
*/
private static boolean isObjectJson(Object bean) {
if ((JSONNull.getInstance().equals(bean)) || (bean instanceof JSONObject)
|| (bean instanceof JSONArray)) {
return true;
}
return false;
}
}

View file

@ -26,7 +26,9 @@ public class AddResearcherRoleToPersonGenerator extends AddRoleToPersonTwoStageG
return new ConstantFieldOptions( return new ConstantFieldOptions(
"", "Select one", "", "Select one",
"http://vivoweb.org/ontology/core#Grant", "Grant", "http://vivoweb.org/ontology/core#Grant", "Grant",
"http://vivoweb.org/ontology/core#Project", "Project"); "http://purl.obolibrary.org/obo/ERO_0000015", "Human Study",
"http://vivoweb.org/ontology/core#Project", "Project",
"http://purl.obolibrary.org/obo/ERO_0000014", "Research Project");
} }
@Override @Override

View file

@ -50,9 +50,14 @@ public class NewIndividualFormGenerator extends BaseEditConfigurationGenerator i
+ " ?newVcardInd vcard:hasName ?newVcardName . \n" + " ?newVcardInd vcard:hasName ?newVcardName . \n"
+ " ?newVcardName a vcard:Name . \n" + " ?newVcardName a vcard:Name . \n"
+ " ?newVcardName vcard:givenName ?firstName . \n" + " ?newVcardName vcard:givenName ?firstName . \n"
+ " ?newVcardName vcard:familyName ?lastName . \n" + " ?newVcardName vcard:familyName ?lastName . \n",
+ " ?newVcardName <http://vivoweb.org/ontology/core#middleName> ?middleName .", N3_PREFIX + " ?newInd <" + RDFS.label.getURI() + "> ?label .",
N3_PREFIX + " ?newInd <" + RDFS.label.getURI() + "> ?label ." N3_PREFIX + "@prefix vcard:<http://www.w3.org/2006/vcard/ns#> .\n"
+ " ?newInd <http://purl.obolibrary.org/obo/ARG_2000028> ?newVcardInd . \n"
+ " ?newVcardInd a vcard:Individual . \n"
+ " ?newVcardInd vcard:hasName ?newVcardName . \n"
+ " ?newVcardName a vcard:Name . \n"
+ " ?newVcardName <http://vivoweb.org/ontology/core#middleName> ?middleName ."
)); ));
config.addNewResource("newInd", vreq.getWebappDaoFactory().getDefaultNamespace()); config.addNewResource("newInd", vreq.getWebappDaoFactory().getDefaultNamespace());

View file

@ -11,16 +11,16 @@ import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import net.sf.json.JSONObject;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import edu.cornell.mannlib.semservices.bo.Concept; import edu.cornell.mannlib.semservices.bo.Concept;
import edu.cornell.mannlib.semservices.bo.ConceptInfo; import edu.cornell.mannlib.semservices.bo.ConceptInfo;
import edu.cornell.mannlib.semservices.bo.SemanticServicesError; import edu.cornell.mannlib.semservices.bo.SemanticServicesError;
import edu.cornell.mannlib.semservices.view.BeanToJsonSerializer;
import edu.cornell.mannlib.vitro.webapp.controller.VitroHttpServlet; import edu.cornell.mannlib.vitro.webapp.controller.VitroHttpServlet;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.utils.ConceptSearchService.ConceptSearchServiceUtils; import edu.cornell.mannlib.vitro.webapp.utils.ConceptSearchService.ConceptSearchServiceUtils;
@ -58,7 +58,9 @@ public class ConceptSearchServlet extends VitroHttpServlet {
conceptInfo.setSemanticServicesError(semanticServicesError); conceptInfo.setSemanticServicesError(semanticServicesError);
} }
conceptInfo.setConceptList(results); conceptInfo.setConceptList(results);
String json = renderJson(conceptInfo); String json = renderJson(conceptInfo);
json = StringUtils.replaceChars(json, "\r\t\n", ""); json = StringUtils.replaceChars(json, "\r\t\n", "");
PrintWriter writer = resp.getWriter(); PrintWriter writer = resp.getWriter();
resp.setContentType("application/json"); resp.setContentType("application/json");
@ -70,12 +72,18 @@ public class ConceptSearchServlet extends VitroHttpServlet {
} }
} }
protected String renderJson(ConceptInfo conceptInfo) { protected String renderJson(ConceptInfo conceptInfo) {
JSONObject jsonObject = null; ObjectMapper mapper = new ObjectMapper();
jsonObject = BeanToJsonSerializer.serializeToJsonObject(conceptInfo); try {
log.debug(jsonObject.toString()); return mapper.writeValueAsString(conceptInfo);
return jsonObject.toString(); } catch (JsonProcessingException e) {
} // TODO Auto-generated catch block
log.error("An error occurred in rendering conceptInfo as json ", e);
return null;
}
}
} }

View file

@ -0,0 +1,115 @@
<!-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
<script src="js/jquery.js"></script>
<script>
function TestLOD() {
self = this;
this.setup = setupButtons;
this.uri = "lodFacultyMember";
function setupButtons() {
document.getElementById("RDFXML_button").onclick = function() {
requestWithAcceptHeader(self.uri, "application/rdf+xml");
}
document.getElementById("N3_button").onclick = function() {
requestWithAcceptHeader(self.uri, "text/n3");
}
document.getElementById("TTL_button").onclick = function() {
requestWithAcceptHeader(self.uri, "text/turtle");
}
document.getElementById("JSONLD_button").onclick = function() {
requestWithAcceptHeader(self.uri, "application/json");
}
document.getElementById("BOGUS_URI_button").onclick = function() {
requestWithAcceptHeader(self.uri + "XX", "application/rdf+xml");
}
document.getElementById("BOGUS_ACCEPT_button").onclick = function() {
requestWithAcceptHeader(self.uri, "image/png");
}
document.getElementById("BOGUS_FORMAT_button").onclick = function() {
requestWithFormat(self.uri, "bogus");
}
document.getElementById("BOGUS_EXTENSION_button").onclick = function() {
requestWithExtension(self.uri, "bogus");
}
document.getElementById("CLEAR_button").onclick = clearResult
}
function requestWithAcceptHeader(uri, mimetype) {
$.ajax({
url: "individual/" + uri,
headers: {Accept: mimetype},
dataType: "text",
complete: displayResult
});
}
function requestWithFormat(uri, format) {
$.ajax({
url: "individual/" + uri + "?format=" + format,
dataType: "text",
complete: displayResult
});
}
function requestWithExtension(uri, extension) {
$.ajax({
url: "individual/" + uri + "/" + uri + "." + extension,
dataType: "text",
complete: displayResult
});
}
function displayResult(xhr, status) {
$("#responseCode").text(xhr.status);
$("#mimeType").text(getMimeType(xhr));
$("#responseText").text(xhr.responseText);
}
function clearResult() {
$("#responseCode").text("000");
$("#mimeType").text("No type");
$("#responseText").text("No text");
}
function getMimeType(xhr) {
var header = xhr.getResponseHeader("Content-Type");
var where = header.indexOf(";");
if (where == -1) {
return header;
} else {
return header.substring(0, where);
}
}
}
$(document).ready(function() {
new TestLOD().setup();
});
</script>
<h1>Test the Linked Open Data requests</h1>
<h3>Try various accept headers</h3>
<input type="submit" value="get RDFXML" id="RDFXML_button">
<input type="submit" value="get N3" id="N3_button">
<input type="submit" value="get TTL" id="TTL_button">
<input type="submit" value="get JSONLD" id="JSONLD_button">
<h3>Try non-existent URI with RDFXML accept header</h3>
<input type="submit" value="get BOGUS Individual" id="BOGUS_URI_button">
<input type="submit" value="use BOGUS Accept header" id="BOGUS_ACCEPT_button">
<input type="submit" value="use BOGUS format" id="BOGUS_FORMAT_button">
<input type="submit" value="use BOGUS extension" id="BOGUS_EXTENSION_button">
<h3>Response data</h3>
<input type="submit" value="CLEAR response" id="CLEAR_button">
<div>Response code is <b><span id="responseCode">000</span></b></div>
<div>MIME type is <b><span id="mimeType">No type</span></b></div>
<div>Text is:</div>
<div id="responseText" style="font-size:small;">No text</div>

View file

@ -0,0 +1,56 @@
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xmls: <http://www.w3.org/2001/XMLSchema#> .
@prefix local: <http://vivo.mydomain.edu/individual/> .
@prefix vivo: <http://vivoweb.org/ontology/core#> .
@prefix vcard: <http://www.w3.org/2006/vcard/ns#> .
@prefix obo: <http://purl.obolibrary.org/obo/> .
local:lodFacultyMember
a vivo:FacultyMember ;
rdfs:label "Example, Bad "^^xmls:string ;
obo:ARG_2000028 local:lodVcard ;
obo:RO_0000053 local:lodMembership ;
vivo:overview "Not someone on whom you should base your actions." ;
vivo:scopusId "10982375409" ;
vivo:eRACommonsId "My_eRA_ID" .
local:lodVcard
a vcard:Kind , vcard:Individual ;
obo:ARG_2000029 local:lodFacultyMember ;
vcard:hasName local:lodName ;
vcard:hasURL local:lodWebsite .
local:lodName
a vcard:Name ;
vcard:familyName "Example"^^xmls:string ;
vcard:givenName "Bad"^^xmls:string ;
vcard:honorificPrefix "Mr."^^xmls:string .
local:lodWebsite
a vcard:URL ;
rdfs:label "Slashdot" ;
vivo:rank "1"^^xmls:int ;
vcard:url "http://www.slashdot.org"^^xmls:anyURI .
local:lodMembership
a vivo:MemberRole ;
rdfs:label "Bozo"^^xmls:string ;
obo:RO_0000052 local:lodFacultyMember ;
vivo:dateTimeInterval local:lodInterval ;
vivo:roleContributesTo local:lodDepartment .
local:lodInterval
a vivo:DateTimeInterval ;
vivo:start local:lodStartDate .
local:lodStartDate
a vivo:DateTimeValue ;
vivo:dateTime "1992-01-01T00:00:00"^^xmls:dateTime ;
vivo:dateTimePrecision vivo:yearPrecision .
local:lodDepartment
a vivo:AcademicDepartment ;
rdfs:label "Department of Redundancy Department"^^xmls:string ;
vivo:contributingRole local:lodMembership .