remotes::install_github("sebastien-plutniak/spatialCatalogueViewer", upgrade = "never") # log.df <- read.csv( "../openarcheocsean-log.csv") # write.csv(rbind(log.df, "date" = format(Sys.Date())), "../openarcheocsean-log.csv", row.names = F) try(lingocsean.df <- read.csv("data/open-lingocsean-data_formated.csv", check.names=FALSE), silent=TRUE) if( ! exists("lingocsean.df")){ # data preparation ---- lingocsean.df <- read.csv("data/open-lingocsean-data.csv") # remove lines with no coordinates: ---- idx <- apply(lingocsean.df[, c("lon", "lat", "bbox.lon1", "bbox.lat1", "bbox.lon2", "bbox.lat2")], 1, function(x) sum(is.na(x))) lingocsean.df <- lingocsean.df[idx < 6, ] # resource name and link to data ---- lingocsean.df$resource.name.html <- lingocsean.df$resource.name idx <- which(lingocsean.df$data.link != "") lingocsean.df[idx,]$resource.name.html <- paste0("", lingocsean.df[idx,]$resource.name, " ") # languages ---- # use Glottolog link if available, otherwise use OLAC: lingocsean.df$lang1.link <- lingocsean.df$lang1.glottolog idx <- which(lingocsean.df$lang1.link == "") lingocsean.df[idx, ]$lang1.link <- lingocsean.df[idx, ]$lang1.olac lingocsean.df$lang1.html <- paste0(lingocsean.df$lang1, " []") lingocsean.df$lang2.html <- "" idx <- which(lingocsean.df$lang2 != "") lingocsean.df[idx,]$lang2.html <- paste0(lingocsean.df[idx,]$lang2, " []") lingocsean.df$lang3.html <- "" idx <- which(lingocsean.df$lang3 != "") lingocsean.df[idx,]$lang3.html <- paste0(lingocsean.df[idx,]$lang3, " []") # places ---- idx <- which(lingocsean.df$place != "") lingocsean.df[idx,]$place <- paste0("", lingocsean.df[idx,]$place, " ") # licences ----- # idx <- which(lingocsean.df$licence == "Paradisec") # lingocsean.df[idx, ]$licence <- "Paradisec" # popup ---- lingocsean.df$popup <- paste0("", lingocsean.df$resource.name.html, "
", # lingocsean.df$description, ".
", "Languages: ", lingocsean.df$lang1, ", ", lingocsean.df$lang2, ", ", lingocsean.df$lang3, "
", "Licence: ", lingocsean.df$licence, "
", "Access: ", lingocsean.df$access) # export ----- lingocsean.df <- lingocsean.df[ , c("lon", "lat", "bbox.lon1", "bbox.lat1", "bbox.lon2", "bbox.lat2", "resource.name", "resource.name.html", "lang1.html", "lang2.html", "lang3.html", "country", "place", "contents.type", "words.count", "collection.date.start", "collection.date.end", "access", "licence", "popup") ] colnames(lingocsean.df) <- c("lon", "lat", "bbox.lon1", "bbox.lat1", "bbox.lon2", "bbox.lat2", "resource.name", "Data name", "Language 1", "Language 2", "Language 3", "Country", "Place", "Contents", "Words count", "Collection start", "Collection end", "Access", "Licence", "popup") write.csv(lingocsean.df, "data/open-lingocsean-data_formated.csv", row.names = FALSE) } lingocsean.df$Licence <- factor(lingocsean.df$Licence) lingocsean.df$Country <- factor(lingocsean.df$Country) lingocsean.df$Access <- factor(lingocsean.df$Access) lingocsean.df$Contents <- factor(lingocsean.df$Contents) lingocsean.df$`Collection start` <- as.numeric(lingocsean.df$`Collection start`) lingocsean.df$`Collection end` <- as.numeric(lingocsean.df$`Collection end`) # css ---- css <- ' .tooltip { pointer-events: none; } .tooltip > .tooltip-inner { pointer-events: none; background-color: #FFFFFF; color: #000000; border: 1px solid black; padding: 5px; font-size: px; text-transform: none; font-weight: normal; text-align: left; max-width: 300px; content: aa; } .tooltip > .arrow::before { border-right-color: #73AD21; } ' js <- " $(function () { $('[data-toggle=tooltip]').tooltip() }) " # texts ---- text.title <- "

Open-lingOcsean

" ## left---- text.left <- "

Presentation

Open-lingOcsean is a catalogue of language data collected in the course of the OCSEAN. Oceanic and Southeast Asian Navigators project.

The primary goal of OCSEAN’s linguistic work was to develop a dense and uniform language resource to support both phylogenetic and contact-based analyses in Island Southeast Asia and Oceania, particularly when combined with high‑resolution genetic data. To achieve this, the project created a comprehensive wordlist of 1,128 concepts, including many culturally significant terms specific to the region. This list surpasses standard linguistic inventories and enables deeper cross‑disciplinary insights. It covers semantic domains expected to contain both historically stable, potentially inherited vocabulary (e.g., natural and physical environments) and domains more susceptible to borrowing, particularly those related to social organization.

Open-lingOcsean's code source and data are available on github and archived on Zenodo.

" ## bottom ---- text.bottom <- "Click on the [] symbol to access Glottolog documentation." ## credits ---- credits.tab <- "

Credits

OCSEAN's linguistic work was carried out by local researchers, cultural workers, and multilingual community members, who served both as data collectors and as informants. Foundational training in language documentation was provided by OCSEAN EU members during the Uppsala Summer School in 2022 and through workshops held in Indonesia and the Philippines in 2023. These activities strengthened community ownership and built local capacity. In many cases, the learning process itself contributed to data generation. Data collection occurred during the 2022-2023 training events and through fieldwork in the Philippines and Indonesia in 2023 and 2024, resulting in a sustainable network of local expertise and collaboration extending beyond the OCSEAN funding cycle.

Beyond scientific research, the OCSEAN dataset functions as a living community archive that supports language preservation and revitalization. When communities expressed interest, additional materials were documented, including stories, ethnobotanical knowledge, and recordings of rituals. These efforts also led to the development of educational resources such as storybooks, picture dictionaries, and orthography guides, helping cultivate respect for local languages and cultural heritage. Many of these secondary materials will also assist future linguistic research.

Citation

To cite Open-lingOcsean, use:

Terms of Use

The use of the Open-lingOcsean catalogue denotes agreement with the following terms:

If you have any questions or comments with respect to Open-lingOcsean, or if you are unsure whether your intended use is in line with these Terms of Use, or if you seek permission for a use that does not fall within these Terms of Use, please contact us.

FAIR and CARE

Forthcoming

Support

Open-lingOcsean is

supported by:      

developped at:      

hosted by:




This project has received funding from the European Union’s Horizon 2020 research and innovation programme under the Marie Skłodowska-Curie grant agreement No 873207.

" # exec spatialCatalogueViewer---- spatialCatalogueViewer::spatialCatalogueViewer(data = lingocsean.df, text.title = text.title, text.left = text.left, text.bottom = text.bottom, map.provider = "Esri.WorldPhysical", map.set.lon = 122, map.set.lat = 0, map.legend.variable = "Access", map.legend.labels = c("open", "closed", "restricted"), map.legend.colors = c("darkgreen", "purple", "yellow"), map.height = 600, map.area.fill.color = "white", map.area.fill.opacity = .1, map.show.areas = T, map.min.zoom = 4, table.hide.columns = c("resource.name"), table.filter = "top", table.pageLength = 15, data.download.button = TRUE, tabs.contents = list("Credits" = credits.tab), css = css, js = js, theme = "cerulean")