diff --git a/.gitignore b/.gitignore
index bcb3b16e..d5374069 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,4 +6,5 @@
/deploy.properties
/build.properties
/runtime.properties
-catalog-v001.xml
+/ontology/public/catalog-v0001.xml
+
diff --git a/productMods/WEB-INF/filegraph/tbox/ConceptSemanticType.owl b/productMods/WEB-INF/filegraph/tbox/ConceptSemanticType.owl
new file mode 100644
index 00000000..04ab3d10
--- /dev/null
+++ b/productMods/WEB-INF/filegraph/tbox/ConceptSemanticType.owl
@@ -0,0 +1,47 @@
+
+
+ 0.7
+
+
+
+ Semantic Type for given concept, for example UMLS's type returned for concepts
+ Semantic Type for given concept, for example UMLS's type returned for concepts.
+
+ Concept Semantic Type
+
+
+
+
+
+
+
+
diff --git a/productMods/js/homePageMaps.js b/productMods/js/homePageMaps.js
index 01cb4058..f39f3ab6 100644
--- a/productMods/js/homePageMaps.js
+++ b/productMods/js/homePageMaps.js
@@ -9,6 +9,7 @@ $(document).ready(function(){
$.extend(this, urlsBase);
$.extend(this, i18nStrings);
+ $.extend(this, geoResearcherCount);
getGeoJsonForMaps();
@@ -368,7 +369,7 @@ $(document).ready(function(){
function getResearcherCount(area) {
- var researcherCount = 0;
+ var researcherCount = this.geoResearcherCount;
var areaCount = 0;
var text = "";
if ( area == "global" ) {
@@ -383,7 +384,6 @@ $(document).ready(function(){
$.each(researchAreas.features, function() {
if ( this.properties.mapType == area ) {
- researcherCount = researcherCount + this.properties.html ;
areaCount = areaCount + 1;
}
});
@@ -391,10 +391,16 @@ $(document).ready(function(){
if ( areaCount == 1 && text == " states.") {
text = " " + i18nStrings.stateString;
}
+ if ( researcherCount == 1 ) {
+ researcherText = " " + i18nStrings.researcherString + " " + i18nStrings.inString;
+ }
+ else {
+ researcherText = " " + i18nStrings.researcherInString
+ }
$('div#researcherTotal').html(""
- + researcherCount.toString().replace(/(\d+)(\d{3})/, '$1'+','+'$2')
- + " " + i18nStrings.researchersInString + " "
+ + researcherCount
+ + " " + researcherText + " "
+ areaCount + "" + text);
}
function appendLegendToLeafletContainer() {
diff --git a/productMods/js/individual/propertyGroupControls.js b/productMods/js/individual/propertyGroupControls.js
index 70cb4c99..c4386256 100644
--- a/productMods/js/individual/propertyGroupControls.js
+++ b/productMods/js/individual/propertyGroupControls.js
@@ -69,22 +69,25 @@ $(document).ready(function(){
location.hash = location.hash.replace(/\s+/g, '');
if ( location.hash.indexOf("map") >= 0 ) {
// get the name of the group that contains the geographicFocusOf property.
- var tabName = $('h3#geographicFocusOf').parent('article').parent('div').attr("id");
- tabName = tabName.replace("Group","");
- tabNameCapped = tabName.charAt(0).toUpperCase() + tabName.slice(1);
- // if the name of the first tab section = tabName we don't have to do anything;
- // otherwise, select the correct tab and deselect the first one
- var $firstTab = $('li.clickable').first();
- if ( $firstTab.text() != tabNameCapped ) {
- // select the correct tab
- $('li[groupName="' + tabName + '"]').removeClass("nonSelectedGroupTab clickable");
- $('li[groupName="' + tabName + '"]').addClass("selectedGroupTab clickable");
- // deselect the first tab
- $firstTab.removeClass("selectedGroupTab clickable");
- $firstTab.addClass("nonSelectedGroupTab clickable");
- $('section.property-group:visible').hide();
- // show the selected tab section
- $('section#' + tabName).show();
+ // if it doesn't exist, don't do anything.
+ if ( $('h3#geographicFocusOf').length ) {
+ var tabName = $('h3#geographicFocusOf').parent('article').parent('div').attr("id");
+ tabName = tabName.replace("Group","");
+ tabNameCapped = tabName.charAt(0).toUpperCase() + tabName.slice(1);
+ // if the name of the first tab section = tabName we don't have to do anything;
+ // otherwise, select the correct tab and deselect the first one
+ var $firstTab = $('li.clickable').first();
+ if ( $firstTab.text() != tabNameCapped ) {
+ // select the correct tab
+ $('li[groupName="' + tabName + '"]').removeClass("nonSelectedGroupTab clickable");
+ $('li[groupName="' + tabName + '"]').addClass("selectedGroupTab clickable");
+ // deselect the first tab
+ $firstTab.removeClass("selectedGroupTab clickable");
+ $firstTab.addClass("nonSelectedGroupTab clickable");
+ $('section.property-group:visible').hide();
+ // show the selected tab section
+ $('section#' + tabName).show();
+ }
}
// if there is a more link, "click" more to show all the researchers
// we need the timeout delay so that the more link can get rendered
diff --git a/productMods/js/latLongJson.js b/productMods/js/latLongJson.js
index 417e815f..9dcc4643 100644
--- a/productMods/js/latLongJson.js
+++ b/productMods/js/latLongJson.js
@@ -7,4 +7,4 @@
// IMPLEMENT A STATE MAP, YOU WILL NEED TO ADD THE GEOJSON DATA FOR THAT STATE'S COUNTIES AND OTHER
// RELEVANT GEOGRAPHIC AREAS.
-var latLongJson = [{"name": "Afghanistan", "data": {"mapType": "global", "geoClass": "country", "latitude": "33.0", "longitude": "65.0"}},{"name": "Albania", "data": {"mapType": "global", "geoClass": "country", "latitude": "41.0", "longitude": "20.0"}},{"name": "Algeria", "data": {"mapType": "global", "geoClass": "country", "latitude": "28.0", "longitude": "3.0"}},{"name": "American Samoa", "data": {"mapType": "global", "geoClass": "country", "latitude": "-14.3333", "longitude": "-170.0"}},{"name": "Andorra", "data": {"mapType": "global", "geoClass": "country", "latitude": "42.5", "longitude": "1.5"}},{"name": "Angola", "data": {"mapType": "global", "geoClass": "country", "latitude": "-12.5", "longitude": "18.5"}},{"name": "Anguilla", "data": {"mapType": "global", "geoClass": "country", "latitude": "18.25", "longitude": "-63.1667"}},{"name": "Antarctica", "data": {"mapType": "global", "geoClass": "country", "latitude": "-90.0", "longitude": "0.0"}},{"name": "Antigua and Barbuda", "data": {"mapType": "global", "geoClass": "country", "latitude": "17.05", "longitude": "-61.8"}},{"name": "Argentina", "data": {"mapType": "global", "geoClass": "country", "latitude": "-34.0", "longitude": "-64.0"}},{"name": "Armenia", "data": {"mapType": "global", "geoClass": "country", "latitude": "40.0", "longitude": "45.0"}},{"name": "Aruba", "data": {"mapType": "global", "geoClass": "country", "latitude": "12.5", "longitude": "-69.9667"}},{"name": "Australia", "data": {"mapType": "global", "geoClass": "country", "latitude": "-27.0", "longitude": "133.0"}},{"name": "Austria", "data": {"mapType": "global", "geoClass": "country", "latitude": "47.3333", "longitude": "13.3333"}},{"name": "Azerbaijan", "data": {"mapType": "global", "geoClass": "country", "latitude": "40.5", "longitude": "47.5"}},{"name": "Bahamas", "data": {"mapType": "global", "geoClass": "country", "latitude": "24.25", "longitude": "-76.0"}},{"name": "Bahrain", "data": {"mapType": "global", "geoClass": "country", "latitude": "26.0", "longitude": "50.55"}},{"name": "Bangladesh", "data": {"mapType": "global", "geoClass": "country", "latitude": "24.0", "longitude": "90.0"}},{"name": "Barbados", "data": {"mapType": "global", "geoClass": "country", "latitude": "13.1667", "longitude": "-59.5333"}},{"name": "Belarus", "data": {"mapType": "global", "geoClass": "country", "latitude": "53.0", "longitude": "28.0"}},{"name": "Belgium", "data": {"mapType": "global", "geoClass": "country", "latitude": "50.8333", "longitude": "4.0"}},{"name": "Belize", "data": {"mapType": "global", "geoClass": "country", "latitude": "17.25", "longitude": "-88.75"}},{"name": "Benin", "data": {"mapType": "global", "geoClass": "country", "latitude": "9.5", "longitude": "2.25"}},{"name": "Bermuda", "data": {"mapType": "global", "geoClass": "country", "latitude": "32.3333", "longitude": "-64.75"}},{"name": "Bhutan", "data": {"mapType": "global", "geoClass": "country", "latitude": "27.5", "longitude": "", "longitude": "90.5"}},{"name": "Bolivia", "data": {"mapType": "global", "geoClass": "country", "latitude": "-17.0", "longitude": "-65.0"}},{"name": "Bosnia and Herzegovina", "data": {"mapType": "global", "geoClass": "country", "latitude": "44.0", "longitude": "18.0"}},{"name": "Botswana", "data": {"mapType": "global", "geoClass": "country", "latitude": "-22.0", "longitude": "24.0"}},{"name": "Bouvet Island", "data": {"mapType": "global", "geoClass": "country", "latitude": "-54.4333", "longitude": "3.4"}},{"name": "Brazil", "data": {"mapType": "global", "geoClass": "country", "latitude": "-10.0", "longitude": "-55.0"}},{"name": "British Indian Ocean Territory", "data": {"mapType": "global", "geoClass": "country", "latitude": "-6.0", "longitude": "71.5"}},{"name": "Brunei", "data": {"mapType": "global", "geoClass": "country", "latitude": "4.5", "longitude": "114.6667"}},{"name": "Bulgaria", "data": {"mapType": "global", "geoClass": "country", "latitude": "43.0", "longitude": "25.0"}},{"name": "Burkina Faso", "data": {"mapType": "global", "geoClass": "country", "latitude": "13.0", "longitude": "-2.0"}},{"name": "Burundi", "data": {"mapType": "global", "geoClass": "country", "latitude": "-3.5", "longitude": "30.0"}},{"name": "Cambodia", "data": {"mapType": "global", "geoClass": "country", "latitude": "13.0", "longitude": "105.0"}},{"name": "Cameroon", "data": {"mapType": "global", "geoClass": "country", "latitude": "6.0", "longitude": "12.0"}},{"name": "Canada", "data": {"mapType": "global", "geoClass": "country", "latitude": "60.0", "longitude": "-95.0"}},{"name": "Cape Verde", "data": {"mapType": "global", "geoClass": "country", "latitude": "16.0", "longitude": "-24.0"}},{"name": "Cayman Islands", "data": {"mapType": "global", "geoClass": "country", "latitude": "19.5", "longitude": "-80.5"}},{"name": "Central African Republic", "data": {"mapType": "global", "geoClass": "country", "latitude": "7.0", "longitude": "21.0"}},{"name": "Chad", "data": {"mapType": "global", "geoClass": "country", "latitude": "15.0", "longitude": "19.0"}},{"name": "Chile", "data": {"mapType": "global", "geoClass": "country", "latitude": "-30.0", "longitude": "-71.0"}},{"name": "China", "data": {"mapType": "global", "geoClass": "country", "latitude": "35.0", "longitude": "105.0"}},{"name": "Christmas Island", "data": {"mapType": "global", "geoClass": "country", "latitude": "-10.5", "longitude": "105.6667"}},{"name": "Cocos (Keeling) Islands", "data": {"mapType": "global", "geoClass": "country", "latitude": "-12.5", "longitude": "96.8333"}},{"name": "Colombia", "data": {"mapType": "global", "geoClass": "country", "latitude": "4.0", "longitude": "-72.0"}},{"name": "Comoros", "data": {"mapType": "global", "geoClass": "country", "latitude": "-12.1667", "longitude": "44.25"}},{"name": "Congo", "data": {"mapType": "global", "geoClass": "country", "latitude": "-1.0", "longitude": "15.0"}},{"name": "Cook Islands", "data": {"mapType": "global", "geoClass": "country", "latitude": "-21.2333", "longitude": "-159.7667"}},{"name": "Costa Rica", "data": {"mapType": "global", "geoClass": "country", "latitude": "10.0", "longitude": "-84.0"}},{"name": "Ivory Coast", "data": {"mapType": "global", "geoClass": "country", "latitude": "8.0", "longitude": "-5.0"}},{"name": "Croatia", "data": {"mapType": "global", "geoClass": "country", "latitude": "45.1667", "longitude": "15.5"}},{"name": "Cuba", "data": {"mapType": "global", "geoClass": "country", "latitude": "21.5", "longitude": "-80.0"}},{"name": "Cyprus", "data": {"mapType": "global", "geoClass": "country", "latitude": "35.0", "longitude": "33.0"}},{"name": "Czech Republic", "data": {"mapType": "global", "geoClass": "country", "latitude": "49.75", "longitude": "15.5"}},{"name": "Denmark", "data": {"mapType": "global", "geoClass": "country", "latitude": "56.0", "longitude": "10.0"}},{"name": "Czechoslovakia", "data": {"mapType": "global", "geoClass": "country", "latitude": "49.75", "longitude": "15.5"}},{"name": "Denmark", "data": {"mapType": "global", "geoClass": "country", "latitude": "56.0", "longitude": "10.0"}},{"name": "Djibouti", "data": {"mapType": "global", "geoClass": "country", "latitude": "11.5", "longitude": "43.0"}},{"name": "Dominica", "data": {"mapType": "global", "geoClass": "country", "latitude": "15.4167", "longitude": "-61.3333"}},{"name": "Dominican Republic", "data": {"mapType": "global", "geoClass": "country", "latitude": "19.0", "longitude": "-70.6667"}},{"name": "Ecuador", "data": {"mapType": "global", "geoClass": "country", "latitude": "-2.0", "longitude": "-77.5"}},{"name": "Egypt", "data": {"mapType": "global", "geoClass": "country", "latitude": "27.0", "longitude": "30.0"}},{"name": "El Salvador", "data": {"mapType": "global", "geoClass": "country", "latitude": "13.8333", "longitude": "-88.9167"}},{"name": "Equatorial Guinea", "data": {"mapType": "global", "geoClass": "country", "latitude": "2.0", "longitude": "10.0"}},{"name": "Eritrea", "data": {"mapType": "global", "geoClass": "country", "latitude": "15.0", "longitude": "39.0"}},{"name": "Estonia", "data": {"mapType": "global", "geoClass": "country", "latitude": "59.0", "longitude": "26.0"}},{"name": "Ethiopia", "data": {"mapType": "global", "geoClass": "country", "latitude": "8.0", "longitude": "38.0"}},{"name": "Falkland Islands", "data": {"mapType": "global", "geoClass": "country", "latitude": "-51.75", "longitude": "-59.0"}},{"name": "Faroe Islands", "data": {"mapType": "global", "geoClass": "country", "latitude": "62.0", "longitude": "-7.0"}},{"name": "Fiji", "data": {"mapType": "global", "geoClass": "country", "latitude": "-18.0", "longitude": "175.0"}},{"name": "Finland", "data": {"mapType": "global", "geoClass": "country", "latitude": "64.0", "longitude": "26.0"}},{"name": "France", "data": {"mapType": "global", "geoClass": "country", "latitude": "46.0", "longitude": "2.0"}},{"name": "French Guiana", "data": {"mapType": "global", "geoClass": "country", "latitude": "4.0", "longitude": "-53.0"}},{"name": "French Polynesia", "data": {"mapType": "global", "geoClass": "country", "latitude": "-15.0", "longitude": "-140.0"}},{"name": "French Southern Territories", "data": {"mapType": "global", "geoClass": "country", "latitude": "-43.0", "longitude": "67.0"}},{"name": "Gabon", "data": {"mapType": "global", "geoClass": "country", "latitude": "-1.0", "longitude": "11.75"}},{"name": "Gambia", "data": {"mapType": "global", "geoClass": "country", "latitude": "13.4667", "longitude": "-16.5667"}},{"name": "Georgia", "data": {"mapType": "global", "geoClass": "country", "latitude": "42.0", "longitude": "43.5"}},{"name": "Germany", "data": {"mapType": "global", "geoClass": "country", "latitude": "51.0", "longitude": "9.0"}},{"name": "Ghana", "data": {"mapType": "global", "geoClass": "country", "latitude": "8.0", "longitude": "-2.0"}},{"name": "Greece", "data": {"mapType": "global", "geoClass": "country", "latitude": "39.0", "longitude": "22.0"}},{"name": "Greenland", "data": {"mapType": "global", "geoClass": "country", "latitude": "72.0", "longitude": "-40.0"}},{"name": "Grenada", "data": {"mapType": "global", "geoClass": "country", "latitude": "12.1167", "longitude": "-61.6667"}},{"name": "Guadeloupe", "data": {"mapType": "global", "geoClass": "country", "latitude": "16.25", "longitude": "-61.5833"}},{"name": "Guam", "data": {"mapType": "global", "geoClass": "country", "latitude": "13.4667", "longitude": "144.7833"}},{"name": "Guatemala", "data": {"mapType": "global", "geoClass": "country", "latitude": "15.5", "longitude": "-90.25"}},{"name": "Guinea", "data": {"mapType": "global", "geoClass": "country", "latitude": "11.0", "longitude": "-10.0"}},{"name": "Guinea-Bissau", "data": {"mapType": "global", "geoClass": "country", "latitude": "12.0", "longitude": "-15.0"}},{"name": "Guyana", "data": {"mapType": "global", "geoClass": "country", "latitude": "5.0", "longitude": "-59.0"}},{"name": "Haiti", "data": {"mapType": "global", "geoClass": "country", "latitude": "19.0", "longitude": "-72.4167"}},{"name": "Heard and McDonald Islands", "data": {"mapType": "global", "geoClass": "country", "latitude": "-53.1", "longitude": "72.5167"}},{"name": "Honduras", "data": {"mapType": "global", "geoClass": "country", "latitude": "15.0", "longitude": "-86.5"}},{"name": "Hong Kong", "data": {"mapType": "global", "geoClass": "country", "latitude": "22.25", "longitude": "114.1667"}},{"name": "Hungary", "data": {"mapType": "global", "geoClass": "country", "latitude": "47.0", "longitude": "20.0"}},{"name": "Iceland", "data": {"mapType": "global", "geoClass": "country", "latitude": "65.0", "longitude": "-18.0"}},{"name": "India", "data": {"mapType": "global", "geoClass": "country", "latitude": "20.0", "longitude": "77.0"}},{"name": "Indonesia", "data": {"mapType": "global", "geoClass": "country", "latitude": "-5.0", "longitude": "120.0"}},{"name": "Iran", "data": {"mapType": "global", "geoClass": "country", "latitude": "32.0", "longitude": "53.0"}},{"name": "Iraq", "data": {"mapType": "global", "geoClass": "country", "latitude": "33.0", "longitude": "44.0"}},{"name": "Ireland", "data": {"mapType": "global", "geoClass": "country", "latitude": "53.0", "longitude": "-8.0"}},{"name": "Israel", "data": {"mapType": "global", "geoClass": "country", "latitude": "31.5", "longitude": "34.75"}},{"name": "Italy", "data": {"mapType": "global", "geoClass": "country", "latitude": "42.8333", "longitude": "12.8333"}},{"name": "Jamaica", "data": {"mapType": "global", "geoClass": "country", "latitude": "18.25", "longitude": "-77.5"}},{"name": "Japan", "data": {"mapType": "global", "geoClass": "country", "latitude": "36.0", "longitude": "138.0"}},{"name": "Jordan", "data": {"mapType": "global", "geoClass": "country", "latitude": "31.0", "longitude": "36.0"}},{"name": "Kazakhstan", "data": {"mapType": "global", "geoClass": "country", "latitude": "48.0", "longitude": "68.0"}},{"name": "Kenya", "data": {"mapType": "global", "geoClass": "country", "latitude": "1.0", "longitude": "38.0"}},{"name": "Kiribati", "data": {"mapType": "global", "geoClass": "country", "latitude": "1.4167", "longitude": "173.0"}},{"name": "North Korea", "data": {"mapType": "global", "geoClass": "country", "latitude": "40.0", "longitude": "127.0"}},{"name": "Republic of Korea", "data": {"mapType": "global", "geoClass": "country", "latitude": "37.0", "longitude": "127.5"}},{"name": "Kuwait", "data": {"mapType": "global", "geoClass": "country", "latitude": "29.3375", "longitude": "47.6581"}},{"name": "Kyrgyzstan", "data": {"mapType": "global", "geoClass": "country", "latitude": "41.0", "longitude": "75.0"}},{"name": "Laos", "data": {"mapType": "global", "geoClass": "country", "latitude": "18.0", "longitude": "105.0"}},{"name": "Latvia", "data": {"mapType": "global", "geoClass": "country", "latitude": "57.0", "longitude": "25.0"}},{"name": "Lebanon", "data": {"mapType": "global", "geoClass": "country", "latitude": "33.8333", "longitude": "35.8333"}},{"name": "Lesotho", "data": {"mapType": "global", "geoClass": "country", "latitude": "-29.5", "longitude": "28.5"}},{"name": "Liberia", "data": {"mapType": "global", "geoClass": "country", "latitude": "6.5", "longitude": "-9.5"}},{"name": "Liechtenstein", "data": {"mapType": "global", "geoClass": "country", "latitude": "47.1667", "longitude": "9.5333"}},{"name": "Lithuania", "data": {"mapType": "global", "geoClass": "country", "latitude": "56.0", "longitude": "24.0"}},{"name": "Luxembourg", "data": {"mapType": "global", "geoClass": "country", "latitude": "49.75", "longitude": "6.1667"}},{"name": "Macau", "data": {"mapType": "global", "geoClass": "country", "latitude": "22.1667", "longitude": "113.55"}},{"name": "Macedonia", "data": {"mapType": "global", "geoClass": "country", "latitude": "41.8333", "longitude": "22.0"}},{"name": "Madagascar", "data": {"mapType": "global", "geoClass": "country", "latitude": "-20.0", "longitude": "47.0"}},{"name": "Malawi", "data": {"mapType": "global", "geoClass": "country", "latitude": "-13.5", "longitude": "34.0"}},{"name": "Malaysia", "data": {"mapType": "global", "geoClass": "country", "latitude": "2.5", "longitude": "112.5"}},{"name": "Maldives", "data": {"mapType": "global", "geoClass": "country", "latitude": "3.25", "longitude": "73.0"}},{"name": "Mali", "data": {"mapType": "global", "geoClass": "country", "latitude": "17.0", "longitude": "-4.0"}},{"name": "Malta", "data": {"mapType": "global", "geoClass": "country", "latitude": "35.8333", "longitude": "14.5833"}},{"name": "Marshal Islands", "data": {"mapType": "global", "geoClass": "country", "latitude": "9.0", "longitude": "168.0"}},{"name": "Martinique", "data": {"mapType": "global", "geoClass": "country", "latitude": "14.6667", "longitude": "-61.0"}},{"name": "Mauritania", "data": {"mapType": "global", "geoClass": "country", "latitude": "20.0", "longitude": "-12.0"}},{"name": "Mauritius", "data": {"mapType": "global", "geoClass": "country", "latitude": "-20.2833", "longitude": "57.55"}},{"name": "Mayotte", "data": {"mapType": "global", "geoClass": "country", "latitude": "-12.8333", "longitude": "45.1667"}},{"name": "Mexico", "data": {"mapType": "global", "geoClass": "country", "latitude": "23.0", "longitude": "-102.0"}},{"name": "Micronesia", "data": {"mapType": "global", "geoClass": "country", "latitude": "6.9167", "longitude": "158.25"}},{"name": "Moldova", "data": {"mapType": "global", "geoClass": "country", "latitude": "47.0", "longitude": "29.0"}},{"name": "Monaco", "data": {"mapType": "global", "geoClass": "country", "latitude": "43.7333", "longitude": "7.4"}},{"name": "Mongolia", "data": {"mapType": "global", "geoClass": "country", "latitude": "46.0", "longitude": "105.0"}},{"name": "Montserrat", "data": {"mapType": "global", "geoClass": "country", "latitude": "16.75", "longitude": "-62.2"}},{"name": "Morocco", "data": {"mapType": "global", "geoClass": "country", "latitude": "32.0", "longitude": "-5.0"}},{"name": "Mozambique", "data": {"mapType": "global", "geoClass": "country", "latitude": "-18.25", "longitude": "35.0"}},{"name": "Myanmar", "data": {"mapType": "global", "geoClass": "country", "latitude": "22.0", "longitude": "98.0"}},{"name": "Namibia", "data": {"mapType": "global", "geoClass": "country", "latitude": "-22.0", "longitude": "17.0"}},{"name": "Nauru", "data": {"mapType": "global", "geoClass": "country", "latitude": "-0.5333", "longitude": "166.9167"}},{"name": "Nepal", "data": {"mapType": "global", "geoClass": "country", "latitude": "28.0", "longitude": "84.0"}},{"name": "Netherlands Antilles", "data": {"mapType": "global", "geoClass": "country", "latitude": "12.25", "longitude": "-68.75"}},{"name": "Netherlands", "data": {"mapType": "global", "geoClass": "country", "latitude": "52.5", "longitude": "5.75"}},{"name": "New Caledonia", "data": {"mapType": "global", "geoClass": "country", "latitude": "-21.5", "longitude": "165.5"}},{"name": "New Zealand", "data": {"mapType": "global", "geoClass": "country", "latitude": "-41.0", "longitude": "174.0"}},{"name": "Nicaragua", "data": {"mapType": "global", "geoClass": "country", "latitude": "13.0", "longitude": "-85.0"}},{"name": "Niger", "data": {"mapType": "global", "geoClass": "country", "latitude": "16.0", "longitude": "8.0"}},{"name": "Nigeria", "data": {"mapType": "global", "geoClass": "country", "latitude": "10.0", "longitude": "8.0"}},{"name": "Niue", "data": {"mapType": "global", "geoClass": "country", "latitude": "-19.0333", "longitude": "-169.8667"}},{"name": "Norfolk Island", "data": {"mapType": "global", "geoClass": "country", "latitude": "-29.0333", "longitude": "167.95"}},{"name": "Northern Marianas Islands", "data": {"mapType": "global", "geoClass": "country", "latitude": "15.2", "longitude": "145.75"}},{"name": "Norway", "data": {"mapType": "global", "geoClass": "country", "latitude": "62.0", "longitude": "10.0"}},{"name": "Oman", "data": {"mapType": "global", "geoClass": "country", "latitude": "21.0", "longitude": "57.0"}},{"name": "Pakistan", "data": {"mapType": "global", "geoClass": "country", "latitude": "30.0", "longitude": "70.0"}},{"name": "Palau", "data": {"mapType": "global", "geoClass": "country", "latitude": "7.5", "longitude": "134.5"}},{"name": "Panama", "data": {"mapType": "global", "geoClass": "country", "latitude": "9.0", "longitude": "-80.0"}},{"name": "Papua New Guinea", "data": {"mapType": "global", "geoClass": "country", "latitude": "-6.0", "longitude": "147.0"}},{"name": "Paraguay", "data": {"mapType": "global", "geoClass": "country", "latitude": "-23.0", "longitude": "-58.0"}},{"name": "Peru", "data": {"mapType": "global", "geoClass": "country", "latitude": "-10.0", "longitude": "-76.0"}},{"name": "Philippines", "data": {"mapType": "global", "geoClass": "country", "latitude": "13.0", "longitude": "122.0"}},{"name": "Pitcairn", "data": {"mapType": "global", "geoClass": "country", "latitude": "-24.7", "longitude": "-127.4"}},{"name": "Poland", "data": {"mapType": "global", "geoClass": "country", "latitude": "52.0", "longitude": "20.0"}},{"name": "Portugal", "data": {"mapType": "global", "geoClass": "country", "latitude": "39.5", "longitude": "-8.0"}},{"name": "Puerto Rico", "data": {"mapType": "global", "geoClass": "country", "latitude": "18.25", "longitude": "-66.5"}},{"name": "Qatar", "data": {"mapType": "global", "geoClass": "country", "latitude": "25.5", "longitude": "51.25"}},{"name": "Reunion", "data": {"mapType": "global", "geoClass": "country", "latitude": "-21.1", "longitude": "55.6"}},{"name": "Romania", "data": {"mapType": "global", "geoClass": "country", "latitude": "46.0", "longitude": "25.0"}},{"name": "Russia", "data": {"mapType": "global", "geoClass": "country", "latitude": "60.0", "longitude": "100.0"}},{"name": "Russian Federation", "data": {"mapType": "global", "geoClass": "country", "latitude": "60.0", "longitude": "100.0"}},{"name": "Rwanda", "data": {"longitude": "-2.0", "longitude": "30.0"}},{"name": "Saint Helena", "data": {"mapType": "global", "geoClass": "country", "latitude": "-15.9333", "longitude": "-5.7"}},{"name": "Saint Kitts and Nevis", "data": {"mapType": "global", "geoClass": "country", "latitude": "17.3333", "longitude": "-62.75"}},{"name": "Saint Lucia", "data": {"mapType": "global", "geoClass": "country", "latitude": "13.8833", "longitude": "-61.1333"}},{"name": "Saint Pierre and Miquelon", "data": {"mapType": "global", "geoClass": "country", "latitude": "46.8333", "longitude": "-56.3333"}},{"name": "Saint Vincent and the Grenadines", "data": {"mapType": "global", "geoClass": "country", "latitude": "13.25", "longitude": "-61.2"}},{"name": "Samoa", "data": {"mapType": "global", "geoClass": "country", "latitude": "-13.5833", "longitude": "-172.3333"}},{"name": "San Marino", "data": {"mapType": "global", "geoClass": "country", "latitude": "43.7667", "longitude": "12.4167"}},{"name": "Sao Tome and Principe", "data": {"mapType": "global", "geoClass": "country", "latitude": "1.0", "longitude": "7.0"}},{"name": "Saudi Arabia", "data": {"mapType": "global", "geoClass": "country", "latitude": "25.0", "longitude": "45.0"}},{"name": "Senegal", "data": {"mapType": "global", "geoClass": "country", "latitude": "14.0", "longitude": "-14.0"}},{"name": "Seychelles", "data": {"mapType": "global", "geoClass": "country", "latitude": "-4.5833", "longitude": "55.6667"}},{"name": "Sierra Leone", "data": {"mapType": "global", "geoClass": "country", "latitude": "8.5", "longitude": "-11.5"}},{"name": "Singapore", "data": {"mapType": "global", "geoClass": "country", "latitude": "1.3667", "longitude": "103.8"}},{"name": "Slovak Republic", "data": {"mapType": "global", "geoClass": "country", "latitude": "48.6667", "longitude": "19.5"}},{"name": "Slovenia", "data": {"mapType": "global", "geoClass": "country", "latitude": "46.0", "longitude": "15.0"}},{"name": "Solomon Islands", "data": {"mapType": "global", "geoClass": "country", "latitude": "-8.0", "longitude": "159.0"}},{"name": "Somalia", "data": {"mapType": "global", "geoClass": "country", "latitude": "10.0", "longitude": "49.0"}},{"name": "South Africa", "data": {"mapType": "global", "geoClass": "country", "latitude": "-29.0", "longitude": "24.0"}},{"name": "South Georgia and the South Sandwich Islands", "data": {"mapType": "global", "geoClass": "country", "latitude": "-54.5", "longitude": "-37.0"}},{"name": "Spain", "data": {"mapType": "global", "geoClass": "country", "latitude": "40.0", "longitude": "-4.0"}},{"name": "Sri Lanka", "data": {"mapType": "global", "geoClass": "country", "latitude": "7.0", "longitude": "81.0"}},{"name": "Sudan", "data": {"mapType": "global", "geoClass": "country", "latitude": "15.0", "longitude": "30.0"}},{"name": "Suriname", "data": {"mapType": "global", "geoClass": "country", "latitude": "4.0", "longitude": "-56.0"}},{"name": "Svalbard and Jan Mayen Islands", "data": {"mapType": "global", "geoClass": "country", "latitude": "78.0", "longitude": "20.0"}},{"name": "Swaziland", "data": {"mapType": "global", "geoClass": "country", "latitude": "-26.5", "longitude": "31.5"}},{"name": "Sweden", "data": {"mapType": "global", "geoClass": "country", "latitude": "62.0", "longitude": "15.0"}},{"name": "Switzerland", "data": {"mapType": "global", "geoClass": "country", "latitude": "47.0", "longitude": "8.0"}},{"name": "Syria", "data": {"mapType": "global", "geoClass": "country", "latitude": "35.0", "longitude": "38.0"}},{"name": "Taiwan", "data": {"mapType": "global", "geoClass": "country", "latitude": "23.5", "longitude": "121.0"}},{"name": "Tajikistan", "data": {"mapType": "global", "geoClass": "country", "latitude": "39.0", "longitude": "71.0"}},{"name": "Tanzania", "data": {"mapType": "global", "geoClass": "country", "latitude": "-6.0", "longitude": "35.0"}},{"name": "Thailand", "data": {"mapType": "global", "geoClass": "country", "latitude": "15.0", "longitude": "100.0"}},{"name": "Togo", "data": {"mapType": "global", "geoClass": "country", "latitude": "8.0", "longitude": "1.1667"}},{"name": "Tokelau", "data": {"mapType": "global", "geoClass": "country", "latitude": "-9.0", "longitude": "-172.0"}},{"name": "Tonga", "data": {"mapType": "global", "geoClass": "country", "latitude": "-20.0", "longitude": "-175.0"}},{"name": "Trinidad and Tobago", "data": {"mapType": "global", "geoClass": "country", "latitude": "11.0", "longitude": "-61.0"}},{"name": "Tunisia", "data": {"mapType": "global", "geoClass": "country", "latitude": "34.0", "longitude": "9.0"}},{"name": "Turkey", "data": {"mapType": "global", "geoClass": "country", "latitude": "39.0", "longitude": "35.0"}},{"name": "Turkmenistan", "data": {"mapType": "global", "geoClass": "country", "latitude": "40.0", "longitude": "60.0"}},{"name": "Turks and Caicos Islands", "data": {"mapType": "global", "geoClass": "country", "latitude": "21.75", "longitude": "-71.5833"}},{"name": "Tuvalu", "data": {"mapType": "global", "geoClass": "country", "latitude": "-8.0", "longitude": "178.0"}},{"name": "Uganda", "data": {"mapType": "global", "geoClass": "country", "latitude": "1.0", "longitude": "32.0"}},{"name": "Ukraine", "data": {"mapType": "global", "geoClass": "country", "latitude": "49.0", "longitude": "32.0"}},{"name": "United Arab Emirates", "data": {"mapType": "global", "geoClass": "country", "latitude": "24.0", "longitude": "54.0"}},{"name": "United Kingdom", "data": {"mapType": "global", "geoClass": "country", "latitude": "54.0", "longitude": "-2.0"}},{"name": "United States of America", "data": {"mapType": "global", "geoClass": "country", "latitude": "38.0", "longitude": "-97.0"}},{"name": "Uruguay", "data": {"mapType": "global", "geoClass": "country", "latitude": "-33.0", "longitude": "-56.0"}},{"name": "Uzbekistan", "data": {"mapType": "global", "geoClass": "country", "latitude": "41.0", "longitude": "64.0"}},{"name": "Vanuatu", "data": {"mapType": "global", "geoClass": "country", "latitude": "-16.0", "longitude": "167.0"}},{"name": "Vatican City", "data": {"mapType": "global", "geoClass": "country", "latitude": "41.9", "longitude": "12.45"}},{"name": "Venezuela", "data": {"mapType": "global", "geoClass": "country", "latitude": "8.0", "longitude": "-66.0"}},{"name": "Vietnam", "data": {"mapType": "global", "geoClass": "country", "latitude": "16.0", "longitude": "106.0"}},{"name": "British Virgin Islands", "data": {"mapType": "global", "geoClass": "country", "latitude": "18.3333", "longitude": "-64.8333"}},{"name": "US Virgin Islands", "data": {"mapType": "global", "geoClass": "country", "latitude": "18.3333", "longitude": "-64.8333"}},{"name": "Wallis and Futuna Islands", "data": {"mapType": "global", "geoClass": "country", "latitude": "-13.3", "longitude": "-176.2"}},{"name": "Western Sahara", "data": {"mapType": "global", "geoClass": "country", "latitude": "24.5", "longitude": "-13.0"}},{"name": "Yemen", "data": {"mapType": "global", "geoClass": "country", "latitude": "15.0", "longitude": "48.0"}},{"name": "Zaire", "data": {"mapType": "global", "geoClass": "country", "latitude": "-20.0", "longitude": "30.0"}},{"name": "Zambia", "data": {"mapType": "global", "geoClass": "country", "latitude": "-15.0", "longitude": "30.0"}},{"name": "Zimbabwe", "data": {"mapType": "global", "geoClass": "country", "latitude": "-20.0", "longitude": "30.0"}},{"name": "Central Africa", "data": {"mapType": "global", "geoClass": "region", "latitude": "", "longitude": ""}},{"name": "Central Europe", "data": {"mapType": "global", "geoClass": "region", "latitude": "48.9225", "longitude": "9.22852"}},{"name": "East Asia", "data": {"mapType": "global", "geoClass": "region", "latitude": "31.95216", "longitude": "120.41016"}},{"name": "Eastern North America", "data": {"mapType": "global", "geoClass": "region", "latitude": "45.213", "longitude": "-66.44531"}},{"name": "European Union (EU)", "data": {"mapType": "global", "geoClass": "region", "latitude": "48.86471", "longitude": "11.68945"}},{"name": "Central Asia", "data": {"mapType": "global", "geoClass": "region", "latitude": "36.73888", "longitude": "93.16406"}},{"name": "Former Soviet bloc countries", "data": {"mapType": "global", "geoClass": "region", "latitude": "49.72448", "longitude": "24.43359"}},{"name": "French North Africa", "data": {"mapType": "global", "geoClass": "region", "latitude": "34.45222", "longitude": "0.52734"}},{"name": "Gibraltar", "data": {"mapType": "global", "geoClass": "region", "latitude": "36.1430", "longitude": "5.3530"}},{"name": "Latin America", "data": {"mapType": "global", "geoClass": "region", "latitude": "21.69827", "longitude": "-84.50684"}},{"name": "Oceania", "data": {"mapType": "global", "geoClass": "region", "latitude": "-20.63278", "longitude": "-195.99609"}},{"name": "North Africa", "data": {"mapType": "global", "geoClass": "region", "latitude": "26.43123", "longitude": "13.35938"}},{"name": "South America", "data": {"mapType": "global", "geoClass": "region", "latitude": "-21.28937", "longitude": "-58.00781"}},{"name": "South Asia", "data": {"mapType": "global", "geoClass": "region", "latitude": "22.91792", "longitude": "82.26563"}},{"name": "Southeast Asia", "data": {"mapType": "global", "geoClass": "region", "latitude": "9.1021", "longitude": "111.79688"}},{"name": "Sub-Saharan Africa", "data": {"mapType": "global", "geoClass": "region", "latitude": "2.46018", "longitude": "21.97266"}},{"name": "Tibet", "data": {"mapType": "global", "geoClass": "region", "latitude": "29.53523", "longitude": "87.89063"}},{"name": "central America", "data": {"mapType": "global", "geoClass": "region", "latitude": "16.29905", "longitude": "-92.98828"}},{"name": "eastern Africa", "data": {"mapType": "global", "geoClass": "region", "latitude": "-7.36247", "longitude": "39.19922"}},{"name": "eastern Europe", "data": {"mapType": "global", "geoClass": "region", "latitude": "47.7541", "longitude": "22.59789"}},{"name": "middle Africa", "data": {"mapType": "global", "geoClass": "region", "latitude": "5.70345", "longitude": "22.5"}},{"name": "northern Europe", "data": {"mapType": "global", "geoClass": "region", "latitude": "57.563", "longitude": "12.56836"}},{"name": "southern Africa", "data": {"mapType": "global", "geoClass": "region", "latitude": "-22.35008", "longitude": "25.04883"}},{"name": "southern Europe", "data": {"mapType": "global", "geoClass": "region", "latitude": "40.04444", "longitude": "9.14063"}},{"name": "western Africa", "data": {"mapType": "global", "geoClass": "region", "latitude": "4.65308", "longitude": "6.32813"}},{"name": "western Europe", "data": {"mapType": "global", "geoClass": "region", "latitude": "48.69096", "longitude": "3.51563"}},{"name": "Africa", "data": {"mapType": "global", "geoClass": "region", "latitude": "8.58102", "longitude": "21.97266"}},{"name": "Americas", "data": {"mapType": "global", "geoClass": "region", "latitude": "13.23995", "longitude": "-78.39844"}},{"name": "Caribbean", "data": {"mapType": "global", "geoClass": "region", "latitude": "19.64259", "longitude": "-79.10156"}},{"name": "Europe", "data": {"mapType": "global", "geoClass": "region", "latitude": "50.84757", "longitude": "19.33594"}},{"name": "Melanesia", "data": {"mapType": "global", "geoClass": "region", "latitude": "-11.3508", "longitude": "165.9375"}},{"name": "Asia", "data": {"mapType": "global", "geoClass": "region", "latitude": "40.31304", "longitude": "90.78906"}},{"name": "North America", "data": {"mapType": "global", "geoClass": "region", "latitude": "46.43786", "longitude": "-97.73437"}},{"name": "northern America", "data": {"mapType": "global", "geoClass": "region", "latitude": "45.58329", "longitude": "-91.75781"}},{"name": "western Asia", "data": {"mapType": "global", "geoClass": "region", "latitude": "36.45664", "longitude": "57.12891"}},{"name": "Polynesia", "data": {"mapType": "global", "geoClass": "region", "latitude": "1.75754", "longitude": "-156.09375"}},{"name": "eastern Asia", "data": {"mapType": "global", "geoClass": "region", "latitude": "30.75128", "longitude": "126.38672"}},{"name": "northern Africa", "data": {"mapType": "global", "geoClass": "region", "latitude": "29.53523", "longitude": "14.23828"}},{"name": "south-eastern Asia", "data": {"mapType": "global", "geoClass": "region", "latitude": "6.3153", "longitude": "129.375"}},{"name": "southern Asia", "data": {"mapType": "global", "geoClass": "region", "latitude": "-1.05463", "longitude": "108.63281"}},{"name": "Alaska", "data": {"mapType": "country", "geoClass": "state", "latitude": "64.3850", "longitude": "-154.2683"}},{"name": "Alabama", "data": {"mapType": "country", "geoClass": "state", "latitude": "32.7990", "longitude": "-86.8073"}},{"name": "Arkansas", "data": {"mapType": "country", "geoClass": "state", "latitude": "34.9513", "longitude": "-92.3809"}},{"name": "Arizona", "data": {"mapType": "country", "geoClass": "state", "latitude": "33.7712", "longitude": "-111.3877"}},{"name": "California", "data": {"mapType": "country", "geoClass": "state", "latitude": "36.1700", "longitude": "-119.7462"}},{"name": "Colorado", "data": {"mapType": "country", "geoClass": "state", "latitude": "39.0646", "longitude": "-105.3272"}},{"name": "Connecticut", "data": {"mapType": "country", "geoClass": "state", "latitude": "41.5834", "longitude": "-72.7622"}},{"name": "District of Columbia", "data": {"mapType": "country", "geoClass": "state", "latitude": "38.8964", "longitude": "-77.0262"}},{"name": "Delaware", "data": {"mapType": "country", "geoClass": "state", "latitude": "39.3498", "longitude": "-75.5148"}},{"name": "Florida", "data": {"mapType": "country", "geoClass": "state", "latitude": "27.8333", "longitude": "-81.7170"}},{"name": "Georgia", "data": {"mapType": "country", "geoClass": "state", "latitude": "32.9866", "longitude": "-83.6487"}},{"name": "Hawaii", "data": {"mapType": "country", "geoClass": "state", "latitude": "21.1098", "longitude": "-157.5311"}},{"name": "Iowa", "data": {"mapType": "country", "geoClass": "state", "latitude": "42.0046", "longitude": "-93.2140"}},{"name": "Idaho", "data": {"mapType": "country", "geoClass": "state", "latitude": "44.2394", "longitude": "-114.5103"}},{"name": "Illinois", "data": {"mapType": "country", "geoClass": "state", "latitude": "40.3363", "longitude": "-89.0022"}},{"name": "Indiana", "data": {"mapType": "country", "geoClass": "state", "latitude": "39.8647", "longitude": "-86.2604"}},{"name": "Kansas", "data": {"mapType": "country", "geoClass": "state", "latitude": "38.5111", "longitude": "-96.8005"}},{"name": "Kentucky", "data": {"mapType": "country", "geoClass": "state", "latitude": "37.6690", "longitude": "-84.6514"}},{"name": "Louisiana", "data": {"mapType": "country", "geoClass": "state", "latitude": "31.1801", "longitude": "-91.8749"}},{"name": "Massachusetts", "data": {"mapType": "country", "geoClass": "state", "latitude": "42.2373", "longitude": "-71.5314"}},{"name": "Maryland", "data": {"mapType": "country", "geoClass": "state", "latitude": "39.0724", "longitude": "-76.7902"}},{"name": "Maine", "data": {"mapType": "country", "geoClass": "state", "latitude": "44.6074", "longitude": "-69.3977"}},{"name": "Michigan", "data": {"mapType": "country", "geoClass": "state", "latitude": "43.3504", "longitude": "-84.5603"}},{"name": "Minnesota", "data": {"mapType": "country", "geoClass": "state", "latitude": "", "longitude": ""}},{"name": "Missouri", "data": {"mapType": "country", "geoClass": "state", "latitude": "38.4623", "longitude": "-92.3020"}},{"name": "Mississippi", "data": {"mapType": "country", "geoClass": "state", "latitude": "32.7673", "longitude": "-89.6812"}},{"name": "Montana", "data": {"mapType": "country", "geoClass": "state", "latitude": "46.9048", "longitude": "-110.3261"}},{"name": "North Carolina", "data": {"mapType": "country", "geoClass": "state", "latitude": "35.6411", "longitude": "-79.8431"}},{"name": "North Dakota", "data": {"mapType": "country", "geoClass": "state", "latitude": "47.5362", "longitude": "-99.7930"}},{"name": "Nebraska", "data": {"mapType": "country", "geoClass": "state", "latitude": "41.1289", "longitude": "-98.2883"}},{"name": "New Hampshire", "data": {"mapType": "country", "geoClass": "state", "latitude": "43.4108", "longitude": "-71.5653"}},{"name": "New Jersey", "data": {"mapType": "country", "geoClass": "state", "latitude": "40.3140", "longitude": "-74.5089"}},{"name": "New Mexico", "data": {"mapType": "country", "geoClass": "state", "latitude": "34.8375", "longitude": "-106.2371"}},{"name": "Nevada", "data": {"mapType": "country", "geoClass": "state", "latitude": "38.4199", "longitude": "-117.1219"}},{"name": "New York", "data": {"mapType": "country", "geoClass": "state", "latitude": "42.1497", "longitude": "-74.9384"}},{"name": "Ohio", "data": {"mapType": "country", "geoClass": "state", "latitude": "40.3736", "longitude": "-82.7755"}},{"name": "Oklahoma", "data": {"mapType": "country", "geoClass": "state", "latitude": "35.5376", "longitude": "-96.9247"}},{"name": "Oregon", "data": {"mapType": "country", "geoClass": "state", "latitude": "44.5672", "longitude": "-122.1269"}},{"name": "Pennsylvania", "data": {"mapType": "country", "geoClass": "state", "latitude": "40.5773", "longitude": "-77.2640"}},{"name": "Rhode Island", "data": {"mapType": "country", "geoClass": "state", "latitude": "41.6772", "longitude": "-71.5101"}},{"name": "South Carolina", "data": {"mapType": "country", "geoClass": "state", "latitude": "33.8191", "longitude": "-80.9066"}},{"name": "Tennessee", "data": {"mapType": "country", "geoClass": "state", "latitude": "35.7449", "longitude": "-86.7489"}},{"name": "South Dakota", "data": {"mapType": "country", "geoClass": "state", "latitude": "44.2853", "longitude": "-99.4632"}},{"name": "Texas", "data": {"mapType": "country", "geoClass": "state", "latitude": "31.1060", "longitude": "-97.6475"}},{"name": "Utah", "data": {"mapType": "country", "geoClass": "state", "latitude": "40.1135", "longitude": "-111.8535"}},{"name": "Virginia", "data": {"mapType": "country", "geoClass": "state", "latitude": "37.7680", "longitude": "-78.2057"}},{"name": "Vermont", "data": {"mapType": "country", "geoClass": "state", "latitude": "44.0407", "longitude": "-72.7093"}},{"name": "Washington", "data": {"mapType": "country", "geoClass": "state", "latitude": "47.3917", "longitude": "-121.5708"}},{"name": "Wisconsin", "data": {"mapType": "country", "geoClass": "state", "latitude": "44.2563", "longitude": "-89.6385"}},{"name": "West Virginia", "data": {"mapType": "country", "geoClass": "state", "latitude": "38.4680", "longitude": "-80.9696"}},{"name": "Wyoming", "data": {"mapType": "country", "geoClass": "state", "latitude": "42.7475", "longitude": "-107.2085"}}];
+var latLongJson = [{"name": "Afghanistan", "data": {"mapType": "global", "geoClass": "country", "latitude": "33.0", "longitude": "65.0"}},{"name": "Albania", "data": {"mapType": "global", "geoClass": "country", "latitude": "41.0", "longitude": "20.0"}},{"name": "Algeria", "data": {"mapType": "global", "geoClass": "country", "latitude": "28.0", "longitude": "3.0"}},{"name": "American Samoa", "data": {"mapType": "global", "geoClass": "country", "latitude": "-14.3333", "longitude": "-170.0"}},{"name": "Andorra", "data": {"mapType": "global", "geoClass": "country", "latitude": "42.5", "longitude": "1.5"}},{"name": "Angola", "data": {"mapType": "global", "geoClass": "country", "latitude": "-12.5", "longitude": "18.5"}},{"name": "Anguilla", "data": {"mapType": "global", "geoClass": "country", "latitude": "18.25", "longitude": "-63.1667"}},{"name": "Antarctica", "data": {"mapType": "global", "geoClass": "country", "latitude": "-90.0", "longitude": "0.0"}},{"name": "Antigua and Barbuda", "data": {"mapType": "global", "geoClass": "country", "latitude": "17.05", "longitude": "-61.8"}},{"name": "Argentina", "data": {"mapType": "global", "geoClass": "country", "latitude": "-34.0", "longitude": "-64.0"}},{"name": "Armenia", "data": {"mapType": "global", "geoClass": "country", "latitude": "40.0", "longitude": "45.0"}},{"name": "Aruba", "data": {"mapType": "global", "geoClass": "country", "latitude": "12.5", "longitude": "-69.9667"}},{"name": "Australia", "data": {"mapType": "global", "geoClass": "country", "latitude": "-27.0", "longitude": "133.0"}},{"name": "Austria", "data": {"mapType": "global", "geoClass": "country", "latitude": "47.3333", "longitude": "13.3333"}},{"name": "Azerbaijan", "data": {"mapType": "global", "geoClass": "country", "latitude": "40.5", "longitude": "47.5"}},{"name": "Bahamas", "data": {"mapType": "global", "geoClass": "country", "latitude": "24.25", "longitude": "-76.0"}},{"name": "Bahrain", "data": {"mapType": "global", "geoClass": "country", "latitude": "26.0", "longitude": "50.55"}},{"name": "Bangladesh", "data": {"mapType": "global", "geoClass": "country", "latitude": "24.0", "longitude": "90.0"}},{"name": "Barbados", "data": {"mapType": "global", "geoClass": "country", "latitude": "13.1667", "longitude": "-59.5333"}},{"name": "Belarus", "data": {"mapType": "global", "geoClass": "country", "latitude": "53.0", "longitude": "28.0"}},{"name": "Belgium", "data": {"mapType": "global", "geoClass": "country", "latitude": "50.8333", "longitude": "4.0"}},{"name": "Belize", "data": {"mapType": "global", "geoClass": "country", "latitude": "17.25", "longitude": "-88.75"}},{"name": "Benin", "data": {"mapType": "global", "geoClass": "country", "latitude": "9.5", "longitude": "2.25"}},{"name": "Bermuda", "data": {"mapType": "global", "geoClass": "country", "latitude": "32.3333", "longitude": "-64.75"}},{"name": "Bhutan", "data": {"mapType": "global", "geoClass": "country", "latitude": "27.5", "longitude": "", "longitude": "90.5"}},{"name": "Bolivia", "data": {"mapType": "global", "geoClass": "country", "latitude": "-17.0", "longitude": "-65.0"}},{"name": "Bosnia and Herzegovina", "data": {"mapType": "global", "geoClass": "country", "latitude": "44.0", "longitude": "18.0"}},{"name": "Botswana", "data": {"mapType": "global", "geoClass": "country", "latitude": "-22.0", "longitude": "24.0"}},{"name": "Bouvet Island", "data": {"mapType": "global", "geoClass": "country", "latitude": "-54.4333", "longitude": "3.4"}},{"name": "Brazil", "data": {"mapType": "global", "geoClass": "country", "latitude": "-10.0", "longitude": "-55.0"}},{"name": "British Indian Ocean Territory", "data": {"mapType": "global", "geoClass": "country", "latitude": "-6.0", "longitude": "71.5"}},{"name": "Brunei", "data": {"mapType": "global", "geoClass": "country", "latitude": "4.5", "longitude": "114.6667"}},{"name": "Bulgaria", "data": {"mapType": "global", "geoClass": "country", "latitude": "43.0", "longitude": "25.0"}},{"name": "Burkina Faso", "data": {"mapType": "global", "geoClass": "country", "latitude": "13.0", "longitude": "-2.0"}},{"name": "Burundi", "data": {"mapType": "global", "geoClass": "country", "latitude": "-3.5", "longitude": "30.0"}},{"name": "Cambodia", "data": {"mapType": "global", "geoClass": "country", "latitude": "13.0", "longitude": "105.0"}},{"name": "Cameroon", "data": {"mapType": "global", "geoClass": "country", "latitude": "6.0", "longitude": "12.0"}},{"name": "Canada", "data": {"mapType": "global", "geoClass": "country", "latitude": "60.0", "longitude": "-95.0"}},{"name": "Cape Verde", "data": {"mapType": "global", "geoClass": "country", "latitude": "16.0", "longitude": "-24.0"}},{"name": "Cayman Islands", "data": {"mapType": "global", "geoClass": "country", "latitude": "19.5", "longitude": "-80.5"}},{"name": "Central African Republic", "data": {"mapType": "global", "geoClass": "country", "latitude": "7.0", "longitude": "21.0"}},{"name": "Chad", "data": {"mapType": "global", "geoClass": "country", "latitude": "15.0", "longitude": "19.0"}},{"name": "Chile", "data": {"mapType": "global", "geoClass": "country", "latitude": "-30.0", "longitude": "-71.0"}},{"name": "China", "data": {"mapType": "global", "geoClass": "country", "latitude": "35.0", "longitude": "105.0"}},{"name": "Christmas Island", "data": {"mapType": "global", "geoClass": "country", "latitude": "-10.5", "longitude": "105.6667"}},{"name": "Cocos (Keeling) Islands", "data": {"mapType": "global", "geoClass": "country", "latitude": "-12.5", "longitude": "96.8333"}},{"name": "Colombia", "data": {"mapType": "global", "geoClass": "country", "latitude": "4.0", "longitude": "-72.0"}},{"name": "Comoros", "data": {"mapType": "global", "geoClass": "country", "latitude": "-12.1667", "longitude": "44.25"}},{"name": "Congo", "data": {"mapType": "global", "geoClass": "country", "latitude": "-1.0", "longitude": "15.0"}},{"name": "Cook Islands", "data": {"mapType": "global", "geoClass": "country", "latitude": "-21.2333", "longitude": "-159.7667"}},{"name": "Costa Rica", "data": {"mapType": "global", "geoClass": "country", "latitude": "10.0", "longitude": "-84.0"}},{"name": "Ivory Coast", "data": {"mapType": "global", "geoClass": "country", "latitude": "8.0", "longitude": "-5.0"}},{"name": "Croatia", "data": {"mapType": "global", "geoClass": "country", "latitude": "45.1667", "longitude": "15.5"}},{"name": "Cuba", "data": {"mapType": "global", "geoClass": "country", "latitude": "21.5", "longitude": "-80.0"}},{"name": "Cyprus", "data": {"mapType": "global", "geoClass": "country", "latitude": "35.0", "longitude": "33.0"}},{"name": "Czech Republic", "data": {"mapType": "global", "geoClass": "country", "latitude": "49.75", "longitude": "15.5"}},{"name": "Denmark", "data": {"mapType": "global", "geoClass": "country", "latitude": "56.0", "longitude": "10.0"}},{"name": "Czechoslovakia", "data": {"mapType": "global", "geoClass": "country", "latitude": "49.75", "longitude": "15.5"}},{"name": "Denmark", "data": {"mapType": "global", "geoClass": "country", "latitude": "56.0", "longitude": "10.0"}},{"name": "Djibouti", "data": {"mapType": "global", "geoClass": "country", "latitude": "11.5", "longitude": "43.0"}},{"name": "Dominica", "data": {"mapType": "global", "geoClass": "country", "latitude": "15.4167", "longitude": "-61.3333"}},{"name": "Dominican Republic", "data": {"mapType": "global", "geoClass": "country", "latitude": "19.0", "longitude": "-70.6667"}},{"name": "Ecuador", "data": {"mapType": "global", "geoClass": "country", "latitude": "-2.0", "longitude": "-77.5"}},{"name": "Egypt", "data": {"mapType": "global", "geoClass": "country", "latitude": "27.0", "longitude": "30.0"}},{"name": "El Salvador", "data": {"mapType": "global", "geoClass": "country", "latitude": "13.8333", "longitude": "-88.9167"}},{"name": "Equatorial Guinea", "data": {"mapType": "global", "geoClass": "country", "latitude": "2.0", "longitude": "10.0"}},{"name": "Eritrea", "data": {"mapType": "global", "geoClass": "country", "latitude": "15.0", "longitude": "39.0"}},{"name": "Estonia", "data": {"mapType": "global", "geoClass": "country", "latitude": "59.0", "longitude": "26.0"}},{"name": "Ethiopia", "data": {"mapType": "global", "geoClass": "country", "latitude": "8.0", "longitude": "38.0"}},{"name": "Falkland Islands", "data": {"mapType": "global", "geoClass": "country", "latitude": "-51.75", "longitude": "-59.0"}},{"name": "Faroe Islands", "data": {"mapType": "global", "geoClass": "country", "latitude": "62.0", "longitude": "-7.0"}},{"name": "Fiji", "data": {"mapType": "global", "geoClass": "country", "latitude": "-18.0", "longitude": "175.0"}},{"name": "Finland", "data": {"mapType": "global", "geoClass": "country", "latitude": "64.0", "longitude": "26.0"}},{"name": "France", "data": {"mapType": "global", "geoClass": "country", "latitude": "46.0", "longitude": "2.0"}},{"name": "French Guiana", "data": {"mapType": "global", "geoClass": "country", "latitude": "4.0", "longitude": "-53.0"}},{"name": "French Polynesia", "data": {"mapType": "global", "geoClass": "country", "latitude": "-15.0", "longitude": "-140.0"}},{"name": "French Southern Territories", "data": {"mapType": "global", "geoClass": "country", "latitude": "-43.0", "longitude": "67.0"}},{"name": "Gabon", "data": {"mapType": "global", "geoClass": "country", "latitude": "-1.0", "longitude": "11.75"}},{"name": "Gambia", "data": {"mapType": "global", "geoClass": "country", "latitude": "13.4667", "longitude": "-16.5667"}},{"name": "Georgia", "data": {"mapType": "global", "geoClass": "country", "latitude": "42.0", "longitude": "43.5"}},{"name": "Germany", "data": {"mapType": "global", "geoClass": "country", "latitude": "51.0", "longitude": "9.0"}},{"name": "Ghana", "data": {"mapType": "global", "geoClass": "country", "latitude": "8.0", "longitude": "-2.0"}},{"name": "Greece", "data": {"mapType": "global", "geoClass": "country", "latitude": "39.0", "longitude": "22.0"}},{"name": "Greenland", "data": {"mapType": "global", "geoClass": "country", "latitude": "72.0", "longitude": "-40.0"}},{"name": "Grenada", "data": {"mapType": "global", "geoClass": "country", "latitude": "12.1167", "longitude": "-61.6667"}},{"name": "Guadeloupe", "data": {"mapType": "global", "geoClass": "country", "latitude": "16.25", "longitude": "-61.5833"}},{"name": "Guam", "data": {"mapType": "global", "geoClass": "country", "latitude": "13.4667", "longitude": "144.7833"}},{"name": "Guatemala", "data": {"mapType": "global", "geoClass": "country", "latitude": "15.5", "longitude": "-90.25"}},{"name": "Guinea", "data": {"mapType": "global", "geoClass": "country", "latitude": "11.0", "longitude": "-10.0"}},{"name": "Guinea-Bissau", "data": {"mapType": "global", "geoClass": "country", "latitude": "12.0", "longitude": "-15.0"}},{"name": "Guyana", "data": {"mapType": "global", "geoClass": "country", "latitude": "5.0", "longitude": "-59.0"}},{"name": "Haiti", "data": {"mapType": "global", "geoClass": "country", "latitude": "19.0", "longitude": "-72.4167"}},{"name": "Heard and McDonald Islands", "data": {"mapType": "global", "geoClass": "country", "latitude": "-53.1", "longitude": "72.5167"}},{"name": "Honduras", "data": {"mapType": "global", "geoClass": "country", "latitude": "15.0", "longitude": "-86.5"}},{"name": "Hong Kong", "data": {"mapType": "global", "geoClass": "country", "latitude": "22.25", "longitude": "114.1667"}},{"name": "Hungary", "data": {"mapType": "global", "geoClass": "country", "latitude": "47.0", "longitude": "20.0"}},{"name": "Iceland", "data": {"mapType": "global", "geoClass": "country", "latitude": "65.0", "longitude": "-18.0"}},{"name": "India", "data": {"mapType": "global", "geoClass": "country", "latitude": "20.0", "longitude": "77.0"}},{"name": "Indonesia", "data": {"mapType": "global", "geoClass": "country", "latitude": "-5.0", "longitude": "120.0"}},{"name": "Iran", "data": {"mapType": "global", "geoClass": "country", "latitude": "32.0", "longitude": "53.0"}},{"name": "Iraq", "data": {"mapType": "global", "geoClass": "country", "latitude": "33.0", "longitude": "44.0"}},{"name": "Ireland", "data": {"mapType": "global", "geoClass": "country", "latitude": "53.0", "longitude": "-8.0"}},{"name": "Israel", "data": {"mapType": "global", "geoClass": "country", "latitude": "31.5", "longitude": "34.75"}},{"name": "Italy", "data": {"mapType": "global", "geoClass": "country", "latitude": "42.8333", "longitude": "12.8333"}},{"name": "Jamaica", "data": {"mapType": "global", "geoClass": "country", "latitude": "18.25", "longitude": "-77.5"}},{"name": "Japan", "data": {"mapType": "global", "geoClass": "country", "latitude": "36.0", "longitude": "138.0"}},{"name": "Jordan", "data": {"mapType": "global", "geoClass": "country", "latitude": "31.0", "longitude": "36.0"}},{"name": "Kazakhstan", "data": {"mapType": "global", "geoClass": "country", "latitude": "48.0", "longitude": "68.0"}},{"name": "Kenya", "data": {"mapType": "global", "geoClass": "country", "latitude": "1.0", "longitude": "38.0"}},{"name": "Kiribati", "data": {"mapType": "global", "geoClass": "country", "latitude": "1.4167", "longitude": "173.0"}},{"name": "North Korea", "data": {"mapType": "global", "geoClass": "country", "latitude": "40.0", "longitude": "127.0"}},{"name": "Republic of Korea", "data": {"mapType": "global", "geoClass": "country", "latitude": "37.0", "longitude": "127.5"}},{"name": "Kuwait", "data": {"mapType": "global", "geoClass": "country", "latitude": "29.3375", "longitude": "47.6581"}},{"name": "Kyrgyzstan", "data": {"mapType": "global", "geoClass": "country", "latitude": "41.0", "longitude": "75.0"}},{"name": "Laos", "data": {"mapType": "global", "geoClass": "country", "latitude": "18.0", "longitude": "105.0"}},{"name": "Latvia", "data": {"mapType": "global", "geoClass": "country", "latitude": "57.0", "longitude": "25.0"}},{"name": "Lebanon", "data": {"mapType": "global", "geoClass": "country", "latitude": "33.8333", "longitude": "35.8333"}},{"name": "Lesotho", "data": {"mapType": "global", "geoClass": "country", "latitude": "-29.5", "longitude": "28.5"}},{"name": "Liberia", "data": {"mapType": "global", "geoClass": "country", "latitude": "6.5", "longitude": "-9.5"}},{"name": "Liechtenstein", "data": {"mapType": "global", "geoClass": "country", "latitude": "47.1667", "longitude": "9.5333"}},{"name": "Lithuania", "data": {"mapType": "global", "geoClass": "country", "latitude": "56.0", "longitude": "24.0"}},{"name": "Luxembourg", "data": {"mapType": "global", "geoClass": "country", "latitude": "49.75", "longitude": "6.1667"}},{"name": "Macau", "data": {"mapType": "global", "geoClass": "country", "latitude": "22.1667", "longitude": "113.55"}},{"name": "Macedonia", "data": {"mapType": "global", "geoClass": "country", "latitude": "41.8333", "longitude": "22.0"}},{"name": "Madagascar", "data": {"mapType": "global", "geoClass": "country", "latitude": "-20.0", "longitude": "47.0"}},{"name": "Malawi", "data": {"mapType": "global", "geoClass": "country", "latitude": "-13.5", "longitude": "34.0"}},{"name": "Malaysia", "data": {"mapType": "global", "geoClass": "country", "latitude": "2.5", "longitude": "112.5"}},{"name": "Maldives", "data": {"mapType": "global", "geoClass": "country", "latitude": "3.25", "longitude": "73.0"}},{"name": "Mali", "data": {"mapType": "global", "geoClass": "country", "latitude": "17.0", "longitude": "-4.0"}},{"name": "Malta", "data": {"mapType": "global", "geoClass": "country", "latitude": "35.8333", "longitude": "14.5833"}},{"name": "Marshal Islands", "data": {"mapType": "global", "geoClass": "country", "latitude": "9.0", "longitude": "168.0"}},{"name": "Martinique", "data": {"mapType": "global", "geoClass": "country", "latitude": "14.6667", "longitude": "-61.0"}},{"name": "Mauritania", "data": {"mapType": "global", "geoClass": "country", "latitude": "20.0", "longitude": "-12.0"}},{"name": "Mauritius", "data": {"mapType": "global", "geoClass": "country", "latitude": "-20.2833", "longitude": "57.55"}},{"name": "Mayotte", "data": {"mapType": "global", "geoClass": "country", "latitude": "-12.8333", "longitude": "45.1667"}},{"name": "Mexico", "data": {"mapType": "global", "geoClass": "country", "latitude": "23.0", "longitude": "-102.0"}},{"name": "Micronesia", "data": {"mapType": "global", "geoClass": "country", "latitude": "6.9167", "longitude": "158.25"}},{"name": "Moldova", "data": {"mapType": "global", "geoClass": "country", "latitude": "47.0", "longitude": "29.0"}},{"name": "Monaco", "data": {"mapType": "global", "geoClass": "country", "latitude": "43.7333", "longitude": "7.4"}},{"name": "Mongolia", "data": {"mapType": "global", "geoClass": "country", "latitude": "46.0", "longitude": "105.0"}},{"name": "Montserrat", "data": {"mapType": "global", "geoClass": "country", "latitude": "16.75", "longitude": "-62.2"}},{"name": "Morocco", "data": {"mapType": "global", "geoClass": "country", "latitude": "32.0", "longitude": "-5.0"}},{"name": "Mozambique", "data": {"mapType": "global", "geoClass": "country", "latitude": "-18.25", "longitude": "35.0"}},{"name": "Myanmar", "data": {"mapType": "global", "geoClass": "country", "latitude": "22.0", "longitude": "98.0"}},{"name": "Namibia", "data": {"mapType": "global", "geoClass": "country", "latitude": "-22.0", "longitude": "17.0"}},{"name": "Nauru", "data": {"mapType": "global", "geoClass": "country", "latitude": "-0.5333", "longitude": "166.9167"}},{"name": "Nepal", "data": {"mapType": "global", "geoClass": "country", "latitude": "28.0", "longitude": "84.0"}},{"name": "Netherlands Antilles", "data": {"mapType": "global", "geoClass": "country", "latitude": "12.25", "longitude": "-68.75"}},{"name": "Netherlands", "data": {"mapType": "global", "geoClass": "country", "latitude": "52.5", "longitude": "5.75"}},{"name": "New Caledonia", "data": {"mapType": "global", "geoClass": "country", "latitude": "-21.5", "longitude": "165.5"}},{"name": "New Zealand", "data": {"mapType": "global", "geoClass": "country", "latitude": "-41.0", "longitude": "174.0"}},{"name": "Nicaragua", "data": {"mapType": "global", "geoClass": "country", "latitude": "13.0", "longitude": "-85.0"}},{"name": "Niger", "data": {"mapType": "global", "geoClass": "country", "latitude": "16.0", "longitude": "8.0"}},{"name": "Nigeria", "data": {"mapType": "global", "geoClass": "country", "latitude": "10.0", "longitude": "8.0"}},{"name": "Niue", "data": {"mapType": "global", "geoClass": "country", "latitude": "-19.0333", "longitude": "-169.8667"}},{"name": "Norfolk Island", "data": {"mapType": "global", "geoClass": "country", "latitude": "-29.0333", "longitude": "167.95"}},{"name": "Northern Marianas Islands", "data": {"mapType": "global", "geoClass": "country", "latitude": "15.2", "longitude": "145.75"}},{"name": "Norway", "data": {"mapType": "global", "geoClass": "country", "latitude": "62.0", "longitude": "10.0"}},{"name": "Oman", "data": {"mapType": "global", "geoClass": "country", "latitude": "21.0", "longitude": "57.0"}},{"name": "Pakistan", "data": {"mapType": "global", "geoClass": "country", "latitude": "30.0", "longitude": "70.0"}},{"name": "Palau", "data": {"mapType": "global", "geoClass": "country", "latitude": "7.5", "longitude": "134.5"}},{"name": "Panama", "data": {"mapType": "global", "geoClass": "country", "latitude": "9.0", "longitude": "-80.0"}},{"name": "Papua New Guinea", "data": {"mapType": "global", "geoClass": "country", "latitude": "-6.0", "longitude": "147.0"}},{"name": "Paraguay", "data": {"mapType": "global", "geoClass": "country", "latitude": "-23.0", "longitude": "-58.0"}},{"name": "Peru", "data": {"mapType": "global", "geoClass": "country", "latitude": "-10.0", "longitude": "-76.0"}},{"name": "Philippines", "data": {"mapType": "global", "geoClass": "country", "latitude": "13.0", "longitude": "122.0"}},{"name": "Pitcairn", "data": {"mapType": "global", "geoClass": "country", "latitude": "-24.7", "longitude": "-127.4"}},{"name": "Poland", "data": {"mapType": "global", "geoClass": "country", "latitude": "52.0", "longitude": "20.0"}},{"name": "Portugal", "data": {"mapType": "global", "geoClass": "country", "latitude": "39.5", "longitude": "-8.0"}},{"name": "Puerto Rico", "data": {"mapType": "global", "geoClass": "country", "latitude": "18.25", "longitude": "-66.5"}},{"name": "Qatar", "data": {"mapType": "global", "geoClass": "country", "latitude": "25.5", "longitude": "51.25"}},{"name": "Reunion", "data": {"mapType": "global", "geoClass": "country", "latitude": "-21.1", "longitude": "55.6"}},{"name": "Romania", "data": {"mapType": "global", "geoClass": "country", "latitude": "46.0", "longitude": "25.0"}},{"name": "Russia", "data": {"mapType": "global", "geoClass": "country", "latitude": "60.0", "longitude": "100.0"}},{"name": "Russian Federation", "data": {"mapType": "global", "geoClass": "country", "latitude": "60.0", "longitude": "100.0"}},{"name": "Rwanda", "data": {"longitude": "-2.0", "longitude": "30.0"}},{"name": "Saint Helena", "data": {"mapType": "global", "geoClass": "country", "latitude": "-15.9333", "longitude": "-5.7"}},{"name": "Saint Kitts and Nevis", "data": {"mapType": "global", "geoClass": "country", "latitude": "17.3333", "longitude": "-62.75"}},{"name": "Saint Lucia", "data": {"mapType": "global", "geoClass": "country", "latitude": "13.8833", "longitude": "-61.1333"}},{"name": "Saint Pierre and Miquelon", "data": {"mapType": "global", "geoClass": "country", "latitude": "46.8333", "longitude": "-56.3333"}},{"name": "Saint Vincent and the Grenadines", "data": {"mapType": "global", "geoClass": "country", "latitude": "13.25", "longitude": "-61.2"}},{"name": "Samoa", "data": {"mapType": "global", "geoClass": "country", "latitude": "-13.5833", "longitude": "-172.3333"}},{"name": "San Marino", "data": {"mapType": "global", "geoClass": "country", "latitude": "43.7667", "longitude": "12.4167"}},{"name": "Sao Tome and Principe", "data": {"mapType": "global", "geoClass": "country", "latitude": "1.0", "longitude": "7.0"}},{"name": "Saudi Arabia", "data": {"mapType": "global", "geoClass": "country", "latitude": "25.0", "longitude": "45.0"}},{"name": "Senegal", "data": {"mapType": "global", "geoClass": "country", "latitude": "14.0", "longitude": "-14.0"}},{"name": "Seychelles", "data": {"mapType": "global", "geoClass": "country", "latitude": "-4.5833", "longitude": "55.6667"}},{"name": "Sierra Leone", "data": {"mapType": "global", "geoClass": "country", "latitude": "8.5", "longitude": "-11.5"}},{"name": "Singapore", "data": {"mapType": "global", "geoClass": "country", "latitude": "1.3667", "longitude": "103.8"}},{"name": "Slovak Republic", "data": {"mapType": "global", "geoClass": "country", "latitude": "48.6667", "longitude": "19.5"}},{"name": "Slovenia", "data": {"mapType": "global", "geoClass": "country", "latitude": "46.0", "longitude": "15.0"}},{"name": "Solomon Islands", "data": {"mapType": "global", "geoClass": "country", "latitude": "-8.0", "longitude": "159.0"}},{"name": "Somalia", "data": {"mapType": "global", "geoClass": "country", "latitude": "10.0", "longitude": "49.0"}},{"name": "South Africa", "data": {"mapType": "global", "geoClass": "country", "latitude": "-29.0", "longitude": "24.0"}},{"name": "South Georgia and the South Sandwich Islands", "data": {"mapType": "global", "geoClass": "country", "latitude": "-54.5", "longitude": "-37.0"}},{"name": "Spain", "data": {"mapType": "global", "geoClass": "country", "latitude": "40.0", "longitude": "-4.0"}},{"name": "Sri Lanka", "data": {"mapType": "global", "geoClass": "country", "latitude": "7.0", "longitude": "81.0"}},{"name": "Sudan", "data": {"mapType": "global", "geoClass": "country", "latitude": "15.0", "longitude": "30.0"}},{"name": "Suriname", "data": {"mapType": "global", "geoClass": "country", "latitude": "4.0", "longitude": "-56.0"}},{"name": "Svalbard and Jan Mayen Islands", "data": {"mapType": "global", "geoClass": "country", "latitude": "78.0", "longitude": "20.0"}},{"name": "Swaziland", "data": {"mapType": "global", "geoClass": "country", "latitude": "-26.5", "longitude": "31.5"}},{"name": "Sweden", "data": {"mapType": "global", "geoClass": "country", "latitude": "62.0", "longitude": "15.0"}},{"name": "Switzerland", "data": {"mapType": "global", "geoClass": "country", "latitude": "47.0", "longitude": "8.0"}},{"name": "Syria", "data": {"mapType": "global", "geoClass": "country", "latitude": "35.0", "longitude": "38.0"}},{"name": "Taiwan", "data": {"mapType": "global", "geoClass": "country", "latitude": "23.5", "longitude": "121.0"}},{"name": "Tajikistan", "data": {"mapType": "global", "geoClass": "country", "latitude": "39.0", "longitude": "71.0"}},{"name": "Tanzania", "data": {"mapType": "global", "geoClass": "country", "latitude": "-6.0", "longitude": "35.0"}},{"name": "Thailand", "data": {"mapType": "global", "geoClass": "country", "latitude": "15.0", "longitude": "100.0"}},{"name": "Togo", "data": {"mapType": "global", "geoClass": "country", "latitude": "8.0", "longitude": "1.1667"}},{"name": "Tokelau", "data": {"mapType": "global", "geoClass": "country", "latitude": "-9.0", "longitude": "-172.0"}},{"name": "Tonga", "data": {"mapType": "global", "geoClass": "country", "latitude": "-20.0", "longitude": "-175.0"}},{"name": "Trinidad and Tobago", "data": {"mapType": "global", "geoClass": "country", "latitude": "11.0", "longitude": "-61.0"}},{"name": "Tunisia", "data": {"mapType": "global", "geoClass": "country", "latitude": "34.0", "longitude": "9.0"}},{"name": "Turkey", "data": {"mapType": "global", "geoClass": "country", "latitude": "39.0", "longitude": "35.0"}},{"name": "Turkmenistan", "data": {"mapType": "global", "geoClass": "country", "latitude": "40.0", "longitude": "60.0"}},{"name": "Turks and Caicos Islands", "data": {"mapType": "global", "geoClass": "country", "latitude": "21.75", "longitude": "-71.5833"}},{"name": "Tuvalu", "data": {"mapType": "global", "geoClass": "country", "latitude": "-8.0", "longitude": "178.0"}},{"name": "Uganda", "data": {"mapType": "global", "geoClass": "country", "latitude": "1.0", "longitude": "32.0"}},{"name": "Ukraine", "data": {"mapType": "global", "geoClass": "country", "latitude": "49.0", "longitude": "32.0"}},{"name": "United Arab Emirates", "data": {"mapType": "global", "geoClass": "country", "latitude": "24.0", "longitude": "54.0"}},{"name": "United Kingdom", "data": {"mapType": "global", "geoClass": "country", "latitude": "54.0", "longitude": "-2.0"}},{"name": "United States of America", "data": {"mapType": "global", "geoClass": "country", "latitude": "38.0", "longitude": "-97.0"}},{"name": "Uruguay", "data": {"mapType": "global", "geoClass": "country", "latitude": "-33.0", "longitude": "-56.0"}},{"name": "Uzbekistan", "data": {"mapType": "global", "geoClass": "country", "latitude": "41.0", "longitude": "64.0"}},{"name": "Vanuatu", "data": {"mapType": "global", "geoClass": "country", "latitude": "-16.0", "longitude": "167.0"}},{"name": "Vatican City", "data": {"mapType": "global", "geoClass": "country", "latitude": "41.9", "longitude": "12.45"}},{"name": "Venezuela", "data": {"mapType": "global", "geoClass": "country", "latitude": "8.0", "longitude": "-66.0"}},{"name": "Vietnam", "data": {"mapType": "global", "geoClass": "country", "latitude": "16.0", "longitude": "106.0"}},{"name": "British Virgin Islands", "data": {"mapType": "global", "geoClass": "country", "latitude": "18.3333", "longitude": "-64.8333"}},{"name": "US Virgin Islands", "data": {"mapType": "global", "geoClass": "country", "latitude": "18.3333", "longitude": "-64.8333"}},{"name": "Wallis and Futuna Islands", "data": {"mapType": "global", "geoClass": "country", "latitude": "-13.3", "longitude": "-176.2"}},{"name": "Western Sahara", "data": {"mapType": "global", "geoClass": "country", "latitude": "24.5", "longitude": "-13.0"}},{"name": "Yemen", "data": {"mapType": "global", "geoClass": "country", "latitude": "15.0", "longitude": "48.0"}},{"name": "Zaire", "data": {"mapType": "global", "geoClass": "country", "latitude": "-20.0", "longitude": "30.0"}},{"name": "Zambia", "data": {"mapType": "global", "geoClass": "country", "latitude": "-15.0", "longitude": "30.0"}},{"name": "Zimbabwe", "data": {"mapType": "global", "geoClass": "country", "latitude": "-20.0", "longitude": "30.0"}},{"name": "Central Africa", "data": {"mapType": "global", "geoClass": "region", "latitude": "", "longitude": ""}},{"name": "Central Europe", "data": {"mapType": "global", "geoClass": "region", "latitude": "48.9225", "longitude": "9.22852"}},{"name": "East Asia", "data": {"mapType": "global", "geoClass": "region", "latitude": "31.95216", "longitude": "120.41016"}},{"name": "Eastern North America", "data": {"mapType": "global", "geoClass": "region", "latitude": "45.213", "longitude": "-66.44531"}},{"name": "European Union (EU)", "data": {"mapType": "global", "geoClass": "region", "latitude": "48.86471", "longitude": "11.68945"}},{"name": "Central Asia", "data": {"mapType": "global", "geoClass": "region", "latitude": "36.73888", "longitude": "93.16406"}},{"name": "Former Soviet bloc countries", "data": {"mapType": "global", "geoClass": "region", "latitude": "49.72448", "longitude": "24.43359"}},{"name": "French North Africa", "data": {"mapType": "global", "geoClass": "region", "latitude": "34.45222", "longitude": "0.52734"}},{"name": "Gibraltar", "data": {"mapType": "global", "geoClass": "region", "latitude": "36.1430", "longitude": "5.3530"}},{"name": "Latin America", "data": {"mapType": "global", "geoClass": "region", "latitude": "21.69827", "longitude": "-84.50684"}},{"name": "Oceania", "data": {"mapType": "global", "geoClass": "region", "latitude": "-18.312777", "longitude": "138.51555"}},{"name": "North Africa", "data": {"mapType": "global", "geoClass": "region", "latitude": "26.43123", "longitude": "13.35938"}},{"name": "South America", "data": {"mapType": "global", "geoClass": "region", "latitude": "-21.28937", "longitude": "-58.00781"}},{"name": "South Asia", "data": {"mapType": "global", "geoClass": "region", "latitude": "22.91792", "longitude": "82.26563"}},{"name": "Southeast Asia", "data": {"mapType": "global", "geoClass": "region", "latitude": "9.1021", "longitude": "111.79688"}},{"name": "Sub-Saharan Africa", "data": {"mapType": "global", "geoClass": "region", "latitude": "2.46018", "longitude": "21.97266"}},{"name": "Tibet", "data": {"mapType": "global", "geoClass": "region", "latitude": "29.53523", "longitude": "87.89063"}},{"name": "central America", "data": {"mapType": "global", "geoClass": "region", "latitude": "16.29905", "longitude": "-92.98828"}},{"name": "eastern Africa", "data": {"mapType": "global", "geoClass": "region", "latitude": "-7.36247", "longitude": "39.19922"}},{"name": "eastern Europe", "data": {"mapType": "global", "geoClass": "region", "latitude": "47.7541", "longitude": "22.59789"}},{"name": "middle Africa", "data": {"mapType": "global", "geoClass": "region", "latitude": "5.70345", "longitude": "22.5"}},{"name": "northern Europe", "data": {"mapType": "global", "geoClass": "region", "latitude": "57.563", "longitude": "12.56836"}},{"name": "southern Africa", "data": {"mapType": "global", "geoClass": "region", "latitude": "-22.35008", "longitude": "25.04883"}},{"name": "southern Europe", "data": {"mapType": "global", "geoClass": "region", "latitude": "40.04444", "longitude": "9.14063"}},{"name": "western Africa", "data": {"mapType": "global", "geoClass": "region", "latitude": "4.65308", "longitude": "6.32813"}},{"name": "western Europe", "data": {"mapType": "global", "geoClass": "region", "latitude": "48.69096", "longitude": "3.51563"}},{"name": "Africa", "data": {"mapType": "global", "geoClass": "region", "latitude": "8.58102", "longitude": "21.97266"}},{"name": "Americas", "data": {"mapType": "global", "geoClass": "region", "latitude": "13.23995", "longitude": "-78.39844"}},{"name": "Caribbean", "data": {"mapType": "global", "geoClass": "region", "latitude": "19.64259", "longitude": "-79.10156"}},{"name": "Europe", "data": {"mapType": "global", "geoClass": "region", "latitude": "50.84757", "longitude": "19.33594"}},{"name": "Melanesia", "data": {"mapType": "global", "geoClass": "region", "latitude": "-11.3508", "longitude": "165.9375"}},{"name": "Asia", "data": {"mapType": "global", "geoClass": "region", "latitude": "40.31304", "longitude": "90.78906"}},{"name": "North America", "data": {"mapType": "global", "geoClass": "region", "latitude": "46.43786", "longitude": "-97.73437"}},{"name": "northern America", "data": {"mapType": "global", "geoClass": "region", "latitude": "45.58329", "longitude": "-91.75781"}},{"name": "western Asia", "data": {"mapType": "global", "geoClass": "region", "latitude": "36.45664", "longitude": "57.12891"}},{"name": "Polynesia", "data": {"mapType": "global", "geoClass": "region", "latitude": "1.75754", "longitude": "-156.09375"}},{"name": "eastern Asia", "data": {"mapType": "global", "geoClass": "region", "latitude": "30.75128", "longitude": "126.38672"}},{"name": "northern Africa", "data": {"mapType": "global", "geoClass": "region", "latitude": "29.53523", "longitude": "14.23828"}},{"name": "south-eastern Asia", "data": {"mapType": "global", "geoClass": "region", "latitude": "6.3153", "longitude": "129.375"}},{"name": "southern Asia", "data": {"mapType": "global", "geoClass": "region", "latitude": "-1.05463", "longitude": "108.63281"}},{"name": "Alaska", "data": {"mapType": "country", "geoClass": "state", "latitude": "64.3850", "longitude": "-154.2683"}},{"name": "Alabama", "data": {"mapType": "country", "geoClass": "state", "latitude": "32.7990", "longitude": "-86.8073"}},{"name": "Arkansas", "data": {"mapType": "country", "geoClass": "state", "latitude": "34.9513", "longitude": "-92.3809"}},{"name": "Arizona", "data": {"mapType": "country", "geoClass": "state", "latitude": "33.7712", "longitude": "-111.3877"}},{"name": "California", "data": {"mapType": "country", "geoClass": "state", "latitude": "36.1700", "longitude": "-119.7462"}},{"name": "Colorado", "data": {"mapType": "country", "geoClass": "state", "latitude": "39.0646", "longitude": "-105.3272"}},{"name": "Connecticut", "data": {"mapType": "country", "geoClass": "state", "latitude": "41.5834", "longitude": "-72.7622"}},{"name": "District of Columbia", "data": {"mapType": "country", "geoClass": "state", "latitude": "38.8964", "longitude": "-77.0262"}},{"name": "Delaware", "data": {"mapType": "country", "geoClass": "state", "latitude": "39.3498", "longitude": "-75.5148"}},{"name": "Florida", "data": {"mapType": "country", "geoClass": "state", "latitude": "27.8333", "longitude": "-81.7170"}},{"name": "Georgia", "data": {"mapType": "country", "geoClass": "state", "latitude": "32.9866", "longitude": "-83.6487"}},{"name": "Hawaii", "data": {"mapType": "country", "geoClass": "state", "latitude": "21.1098", "longitude": "-157.5311"}},{"name": "Iowa", "data": {"mapType": "country", "geoClass": "state", "latitude": "42.0046", "longitude": "-93.2140"}},{"name": "Idaho", "data": {"mapType": "country", "geoClass": "state", "latitude": "44.2394", "longitude": "-114.5103"}},{"name": "Illinois", "data": {"mapType": "country", "geoClass": "state", "latitude": "40.3363", "longitude": "-89.0022"}},{"name": "Indiana", "data": {"mapType": "country", "geoClass": "state", "latitude": "39.8647", "longitude": "-86.2604"}},{"name": "Kansas", "data": {"mapType": "country", "geoClass": "state", "latitude": "38.5111", "longitude": "-96.8005"}},{"name": "Kentucky", "data": {"mapType": "country", "geoClass": "state", "latitude": "37.6690", "longitude": "-84.6514"}},{"name": "Louisiana", "data": {"mapType": "country", "geoClass": "state", "latitude": "31.1801", "longitude": "-91.8749"}},{"name": "Massachusetts", "data": {"mapType": "country", "geoClass": "state", "latitude": "42.2373", "longitude": "-71.5314"}},{"name": "Maryland", "data": {"mapType": "country", "geoClass": "state", "latitude": "39.0724", "longitude": "-76.7902"}},{"name": "Maine", "data": {"mapType": "country", "geoClass": "state", "latitude": "44.6074", "longitude": "-69.3977"}},{"name": "Michigan", "data": {"mapType": "country", "geoClass": "state", "latitude": "43.3504", "longitude": "-84.5603"}},{"name": "Minnesota", "data": {"mapType": "country", "geoClass": "state", "latitude": "", "longitude": ""}},{"name": "Missouri", "data": {"mapType": "country", "geoClass": "state", "latitude": "38.4623", "longitude": "-92.3020"}},{"name": "Mississippi", "data": {"mapType": "country", "geoClass": "state", "latitude": "32.7673", "longitude": "-89.6812"}},{"name": "Montana", "data": {"mapType": "country", "geoClass": "state", "latitude": "46.9048", "longitude": "-110.3261"}},{"name": "North Carolina", "data": {"mapType": "country", "geoClass": "state", "latitude": "35.6411", "longitude": "-79.8431"}},{"name": "North Dakota", "data": {"mapType": "country", "geoClass": "state", "latitude": "47.5362", "longitude": "-99.7930"}},{"name": "Nebraska", "data": {"mapType": "country", "geoClass": "state", "latitude": "41.1289", "longitude": "-98.2883"}},{"name": "New Hampshire", "data": {"mapType": "country", "geoClass": "state", "latitude": "43.4108", "longitude": "-71.5653"}},{"name": "New Jersey", "data": {"mapType": "country", "geoClass": "state", "latitude": "40.3140", "longitude": "-74.5089"}},{"name": "New Mexico", "data": {"mapType": "country", "geoClass": "state", "latitude": "34.8375", "longitude": "-106.2371"}},{"name": "Nevada", "data": {"mapType": "country", "geoClass": "state", "latitude": "38.4199", "longitude": "-117.1219"}},{"name": "New York", "data": {"mapType": "country", "geoClass": "state", "latitude": "42.1497", "longitude": "-74.9384"}},{"name": "Ohio", "data": {"mapType": "country", "geoClass": "state", "latitude": "40.3736", "longitude": "-82.7755"}},{"name": "Oklahoma", "data": {"mapType": "country", "geoClass": "state", "latitude": "35.5376", "longitude": "-96.9247"}},{"name": "Oregon", "data": {"mapType": "country", "geoClass": "state", "latitude": "44.5672", "longitude": "-122.1269"}},{"name": "Pennsylvania", "data": {"mapType": "country", "geoClass": "state", "latitude": "40.5773", "longitude": "-77.2640"}},{"name": "Rhode Island", "data": {"mapType": "country", "geoClass": "state", "latitude": "41.6772", "longitude": "-71.5101"}},{"name": "South Carolina", "data": {"mapType": "country", "geoClass": "state", "latitude": "33.8191", "longitude": "-80.9066"}},{"name": "Tennessee", "data": {"mapType": "country", "geoClass": "state", "latitude": "35.7449", "longitude": "-86.7489"}},{"name": "South Dakota", "data": {"mapType": "country", "geoClass": "state", "latitude": "44.2853", "longitude": "-99.4632"}},{"name": "Texas", "data": {"mapType": "country", "geoClass": "state", "latitude": "31.1060", "longitude": "-97.6475"}},{"name": "Utah", "data": {"mapType": "country", "geoClass": "state", "latitude": "40.1135", "longitude": "-111.8535"}},{"name": "Virginia", "data": {"mapType": "country", "geoClass": "state", "latitude": "37.7680", "longitude": "-78.2057"}},{"name": "Vermont", "data": {"mapType": "country", "geoClass": "state", "latitude": "44.0407", "longitude": "-72.7093"}},{"name": "Washington", "data": {"mapType": "country", "geoClass": "state", "latitude": "47.3917", "longitude": "-121.5708"}},{"name": "Wisconsin", "data": {"mapType": "country", "geoClass": "state", "latitude": "44.2563", "longitude": "-89.6385"}},{"name": "West Virginia", "data": {"mapType": "country", "geoClass": "state", "latitude": "38.4680", "longitude": "-80.9696"}},{"name": "Wyoming", "data": {"mapType": "country", "geoClass": "state", "latitude": "42.7475", "longitude": "-107.2085"}}];
diff --git a/productMods/templates/freemarker/body/partials/individual/individual-positions.ftl b/productMods/templates/freemarker/body/partials/individual/individual-positions.ftl
index c0816bba..b74aab68 100644
--- a/productMods/templates/freemarker/body/partials/individual/individual-positions.ftl
+++ b/productMods/templates/freemarker/body/partials/individual/individual-positions.ftl
@@ -1,6 +1,6 @@
<#-- $This file is distributed under the terms of the license in /doc/license.txt$ -->
-<#-- List of positions for the individual -->
Positions!${core}personInPosition
+<#-- List of positions for the individual -->
<#assign positions = propertyGroups.pullProperty("${core}personInPosition")!>
<#if positions?has_content> <#-- true when the property is in the list, even if not populated (when editing) -->
<#assign localName = positions.localName>
diff --git a/productMods/templates/freemarker/body/partials/individual/individual-researchAreas.ftl b/productMods/templates/freemarker/body/partials/individual/individual-researchAreas.ftl
index e01938d7..aaabeb05 100644
--- a/productMods/templates/freemarker/body/partials/individual/individual-researchAreas.ftl
+++ b/productMods/templates/freemarker/body/partials/individual/individual-researchAreas.ftl
@@ -3,8 +3,6 @@
<#-- List of research areas for the individual -->
<#assign researchAreas = propertyGroups.pullProperty("${core}hasResearchArea")!>
<#assign concepts = propertyGroups.pullProperty("${core}hasAssociatedConcept")!>
-<#if concepts?has_content> concepts has content <#else> concepts dont have content#if>
-RESEARCH AREAS: ${core}hasResearchArea
<#if researchAreas?has_content> <#-- true when the property is in the list, even if not populated (when editing) -->
<#assign localName = researchAreas.localName>
@@ -14,5 +12,5 @@
<@p.objectProperty researchAreas editable />
-
<#else> Research areas does not have content
+
#if>
diff --git a/productMods/templates/freemarker/edit/forms/js/addConcept.js b/productMods/templates/freemarker/edit/forms/js/addConcept.js
index 4c882f33..d650d349 100644
--- a/productMods/templates/freemarker/edit/forms/js/addConcept.js
+++ b/productMods/templates/freemarker/edit/forms/js/addConcept.js
@@ -281,7 +281,7 @@ var addConceptForm = {
generateIndividualLabelsDisplay:function(label, altLabels) {
var labelDisplay = label;
if(altLabels != null && altLabels.length > 0) {
- labelDisplay += "
(" + altLabels + ")";
+ labelDisplay += "
[" + altLabels + "]";
}
return labelDisplay;
},
diff --git a/productMods/templates/freemarker/lib/lib-home-page.ftl b/productMods/templates/freemarker/lib/lib-home-page.ftl
index 45baa28e..d3850f68 100644
--- a/productMods/templates/freemarker/lib/lib-home-page.ftl
+++ b/productMods/templates/freemarker/lib/lib-home-page.ftl
@@ -205,3 +205,16 @@ var urlsBase = "${urls.base}";
#macro>
+<#-- retrieves a count, the number of researchers with a geographic focus, -->
+<#-- and saves it as a js variable to be used by the homePageMaps.js file -->
+<#macro getGeoResearcherCount>
+
+#macro>
diff --git a/rdf/abox/filegraph/us-states.rdf b/rdf/abox/filegraph/us-states.rdf
index 01252b0d..3fdbdaad 100644
--- a/rdf/abox/filegraph/us-states.rdf
+++ b/rdf/abox/filegraph/us-states.rdf
@@ -6,201 +6,303 @@
Alabama
+
Alaska
+
Arizona
+
Arkansas
+
California
+
Colorado
+
Connecticut
+
Delaware
+
Florida
+
Georgia
+
Hawaii
+
Idaho
+
Illinois
+
Indiana
+
Iowa
+
Kansas
+
Kentucky
+
Louisiana
+
Maine
+
Maryland
+
Massachusetts
+
Michigan
+
Minnesota
+
Mississipi
+
Missouri
+
Montana
+
Nebraska
+
Nevada
+
New Hampshire
+
New Jersey
+
New Mexico
+
New York
+
North Carolina
+
North Dakota
+
Ohio
+
Oklahoma
+
Oregon
+
Pennsylvania
+
Rhode Island
+
South Carolina
+
South Dakota
+
Tennessee
+
Texas
+
Utah
+
Vermont
+
Virginia
+
Washington
+
West Virginia
+
Wisconsin
+
Wyoming
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/rdf/display/everytime/homePageDataGetters.n3 b/rdf/display/everytime/homePageDataGetters.n3
index 40a566b8..da71cc26 100644
--- a/rdf/display/everytime/homePageDataGetters.n3
+++ b/rdf/display/everytime/homePageDataGetters.n3
@@ -29,3 +29,23 @@ display:academicDeptsDataGetter
""" .
+ display:hasDataGetter display:researcherCountDataGetter .
+
+display:researcherCountDataGetter
+ a ;
+ display:saveToVar "researcherCountDG" ;
+ display:query """
+ PREFIX geo:
+ PREFIX rdfs:
+ PREFIX rdf:
+ PREFIX core:
+ PREFIX foaf:
+ PREFIX vivoc:
+
+ SELECT DISTINCT (COUNT(?person) AS ?count)
+ WHERE {
+ ?person rdf:type foaf:Person .
+ FILTER (EXISTS {?person core:geographicFocus ?focus})
+ }
+
+ """ .
diff --git a/src/edu/cornell/mannlib/vitro/webapp/controller/ajax/GeoFocusMapLocations.java b/src/edu/cornell/mannlib/vitro/webapp/controller/ajax/GeoFocusMapLocations.java
index 2404e181..d7f4de81 100644
--- a/src/edu/cornell/mannlib/vitro/webapp/controller/ajax/GeoFocusMapLocations.java
+++ b/src/edu/cornell/mannlib/vitro/webapp/controller/ajax/GeoFocusMapLocations.java
@@ -36,7 +36,7 @@ public class GeoFocusMapLocations extends AbstractAjaxResponder {
+ "PREFIX core: \n"
+ "PREFIX foaf: \n"
+ "PREFIX vivoc: \n"
- + "SELECT DISTINCT ?label ?location (COUNT(?person) AS ?count) \n"
+ + "SELECT DISTINCT ?label ?location (COUNT(DISTINCT ?person) AS ?count) \n"
+ "WHERE { { \n"
+ " ?location rdf:type core:GeographicRegion . \n"
+ " ?location rdfs:label ?label . \n"
diff --git a/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/AddAssociatedConceptGenerator.java b/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/AddAssociatedConceptGenerator.java
index 84b29774..23d2053c 100644
--- a/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/AddAssociatedConceptGenerator.java
+++ b/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/generators/AddAssociatedConceptGenerator.java
@@ -16,6 +16,7 @@ import javax.servlet.http.HttpSession;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import com.hp.hpl.jena.ontology.OntModel;
import com.hp.hpl.jena.rdf.model.Literal;
import com.hp.hpl.jena.rdf.model.Model;
import com.hp.hpl.jena.vocabulary.RDF;
@@ -27,6 +28,7 @@ import edu.cornell.mannlib.vitro.webapp.beans.ObjectProperty;
import edu.cornell.mannlib.vitro.webapp.beans.ObjectPropertyStatement;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.UrlBuilder;
+import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess;
import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationUtils;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo;
@@ -85,7 +87,7 @@ public class AddAssociatedConceptGenerator extends VivoBaseGenerator implements
setTemplate(editConfiguration, vreq);
// No validators required here
// Add preprocessors
- addPreprocessors(editConfiguration, vreq.getWebappDaoFactory());
+ addPreprocessors(editConfiguration, ModelAccess.on(vreq).getJenaOntModel());
// Adding additional data, specifically edit mode
addFormSpecificData(editConfiguration, vreq);
// One override for basic functionality, changing url pattern
@@ -174,8 +176,10 @@ public class AddAssociatedConceptGenerator extends VivoBaseGenerator implements
private List generateN3Optional() {
return list("?conceptNode <" + RDFS.label.getURI() + "> ?conceptLabel .\n" +
"?conceptNode <" + RDFS.isDefinedBy.getURI() + "> ?conceptSource .",
- "?conceptNode <" + VIVOCore + "conceptSemanticType> ?conceptSemanticTypeURI ." +
- "?conceptSemanticTypeURI <" + RDFS.label.getURI() + "> ?conceptSemanticTypeLabel ."
+ "?conceptNode <" + VIVOCore + "hasConceptSemanticType> ?conceptSemanticTypeURI ." +
+ "?conceptSemanticTypeURI <" + VIVOCore + "isConceptSemanticTypeOf> ?conceptNode ." +
+ "?conceptSemanticTypeURI <" + RDFS.label.getURI() + "> ?conceptSemanticTypeLabel ." +
+ "?conceptSemanticTypeURI <" + RDF.type.getURI() + "> <" + VIVOCore + "ConceptSemanticType> ."
);
}
@@ -190,7 +194,7 @@ public class AddAssociatedConceptGenerator extends VivoBaseGenerator implements
//There are no new resources here, the concept node uri doesn't
//get created but already exists, and vocab uri should already exist as well
//Adding concept semantic type uri just to test - note this isn't really on the form at all
- //newResources.put("conceptSemanticTypeURI", null);
+ newResources.put("conceptSemanticTypeURI", null);
return newResources;
}
@@ -239,11 +243,11 @@ public class AddAssociatedConceptGenerator extends VivoBaseGenerator implements
//The URI of the node that defines the concept
urisOnForm.add("conceptNode");
urisOnForm.add("conceptSource");
- // urisOnForm.add("conceptSemanticTypeURI");
+ urisOnForm.add("conceptSemanticTypeURI");
editConfiguration.setUrisOnform(urisOnForm);
//Also need to add the label of the concept
literalsOnForm.add("conceptLabel");
- // literalsOnForm.add("conceptSemanticTypeLabel");
+ literalsOnForm.add("conceptSemanticTypeLabel");
editConfiguration.setLiteralsOnForm(literalsOnForm);
}
@@ -272,8 +276,8 @@ public class AddAssociatedConceptGenerator extends VivoBaseGenerator implements
setConceptNodeField(editConfiguration, vreq);
setConceptLabelField(editConfiguration, vreq);
setVocabURIField(editConfiguration, vreq);
- //setConceptSemanticTypeURIField(editConfiguration,vreq);
- //setConceptSemanticTypeLabelField(editConfiguration,vreq);
+ setConceptSemanticTypeURIField(editConfiguration,vreq);
+ setConceptSemanticTypeLabelField(editConfiguration,vreq);
}
//this field will be hidden and include the concept node URI
@@ -321,11 +325,14 @@ public class AddAssociatedConceptGenerator extends VivoBaseGenerator implements
//Add preprocessor
- private void addPreprocessors(EditConfigurationVTwo editConfiguration, WebappDaoFactory wadf) {
+ private void addPreprocessors(EditConfigurationVTwo editConfiguration, OntModel ontModel) {
//An Edit submission preprocessor for enabling addition of multiple terms for a single search
-
+ //TODO: Check if this is the appropriate way of getting model
+
+ //Passing model to check for any URIs that are present
+
editConfiguration.addEditSubmissionPreprocessor(
- new AddAssociatedConceptsPreprocessor(editConfiguration, wadf));
+ new AddAssociatedConceptsPreprocessor(editConfiguration, ontModel));
}
@@ -411,13 +418,13 @@ public class AddAssociatedConceptGenerator extends VivoBaseGenerator implements
String conceptSemanticTypeURI = null;
String conceptSemanticTypeLabel = null;
//Can a concept have multiple semantic types? Currently we are only returning the first one
- /*
- List semanticTypeStatements = conceptIndividual.getObjectPropertyStatements(VIVOCore + "conceptSemanticType");
+
+ List semanticTypeStatements = conceptIndividual.getObjectPropertyStatements(VIVOCore + "hasConceptSemanticType");
if(semanticTypeStatements.size() > 0) {
conceptSemanticTypeURI = semanticTypeStatements.get(0).getObjectURI();
Individual conceptSemanticTypeIndividual = EditConfigurationUtils.getIndividual(vreq, conceptSemanticTypeURI);
conceptSemanticTypeLabel = conceptSemanticTypeIndividual.getName();
- }*/
+ }
//get label
//Assuming this is from an external vocabulary source
@@ -442,8 +449,8 @@ public class AddAssociatedConceptGenerator extends VivoBaseGenerator implements
this.vocabURI = inputVocabURI;
this.vocabLabel = inputVocabLabel;
this.type = inputType;
- //this.conceptSemanticTypeURI = inputConceptSemanticTypeURI;
- //this.conceptSemanticTypeLabel = inputConceptSemanticTypeLabel;
+ this.conceptSemanticTypeURI = inputConceptSemanticTypeURI;
+ this.conceptSemanticTypeLabel = inputConceptSemanticTypeLabel;
}
//Getters
diff --git a/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/preprocessors/AddAssociatedConceptsPreprocessor.java b/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/preprocessors/AddAssociatedConceptsPreprocessor.java
index b49b9b45..d3fbea33 100644
--- a/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/preprocessors/AddAssociatedConceptsPreprocessor.java
+++ b/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/configuration/preprocessors/AddAssociatedConceptsPreprocessor.java
@@ -3,19 +3,29 @@
package edu.cornell.mannlib.vitro.webapp.edit.n3editing.configuration.preprocessors;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import com.hp.hpl.jena.ontology.OntModel;
+import com.hp.hpl.jena.query.Query;
+import com.hp.hpl.jena.query.QueryExecution;
+import com.hp.hpl.jena.query.QueryExecutionFactory;
+import com.hp.hpl.jena.query.QueryFactory;
+import com.hp.hpl.jena.query.QuerySolution;
+import com.hp.hpl.jena.query.ResultSet;
import com.hp.hpl.jena.rdf.model.Literal;
+import com.hp.hpl.jena.rdf.model.Resource;
+import com.hp.hpl.jena.vocabulary.RDF;
import com.hp.hpl.jena.vocabulary.RDFS;
import com.hp.hpl.jena.vocabulary.XSD;
-import edu.cornell.mannlib.vitro.webapp.beans.Individual;
-import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory;
+
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.BaseEditSubmissionPreprocessorVTwo;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationUtils;
import edu.cornell.mannlib.vitro.webapp.edit.n3editing.VTwo.EditConfigurationVTwo;
@@ -27,13 +37,18 @@ public class AddAssociatedConceptsPreprocessor extends
protected static final Log log = LogFactory
.getLog(AddAssociatedConceptsPreprocessor.class.getName());
- protected WebappDaoFactory wadf = null;
-
+ //TODO: Check if better way to do this?
+ protected OntModel ontModel = null;
// Field names/variables names for n3 - these will have numbers added as
// suffix if more than one term
private static String conceptNodeBase = "conceptNode";
private static String sourceBase = "conceptSource";
private static String labelBase = "conceptLabel";
+ private static String conceptSemanticTypeLabelBase = "conceptSemanticTypeLabel";
+ private static String conceptSemanticTypeURIBase = "conceptSemanticTypeURI";
+ //keyed off label variable, specifies which uri variable should be used, useful if same label repeated twice
+ private HashMap labelVarToUriVarHash = null;
+ private HashMap> conceptSemanticTypeURIVarToValueMap = null;
//Also storing submission values
private static String conceptNodeValues = null;
private static String conceptLabelValues = null;
@@ -46,9 +61,12 @@ public class AddAssociatedConceptsPreprocessor extends
// Will be editing the edit configuration as well as edit submission here
- public AddAssociatedConceptsPreprocessor(EditConfigurationVTwo editConfig, WebappDaoFactory wadf) {
+ public AddAssociatedConceptsPreprocessor(EditConfigurationVTwo editConfig, OntModel ontModel) {
super(editConfig);
- this.wadf = wadf;
+ this.ontModel = ontModel;
+ this.labelVarToUriVarHash = new HashMap();
+ //Saves values of concept type uris
+ this.conceptSemanticTypeURIVarToValueMap = new HashMap>();
}
public void preprocess(MultiValueEditSubmission inputSubmission) {
@@ -57,12 +75,14 @@ public class AddAssociatedConceptsPreprocessor extends
// as vocab uri (which is based on thge
// For query parameters, check whether CUI
copySubmissionValues();
- //This will put the URI value in scope for the first semantic type label
- //and generate the rest if need be
- //processConceptSemanticValues();
+
+
if (conceptNodeValues != null) {
String[] conceptNodes = convertDelimitedStringToArray(conceptNodeValues);
int numberConcepts = conceptNodes.length;
+ //This will put the URI value in scope for the first semantic type label
+ //and generate the rest if need be
+ processConceptSemanticValues();
if (numberConcepts > 1) {
processConceptNodes(numberConcepts);
}
@@ -80,6 +100,7 @@ public class AddAssociatedConceptsPreprocessor extends
conceptLabelValues = getConceptLabelValues();
conceptNodeValues = getConceptNodeValues();
conceptSourceValues = getConceptSourceValues();
+ log.debug("concept label values are " + conceptLabelValues);
}
@@ -94,14 +115,11 @@ public class AddAssociatedConceptsPreprocessor extends
}
-
-
-
-
-
//This is for additional concept nodes (i.e. if user selects more than one concept)
private void processConceptNodes(int numberConcepts) {
//There are no "new" resources b/c the concept nodes are URIs from external vocabularies
+ //New resources for concept semantic type uris
+ addNewResources(numberConcepts);
// Add N3Required
addN3Required(numberConcepts);
//Add N3 Optional as well
@@ -115,6 +133,42 @@ public class AddAssociatedConceptsPreprocessor extends
}
+ //This is specifically for concept semantic type URIs which may need to be generated
+ private void addNewResources(int numberConcepts) {
+ // TODO Auto-generated method stub
+ addConceptSemanticTypeURIResources(numberConcepts);
+ }
+
+ private void addConceptSemanticTypeURIResources(int numberConcepts) {
+ //Iterate through the labels and get the corresponding uris
+ HashSet urisToAdd = new HashSet();
+ String[] conceptSemanticTypeLabels= convertDelimitedStringToArray(conceptSemanticTypeLabelValues);
+ //the number of existing values may not match up, or at least existing populated ones
+ //Now we can't determine whether all concepts will have semantic types - at some point what if
+ //we ran a search across all external vocabularies? So we can't compare labels to number of concepts
+ //but we can ensure that it isn't greater than then number of concepts
+ if(conceptSemanticTypeLabels != null && conceptSemanticTypeLabels.length <= numberConcepts) {
+ int i;
+ for(i = 0; i < numberConcepts; i++) {
+ int suffix = i + 1;
+ String conceptSemanticTypeLabelVar = conceptSemanticTypeLabelBase + suffix;
+ if(this.labelVarToUriVarHash.containsKey(conceptSemanticTypeLabelVar)) {
+ String newResourceName = this.labelVarToUriVarHash.get(conceptSemanticTypeLabelVar);
+ if(!urisToAdd.contains(newResourceName)) {
+ urisToAdd.add(newResourceName);
+ editConfiguration.addNewResource(newResourceName, null);
+ }
+ }
+
+ }
+ } else if(conceptSemanticTypeLabels != null && conceptSemanticTypeLabels.length > numberConcepts){
+ log.error("Number of concept semantic type labels is greater than number of concepts");
+ } else{
+ log.error("Concept semantic type labels returned are null");
+ }
+
+ }
+
//This is where the actual values will be submitted as if they were separate input fields
//Each field name will correspond to the names of the fileds/uris on form/literals on form
//generated here
@@ -126,7 +180,8 @@ public class AddAssociatedConceptsPreprocessor extends
addConceptSourceInputs(numberConcepts);
addConceptLabelInputs(numberConcepts);
//for concept semantic type labels and uris where they exist
- //addConceptSemanticTypeLabelInputs(numberConcepts);
+ //TODO: Make into single method as URIs depend on labels
+ addConceptSemanticTypeLabelAndURIInputs(numberConcepts);
//addConceptSemanticTypeURIInputs(numberConcepts);
}
@@ -198,12 +253,73 @@ public class AddAssociatedConceptsPreprocessor extends
}
}
- private void addConceptSemanticTypeLabelInputs(int numberConcepts) {
-
+ private void addConceptSemanticTypeLabelAndURIInputs(int numberConcepts) {
+ String[] labels = convertDelimitedStringToArray(conceptSemanticTypeLabelValues);
+ HashSet uniqueLabelValues = new HashSet();
+ if(labels != null && labels.length == numberConcepts) {
+ int i;
+ for(i = 0; i < numberConcepts; i++) {
+ String thisLabel = labels[i];
+ int suffix = i + 1;
+ String labelInputName = conceptSemanticTypeLabelBase + suffix;
+ String[] labelValues = new String[1];
+ labelValues[0] = thisLabel;
+ //TODO: Check if there are no funky typed information also stored
+ //At this point the field should already have been added to edit configuration
+ FieldVTwo labelField = editConfiguration.getField(labelInputName);
+ //TODO: Also check to see whether the label is actually populate or will n3 editing take care of that?
+ if(labelField != null) {
+ submission.addLiteralToForm(editConfiguration, labelField, labelInputName, labelValues);
+ //Associate URI
+ if(!uniqueLabelValues.contains(thisLabel)) {
+ uniqueLabelValues.add(thisLabel);
+ this.addConceptSemanticTypeURIInputForLabel(labelInputName, suffix);
+ }
+ } else {
+ log.error("Corresponding field for " + labelInputName + " was not added to edit configuration");
+ }
+
+ }
+ } else if(labels != null && labels.length != numberConcepts){
+ log.error("Number of concept semantic type labels did not match the number of concepts to be added");
+ } else{
+ log.error("Concept labels returned were null");
+ }
}
- private void addConceptSemanticTypeURIInputs(int numberConcepts) {
+ private void addConceptSemanticTypeURIInputForLabel(String conceptSemanticTypeLabel, int suffix) {
+ //String[] conceptSemanticTypeURIs= convertDelimitedStringToArray(conceptSemanticTypeURIValues);
+ //Get the semantic type URI variable name associated with this label
+ String uriInputName = this.getConceptSemanticTypeURIFieldName(conceptSemanticTypeLabel, suffix);
+ //List<>
+ if(this.conceptSemanticTypeURIVarToValueMap.containsKey(uriInputName)) {
+ List uriVals = this.conceptSemanticTypeURIVarToValueMap.get(uriInputName);
+ String[] uriValuesArray = uriVals.toArray(new String[uriVals.size()]);
+ submission.addUriToForm(editConfiguration, uriInputName, uriValuesArray);
+ }
+
+
+ //the number of existing values may not match up, or at least existing populated ones
+ /*
+ if(conceptSemanticTypeURIs != null && conceptSemanticTypeURIs.length == numberConcepts) {
+ int i;
+ for(i = 0; i < numberConcepts; i++) {
+ int suffix = i + 1;
+ String conceptInputName = conceptSemanticTypeURIBase + suffix;
+ String[] uriValues = new String[1];
+ uriValues[0] = conceptSemanticTypeURIs[i];
+ //Add value for uri to form
+ //TODO: Check if value is empty in which case don't add to submission
+ submission.addUriToForm(editConfiguration, conceptInputName, uriValues);
+ }
+ } else if(conceptSemanticTypeURIs != null && conceptSemanticTypeURIs.length != numberConcepts){
+ log.error("Number of concept nodes did not match the number of concepts to be added");
+ } else{
+ log.error("Concept nodes returned were null");
+ }
+
+ */
}
//Fields
@@ -212,16 +328,26 @@ public class AddAssociatedConceptsPreprocessor extends
//Clear out all fields in edit configuration first
editConfiguration.setFields(new HashMap());
int index;
+ HashSet conceptSemanticTypeUris = new HashSet();
// First one already included in generator so add additional ones here
for (index = 1; index <= numberConcepts; index++) {
int suffix = index;
String conceptNode = conceptNodeBase + suffix;
String label = labelBase + suffix;
String source = sourceBase + suffix;
+ String conceptSemanticTypeLabel = conceptSemanticTypeLabelBase + suffix;
+ String conceptSemanticTypeURI = this.getConceptSemanticTypeURIFieldName(conceptSemanticTypeLabel, suffix);
addConceptNodeField(conceptNode);
addLabelField(label);
addSourceField(source);
+ //Also add fields for concept semantic type label
+ addConceptSemanticTypeLabelField(conceptSemanticTypeLabel);
+ //and concept semantic type URI
+ if(!conceptSemanticTypeUris.contains(conceptSemanticTypeURI)) {
+ conceptSemanticTypeUris.add(conceptSemanticTypeURI);
+ addConceptSemanticTypeURIField(conceptSemanticTypeURI);
+ }
}
}
@@ -246,6 +372,25 @@ public class AddAssociatedConceptsPreprocessor extends
setName(source));
}
+
+ //TODO: Do we need to check if label is empty string?
+ private void addConceptSemanticTypeLabelField(String label) {
+ if(label != null) {
+ editConfiguration.addField(new FieldVTwo().
+ setName(label).
+ setRangeDatatypeUri(XSD.xstring.toString())
+ );
+ }
+
+ }
+
+ private void addConceptSemanticTypeURIField(String conceptSemanticTypeURI) {
+ if(conceptSemanticTypeURI != null) {
+ editConfiguration.addField(new FieldVTwo().
+ setName(conceptSemanticTypeURI));
+ }
+ }
+
//original literals on form: label, uris on form: conceptNode and conceptSource
//This will overwrite the original values in the edit configuration
@@ -254,16 +399,24 @@ public class AddAssociatedConceptsPreprocessor extends
List literalsOnForm = new ArrayList();
int index;
-
+ HashSet conceptSemanticTypeURIs = new HashSet();
// First one already included so add new ones here
for (index = 1; index <= numberTerms; index++) {
int suffix = index;
String conceptNode = conceptNodeBase + suffix;
String label = labelBase + suffix;
String source = sourceBase + suffix;
+ String conceptSemanticTypeLabel = conceptSemanticTypeLabelBase + suffix;
+ //String conceptSemanticTypeURI = conceptSemanticTypeURIBase + suffix;
+ String conceptSemanticTypeURI = this.getConceptSemanticTypeURIFieldName(conceptSemanticTypeLabel, suffix);
urisOnForm.add(conceptNode);
- urisOnForm.add(source);
+ urisOnForm.add(source);
+ if(!conceptSemanticTypeURIs.contains(conceptSemanticTypeURI)) {
+ conceptSemanticTypeURIs.add(conceptSemanticTypeURI);
+ urisOnForm.add(conceptSemanticTypeURI);
+ }
literalsOnForm.add(label);
+ literalsOnForm.add(conceptSemanticTypeLabel);
}
editConfiguration.setUrisOnform(urisOnForm);
editConfiguration.setLiteralsOnForm(literalsOnForm);
@@ -279,8 +432,7 @@ public class AddAssociatedConceptsPreprocessor extends
List n3Required = new ArrayList();
int index;
String nodeBase = "?" + conceptNodeBase;
- String labelVar = "?" + labelBase;
- String sourceVar = "?" + sourceBase;
+
String prefixStr = "@prefix core: .";
// First one already included so add new ones here
for (index = 1; index <= numberConcepts; index++) {
@@ -293,30 +445,61 @@ public class AddAssociatedConceptsPreprocessor extends
editConfiguration.setN3Required(n3Required);
}
//Add n3 optional
-
+ //TODO: Rewrite optional N3
private void addN3Optional(int numberConcepts) {
List n3Optional = new ArrayList();
int index;
String nodeBase = "?" + conceptNodeBase;
String labelVar = "?" + labelBase;
String sourceVar = "?" + sourceBase;
+ String conceptSemanticTypeLabelVar = "?" + conceptSemanticTypeLabelBase;
String prefixStr = "@prefix core: .";
// First one already included so add new ones here
+ //We already have a label var to uri var setup
for (index = 1; index <= numberConcepts; index++) {
int suffix = index;
String node = nodeBase + suffix;
String label = labelVar + suffix;
String source = sourceVar + suffix;
+ String conceptSemanticTypeLabel = conceptSemanticTypeLabelVar + suffix;
+ //get the URI appropriate for the concept semantic type label var
+ String conceptSemanticTypeURI = getConceptSemanticTypeURIVar(conceptSemanticTypeLabelBase + suffix, suffix);
+ //onceptSemanticTypeURIVar + suffix;
String n3String = prefixStr;
n3String += node + " <" + RDFS.label.getURI() + "> " + label + " .\n" +
- node + " <" + RDFS.isDefinedBy.getURI() + "> " + source + " .";
+ node + " <" + RDFS.isDefinedBy.getURI() + "> " + source + " .";
+ String n3ConceptTypeString = prefixStr;
+ n3ConceptTypeString += node + " core:hasConceptSemanticType " + conceptSemanticTypeURI + " ." +
+ conceptSemanticTypeURI + " core:isConceptSemanticTypeOf " + node + ". " +
+ conceptSemanticTypeURI + " <" + RDFS.label.getURI() + "> " + conceptSemanticTypeLabel + " .\n" +
+ conceptSemanticTypeURI + " <" + RDF.type.getURI() + "> core:ConceptSemanticType .\n" ;
+
n3Optional.add(n3String);
+ //adding separately so their resolution does not depend on each other
+ n3Optional.add(n3ConceptTypeString);
+
}
//Already have n3 required so need to add to that
editConfiguration.setN3Optional(n3Optional);
}
+ //get the URI variable that is associated with this concept type URI, which might not be
+ //the same suffix because the same label value might be repeated and we need to use the same URI
+ //representing that concept semantic type
+ private String getConceptSemanticTypeURIVar(String labelVar, int suffix) {
+ // TODO Auto-generated method stub
+ return "?" + this.getConceptSemanticTypeURIFieldName(labelVar, suffix);
+ }
+
+ private String getConceptSemanticTypeURIFieldName(String labelVar, int suffix) {
+ // TODO Auto-generated method stub
+ if(this.labelVarToUriVarHash.containsKey(labelVar)) {
+ return this.labelVarToUriVarHash.get(labelVar);
+ }
+ return this.conceptSemanticTypeURIBase + suffix;
+ }
+
private String[] convertDelimitedStringToArray(String inputString) {
String[] inputArray = new String[1];
if (inputString.indexOf(",") != -1) {
@@ -357,31 +540,122 @@ public class AddAssociatedConceptsPreprocessor extends
//This will either generate or retrieve URIs for the concept semantic type labels if they exist
//We will then update the submission to include this
private String getConceptSemanticTypeURIValues() {
- List conceptSemanticTypeURIs = new ArrayList();
String[] conceptSemanticTypeLabels = convertDelimitedStringToArray(conceptSemanticTypeLabelValues);
+ //keep track of what label values already exist and to which label variables they map
+ HashMap> labelValueToVarSuffix = new HashMap>();
int numberLabels = conceptSemanticTypeLabels.length;
+ String pseudoInputString = "";
- for(int i = 0; i < numberLabels; i++) {
- String label = conceptSemanticTypeLabels[i];
- //Make or retrieve URI for this label
+ //The rest of this code is really only relevant for multiple values, so we could break out the old code above
+ //as we don't need to set up hashes etc. if there is only one concept node being added
+ if(numberLabels == 1) {
+ String label = conceptSemanticTypeLabels[0];
String uri = getURIForSemanticTypeLabel(label);
- conceptSemanticTypeURIs.add(uri);
+ if(uri != "") {
+ String[] urisToAdd = new String[1];
+ urisToAdd[0] = uri;
+ pseudoInputString = uri;
+ log.debug("uris to add" + uri);
+ submission.addUriToForm(this.editConfiguration, "conceptSemanticTypeURI", urisToAdd);
+ }
+
}
+ //if there is more than one concept node, we may have duplicate semantic types
+ //which will need to be referred to by the same semantic type uri
+ else if (numberLabels > 1){
- //Set uris as string
- //Essentially this will allow the URI to be put in scope
- return conceptSemanticTypeURIs.toString();
+ for(int i = 0; i < numberLabels; i++) {
+ int suffix = i + 1;
+ String label = conceptSemanticTypeLabels[i];
+ String labelVar = this.conceptSemanticTypeLabelBase + suffix;
+ //if label has not already been encountered, create entry for label value
+ //and list with the label variables that would refer to it
+ //for unique values, the uri variable will be the same as label
+ Integer thisSuffix = new Integer(suffix);
+ if(!labelValueToVarSuffix.containsKey(label)) {
+ labelValueToVarSuffix.put(label, new ArrayList());
+ //Add suffix to list if not already there
+ labelValueToVarSuffix.get(label).add(thisSuffix);
+ } else {
+ //in this case, the label already exists, get the very first element in the list
+ //and use that as the uri variable
+ List suffixList = labelValueToVarSuffix.get(label);
+ if(suffixList != null && suffixList.size() > 0) {
+ thisSuffix = suffixList.get(0);
+ }
+
+ }
+
+ //Now add the uri var to the hash mapping label variable to uri variable
+ String uriVar = this.conceptSemanticTypeURIBase + thisSuffix.intValue();
+ this.labelVarToUriVarHash.put(labelVar, uriVar);
+
+
+ //Make or retrieve URI for this label
+ //TODO: Do we create this string with empty inputs ?
+ String uri = getURIForSemanticTypeLabel(label);
+ if(uri != "") {
+ //uri var shouldn't be repeated?
+ if(!this.conceptSemanticTypeURIVarToValueMap.containsKey(uriVar)) {
+ this.conceptSemanticTypeURIVarToValueMap.put(uriVar, new ArrayList());
+ this.conceptSemanticTypeURIVarToValueMap.get(uriVar).add(uri);
+ }
+ }
+ if(i != 0) {
+ pseudoInputString += ",";
+ }
+ pseudoInputString += uri;
+
+ }
+
+ //Add this string to the uris for the form
+ String[] urisToAdd = new String[1];
+ urisToAdd[0] = pseudoInputString;
+ log.debug("uris to add" + pseudoInputString);
+ submission.addUriToForm(this.editConfiguration, "conceptSemanticTypeURI", urisToAdd);
+
+ }
+ return pseudoInputString;
}
private String getURIForSemanticTypeLabel(String label) {
- //Check if system has an individual with this URI
- //
- List individualsWithLabel = this.wadf.getIndividualDao().getIndividualsByDataProperty(RDFS.label.getURI(), label);
- //We are only interested in concepts
- return null;
+ String existingURI = this.getExistingSemanticTypeURI(label);
+ if(existingURI != null) {
+ return existingURI;
+ }
+ //if we leave this as null, we should be able to generate a new resource
+ //empty string because there may be more than one value returned for labels
+ else return "";
}
+ private String getExistingSemanticTypeURI(String label) {
+ String queryStr = "SELECT ?semanticType WHERE { ?semanticType <" + RDF.type.getURI() + "> . " +
+ "?semanticType <" + RDFS.label.getURI() + "> \"" + label + "\"^^ . }";
+ QueryExecution qe = null;
+ try{
+ Query query = QueryFactory.create(queryStr);
+ qe = QueryExecutionFactory.create(query, this.ontModel);
+ ResultSet results = null;
+ results = qe.execSelect();
+
+ while( results.hasNext()){
+ QuerySolution qs = results.nextSolution();
+ if(qs.get("semanticType") != null) {
+ Resource semanticTypeURI = qs.getResource("semanticType");
+ log.debug("Semantic Type URI returned " + semanticTypeURI.getURI());
+ return semanticTypeURI.getURI();
+ }
+ }
+ }catch(Exception ex){
+ throw new Error("Error in executing query string: \n" + queryStr + '\n' + ex.getMessage());
+ }finally{
+ if( qe != null)
+ qe.close();
+ }
+ return null;
+ }
+
private Object getFirstElement(List inputList) {
if(inputList == null || inputList.size() == 0)
return null;
diff --git a/themes/wilma/templates/page-home.ftl b/themes/wilma/templates/page-home.ftl
index 5a02ac10..8547e0b8 100644
--- a/themes/wilma/templates/page-home.ftl
+++ b/themes/wilma/templates/page-home.ftl
@@ -97,6 +97,7 @@
stateString: '${i18n().map_state_string}',
statewideLocations: '${i18n().statewide_locations}',
researchersInString: '${i18n().researchers_in}',
+ inString: '${i18n().in}',
noFacultyFound: '${i18n().no_faculty_found}',
placeholderImage: '${i18n().placeholder_image}',
viewAllFaculty: '${i18n().view_all_faculty}',
@@ -108,7 +109,7 @@
if ( $('input.search-homepage').css('text-align') == "right" ) {
$('input.search-homepage').attr("value","${i18n().limit_search} \u2192");
}
-
+ <@lh.getGeoResearcherCount/>