Keskustelu:Ympäristöministeriön tulevaisuuskatsaus
Opasnet Suomista
Versio hetkellä 22. heinäkuuta 2014 kello 17.27 – tehnyt Teemu R (keskustelu | muokkaukset) (→Kehittyneemmät hakukoneet)
Sisällys
Tägikone
{{#opasnet_base_link:Op_fi4530}}
Versiot
| Obs | Versio | Sivu | Ident | Result |
|---|---|---|---|---|
| 1 | 1 | Ympäristöministeriön tulevaisuuskatsaus | Op_fi4443 | 24666 |
Jakeet
Kaikkien kenttien arvot saa erotella pilkuilla tässä haussa
library(OpasnetUtils)
library(plyr)
objects.latest("Op_fi4325", "apufunktiot")
# Erottelu pilkuilla ja välilyöntien poisto
if (!is.null(sivu)) sivu <- gsub("^\\s*|\\s*$", "", strsplit(sivu, ",")[[1]])
if (tolower(jaeid == "hae kaikki")) {
jaeid <- NULL
} else {
jaeid <- gsub("^\\s*|\\s*$", "", strsplit(jaeid, ",")[[1]])
}
version <- gsub("^\\s*|\\s*$", "", strsplit(version, ",")[[1]])
a <- tolower(version) == "nykyinen"
if (any(a)) {
version <- version[!a]
version <- c(version, get_current_version(ident))
}
version <- as.numeric(version)
out <- jaehakukone(ident, sivu = sivu, versio = version, jae = jaeid)
if (nrow(out) > 0) {
oprint(out, include.rownames = FALSE)
} else {
cat("Jakeita ei löytynyt!\n")
}
|
library(OpasnetUtils)
jaeid <- strsplit(jaeid, ",", fixed = TRUE)[[1]]
jaeid <- gsub(" ", "", jaeid)
if (sum(nchar(jaeid)) == 0) stop("Anna jakeen ID")
if (tolower(version) == "nykyinen") {
objects.latest("Op_fi4325", "apufunktiot")
version <- get_current_version(ident)
} else {
version <- as.numeric(version)
}
out <- data.frame(
Versio = version,
Sivu = sivu,
Aika = date(),
Käyttäjä = wiki_username,
Syy = syy,
Result = as.character(jaeid)
)
opbase.upload(
out,
who = wiki_username,
name = pagename,
subset = "Jakeenpoistot",
act_type = "append",
language = "fin"
)
|
library(OpasnetUtils)
objects.latest("Op_fi4325", "apufunktiot")
if (tolower(version) == "nykyinen") {
version <- get_current_version(ident)
} else {
version <- as.numeric(version)
}
out <- data.frame(
Versio = version,
Sivu = sivu,
Aika = date(),
Käyttäjä = wiki_username,
JaeID = NA,
Result = sisalto
)
ident.subset <- paste(ident, "Jakeenlisaykset", sep = ".")
filter <- list()
filter$Versio <- version
filter$Sivu <- sivu
upload_with_autoid(
out,
ident.subset,
id_name = "JaeID",
pagename = pagename,
prefix = "L",
filter = filter
)
|
Jakeiden päivitys
Päivitä Versiot-tauluun sivut ja ikilinkin IDt ja aja alla oleva koodi
library(OpasnetUtils)
objects.latest("Op_fi4325", "apufunktiot")
versiot <- get_meta_data(ident)
#version <- max(as.numeric(as.character(versiot$Versio)))
#names <- as.character(versiot$Sivu[versiot$Versio == version])
url <- gsub(" ", "_", versiot$Sivu)
old_id <- versiot$Result
old_id <- paste("&oldid=", old_id, sep = "")
out <- data.frame()
for (i in 1:length(url)) {
temp <- parse_page(url[i], old_id[i])
temp$Sivu <- versiot$Sivu[i]
temp$Versio <- versiot$Versio[i]
out <- rbind(out, temp)
}
#out$Versio <- version
out <- out[c("Versio", "Sivu", "Aihe", "JaeID", "Result")]
opbase.upload(
out,
name = pagename,
who = wiki_username,
subset = "Jakeet"
)
|
Avainsanat
library(OpasnetUtils)
library(plyr)
objects.latest("Op_fi4325", "apufunktiot")
# Erottelu pilkuilla ja välilyöntien poisto
if (!is.null(sivu)) sivu <- gsub("^\\s*|\\s*$", "", strsplit(sivu, ",")[[1]])
if (tolower(jaeid == "hae kaikki")) {
jaeid <- NULL
} else {
jaeid <- gsub("^\\s*|\\s*$", "", strsplit(jaeid, ",")[[1]])
}
version <- gsub("^\\s*|\\s*$", "", strsplit(version, ",")[[1]])
a <- tolower(version) == "nykyinen"
if (any(a)) {
version <- version[!a]
version <- c(version, get_current_version(ident))
}
version <- as.numeric(version)
filter <- list()
filter$Sivu <- sivu
filter$Versio <- version
filter$JaeID <- jaeid
out <- try_dl_rm(
paste(ident, "Avainsanat", sep = "."),
filter = filter,
rm_id = paste(ident, "Avainsananpoistot", sep = "."),
rm_ind = "AvainsanaID"
)
if (nrow(out) > 0) {
oprint(out, include.rownames = FALSE)
} else {
cat("Avainsanoja ei löytynyt!\n")
}
|
avainsanat <- strsplit(avainsanat, ",", fixed = TRUE)[[1]]
avainsanat <- gsub(" ", "", avainsanat)
avainsanat <- avainsanat[nchar(avainsanat) > 0]
avainsanat <- c(yl_avainsanat, avainsanat)
if (length(avainsanat) == 0) stop("Yhtään avainsanaa ei annettu!")
library(OpasnetUtils)
objects.latest("Op_fi4325", "apufunktiot")
if (tolower(version) == "nykyinen") {
version <- get_current_version(ident)
} else {
version <- as.numeric(version)
}
dat <- data.frame(
AvainsanaID = NA,
Versio = version,
Aika = date(),
Käyttäjä = wiki_username,
Sivu = sivu,
JaeID = as.character(jae),
Result = avainsanat
)
ident.subset <- paste(ident, "Avainsanat", sep = ".")
filter <- list()
filter$Versio <- version
upload_with_autoid(
dat,
ident.subset,
id_name = "AvainsanaID",
pagename = pagename,
filter = filter
)
cat("Avainsanojen lisääminen onnistui.\n")
|
library(OpasnetUtils)
avid <- strsplit(avid, ",", fixed = TRUE)[[1]]
avid <- gsub(" ", "", avid)
if (tolower(version) == "nykyinen") {
objects.latest("Op_fi4325", "apufunktiot")
version <- get_current_version(ident)
} else {
version <- as.numeric(version)
}
dat <- data.frame(
Versio = version,
Aika = date(),
Käyttäjä = wiki_username,
Syy = syy,
Result = avid
)
opbase.upload(
dat,
ident = ident,
name = pagename,
subset = "Avainsananpoistot",
act_type = "append",
language = "fin",
who = wiki_username
)
cat("Avainsana poistettiin onnistuneesti.\n")
|
Relaatiot
library(OpasnetUtils)
library(plyr)
objects.latest("Op_fi4325", "apufunktiot")
# Erottelu pilkuilla ja välilyöntien poisto
if (!is.null(sivu)) sivu <- gsub("^\\s*|\\s*$", "", strsplit(sivu, ",")[[1]])
if (tolower(jaeid == "hae kaikki")) {
jaeid <- NULL
} else {
jaeid <- gsub("^\\s*|\\s*$", "", strsplit(jaeid, ",")[[1]])
}
version <- gsub("^\\s*|\\s*$", "", strsplit(version, ",")[[1]])
a <- tolower(version) == "nykyinen"
if (any(a)) {
version <- version[!a]
version <- c(version, get_current_version(ident))
}
version <- as.numeric(version)
filter <- list()
filter$Sivu1 <- sivu
filter$Versio <- version
filter$JaeID1 <- jaeid
rel1 <- try_dl_rm(
paste(ident, "Relaatiot", sep = "."),
filter = filter,
rm_id = paste(ident, "Relaationpoistot", sep = "."),
rm_ind = "RelaatioID"
)
if (is.null(jaeid)) {
rel2 <- data.frame()
} else {
filter$JaeID1 <- NULL
filter$Sivu1 <- NULL
filter$JaeID2 <- jaeid
filter$Sivu2 <- sivu
rel2 <- try_dl_rm(
paste(ident, "Relaatiot", sep = "."),
filter = filter,
rm_id = paste(ident, "Relaationpoistot", sep = "."),
rm_ind = "RelaatioID"
)
}
out <- rbind(rel1, rel2)
if (nrow(out) > 0) {
oprint(
out,
include.rownames = FALSE,
caption = "Relaatiot",
caption.placement = "top"
)
} else {
cat("Relaatioita ei löytynyt!\n")
}
|
relaatio <- ifelse(lisarelaatio == '', relaatio, lisarelaatio)
if (nchar(gsub(" ", "", relaatio)) == 0) stop("Relaatiota ei annettu!")
library(OpasnetUtils)
objects.latest("Op_fi4325", "apufunktiot")
jaeid1 <- strsplit(jaeid1, ",", fixed = TRUE)[[1]]
jaeid1 <- gsub(" ", "", jaeid1)
jaeid2 <- strsplit(jaeid2, ",", fixed = TRUE)[[1]]
jaeid2 <- gsub(" ", "", jaeid2)
if (tolower(version) == "nykyinen") {
version <- get_current_version(ident)
} else {
version <- as.numeric(version)
}
if(sivu2 == "Sama") sivu2 <- sivu1
ident.subset <- paste(ident, "Relaatiot", sep = ".")
filter <- list()
filter$Versio <- version
dat <- data.frame(
RelaatioID = NA,
Versio = version,
Aika = date(),
Käyttäjä = wiki_username,
Sivu1 = sivu1,
JaeID1 = jaeid1,
Sivu2 = sivu2,
JaeID2 = jaeid2,
Result = relaatio
)
upload_with_autoid(
dat,
ident.subset,
id_name = "RelaatioID",
pagename = pagename,
filter = filter
)
cat("Relaation lisääminen onnistui.\n")
|
if (nchar(gsub(" ", "", sisallytys)) == 0) stop("Sisällytyksen tyyppiä ei annettu!")
library(OpasnetUtils)
objects.latest("Op_fi4325", "apufunktiot")
jaeid1 <- strsplit(jaeid1, ",", fixed = TRUE)[[1]]
jaeid1 <- gsub(" ", "", jaeid1)
jaeid2 <- strsplit(jaeid2, ",", fixed = TRUE)[[1]]
jaeid2 <- gsub(" ", "", jaeid2)
if (tolower(version) == "edellinen") {
version <- get_current_version(ident) - 1
} else {
version <- as.numeric(version)
}
if(sivu2 == "Sama") sivu2 <- sivu1
ident.subset <- paste(ident, "Relaatiot", sep = ".")
filter <- list()
filter$Versio <- version
dat <- data.frame(
RelaatioID = NA,
Versio = version,
Aika = date(),
Käyttäjä = wiki_username,
Sivu1 = sivu1,
JaeID1 = jaeid1,
Sivu2 = sivu2,
JaeID2 = jaeid2,
Result = sisallytys
)
upload_with_autoid(
dat,
ident.subset,
id_name = "RelaatioID",
pagename = pagename,
filter = filter
)
cat("Sisällytyksen lisääminen onnistui.\n")
|
library(OpasnetUtils)
relid <- strsplit(relid, ",", fixed = TRUE)[[1]]
relid <- gsub(" ", "", relid)
if (tolower(version) == "nykyinen") {
objects.latest("Op_fi4325", "apufunktiot")
version <- get_current_version(ident)
} else {
version <- as.numeric(version)
}
dat <- data.frame(
Versio = version,
Aika = date(),
Käyttäjä = wiki_username,
Syy = syy,
Result = relid
)
opbase.upload(
dat,
ident = ident,
name = pagename,
subset = "Relaationpoistot",
act_type = "append",
language = "fin",
who = wiki_username
)
cat("Relaatio poistettiin onnistuneesti.\n")
|
Kehittyneemmät hakukoneet
Hae jakeita ja niihin liittyviä avainsanoja
library(OpasnetUtils)
library(plyr)
objects.latest("Op_fi4325", "apufunktiot")
# Erottelu pilkuilla ja välilyöntien poisto
if (!is.null(sivu)) sivu <- gsub("^\\s*|\\s*$", "", strsplit(sivu, ",")[[1]])
if (tolower(jaeid == "hae kaikki")) {
jaeid <- NULL
} else {
jaeid <- gsub("^\\s*|\\s*$", "", strsplit(jaeid, ",")[[1]])
}
version <- gsub("^\\s*|\\s*$", "", strsplit(version, ",")[[1]])
a <- tolower(version) == "nykyinen"
if (any(a)) {
version <- version[!a]
version <- c(version, get_current_version(ident))
}
version <- as.numeric(version)
out <- jaehakukone(ident, sivu = sivu, versio = version, jae = jaeid)
if (nrow(out) == 0) {
stop("Jakeita ei löytynyt!")
}
filter <- list()
filter$Sivu <- sivu
filter$Versio <- version
filter$JaeID <- jaeid
tags <- try_dl_rm(
paste(ident, "Avainsanat", sep = "."),
filter = filter,
rm_id = paste(ident, "Avainsananpoistot", sep = "."),
rm_ind = "AvainsanaID"
)
if (nrow(tags) == 0) {
cat("Avainsanoja ei löytynyt!\n")
} else {
colnames(tags)[colnames(tags) == "Result"] <- "Avainsana"
out <- join(
tags[c("Versio", "Sivu", "JaeID", "AvainsanaID", "Avainsana")],
out[c("Versio", "Sivu", "JaeID", "Result")]
)
# Jos annettiin vain yksi versio ja/tai sivu niin niitä ei tarvitse printata
filter_ind <- NULL
if (length(version) != 1) filter_ind <- c(filter_ind, "Versio")
if (length(sivu) != 1) filter_ind <- c(filter_ind, "Sivu")
filter_ind <- c(filter_ind, "JaeID")
oprint(out[c(filter_ind, "Result", "AvainsanaID", "Avainsana")], include.rownames = FALSE)
}
|
Hae relaatioita ja niihin kuuluvia jakeita
# Eri sisältymistyypit pitää määritellä niin että ne voidaan käsitellä erillään muista relaatioista
sis_opt <- c(
'ehdotus huomioitu ja liittyvää painotusta muutettu',
'ehdotus huomioitu ja uusi kohta lisätty',
'ehdotus ei ole antanut aihetta muutoksiin',
'ehdotus ei ole antanut aihetta muutoksiin vaan sisältyy olennaisesti jo kirjattuun'
)
#liit_opt <- c(
# 'tukee tai on linjassa',
# 'vastustaa tai on ristiriidassa',
# 'on neutraali suhteessa',
# 'on uusi linjaus tai painotus'
#)
library(OpasnetUtils)
library(plyr)
objects.latest("Op_fi4325", "apufunktiot")
# Erottelu pilkuilla ja välilyöntien poisto
if (!is.null(sivu)) sivu <- gsub("^\\s*|\\s*$", "", strsplit(sivu, ",")[[1]])
if (tolower(jaeid == "hae kaikki")) {
jaeid <- NULL
} else {
jaeid <- gsub("^\\s*|\\s*$", "", strsplit(jaeid, ",")[[1]])
}
version <- gsub("^\\s*|\\s*$", "", strsplit(version, ",")[[1]])
a <- tolower(version) == "nykyinen"
if (any(a)) {
version <- version[!a]
version <- c(version, get_current_version(ident))
}
version <- as.numeric(version)
# Add previous and next versions to check for inclusion from previous and into next
original_version <- version
if (!(1 %in% version)) {
prev <- TRUE
version <- c(min(version, na.rm = TRUE) - 1, version)
}
version <- c(version, max(version, na.rm = TRUE) + 1)
filter <- list()
filter$Sivu1 <- sivu
filter$Versio <- version
filter$JaeID1 <- jaeid
rel1 <- try_dl_rm(
paste(ident, "Relaatiot", sep = "."),
filter = filter,
rm_id = paste(ident, "Relaationpoistot", sep = "."),
rm_ind = "RelaatioID"
)
if (is.null(jaeid)) {
rel2 <- data.frame()
} else {
filter$JaeID1 <- NULL
filter$Sivu1 <- NULL
filter$JaeID2 <- jaeid
filter$Sivu2 <- sivu
rel2 <- try_dl_rm(
paste(ident, "Relaatiot", sep = "."),
filter = filter,
rm_id = paste(ident, "Relaationpoistot", sep = "."),
rm_ind = "RelaatioID"
)
}
rel <- rbind(rel1, rel2)
if (!any(original_version %in% rel$Versio)) stop("Annetuilla versiolla ei löytynyt relaatioita.")
if (!is.null(liit)|!is.null(sis)) rel <- rel[rel$Result == c(liit,sis), ]
if (nrow(rel) == 0) {
cat("Jakeelle ei löytynyt kysyttyjä relaatioita tietokannassa.\n")
} else {
jakeet <- jaehakukone(
ident,
sivu = unique(c(
as.character(rel$Sivu1),
as.character(rel$Sivu2)
)),
versio = version,
jae = unique(c(
as.character(rel$JaeID1),
as.character(rel$JaeID2)
))
)
if (nrow(jakeet) == 0) stop("Relaatioissa listattuja jakeita ei löytynyt!")
# Relaatiot
if (nrow(rel[!(rel$Relaatio %in% sis_opt),]) > 0) {
jakeet <- jakeet[c("Versio", "Sivu", "JaeID", "Result")]
colnames(jakeet)[colnames(jakeet) == "JaeID"] <- "JaeID1"
colnames(jakeet)[colnames(jakeet) == "Sivu"] <- "Sivu1"
colnames(jakeet)[colnames(jakeet) == "Result"] <- "Jae1"
rel <- rel[c("RelaatioID", "Versio", "Sivu1", "JaeID1", "Result", "Sivu2", "JaeID2")]
colnames(rel)[colnames(rel) == "Result"] <- "Relaatio"
out <- join(
rel[(!(rel$Relaatio %in% sis_opt)) & rel$Versio %in% original_version,],
jakeet,
match = "first" # versio - sivu - jaeid -> yksi yhteen
)
colnames(jakeet)[colnames(jakeet) == "JaeID1"] <- "JaeID2"
colnames(jakeet)[colnames(jakeet) == "Sivu1"] <- "Sivu2"
colnames(jakeet)[colnames(jakeet) == "Jae1"] <- "Jae2"
out <- join(out, jakeet, match = "first")
oprint(
out[c("Versio", "RelaatioID", "Sivu1", "JaeID1", "Jae1", "Relaatio", "Sivu2", "JaeID2", "Jae2")],
include.rownames = FALSE,
caption = "Relaatiot",
caption.placement = "top"
)
} else {
cat("Ei relaatioita!\n")
}
# Sisällytykset
if (nrow(rel[(rel$Relaatio %in% sis_opt),]) > 0) {
colnames(jakeet)[colnames(jakeet) %in% c("JaeID","JaeID2")] <- "JaeID1"
colnames(jakeet)[colnames(jakeet) %in% c("Sivu", "Sivu2")] <- "Sivu1"
colnames(jakeet)[colnames(jakeet) %in% c("Result", "Jae2")] <- "Jae1"
colnames(rel)[colnames(rel) == "Relaatio"] <- "Sisällytys"
out <- join(
rel[rel$Sisällytys %in% sis_opt & rel$Versio %in% version[-length(version)],],
jakeet,
match = "first" # versio - sivu - jaeid -> yksi yhteen
)
colnames(jakeet)[colnames(jakeet) == "JaeID1"] <- "JaeID2"
colnames(jakeet)[colnames(jakeet) == "Sivu1"] <- "Sivu2"
colnames(jakeet)[colnames(jakeet) == "Jae1"] <- "Jae2"
jakeet$Versio <- as.numeric(as.character(jakeet$Versio)) - 1
out <- join(out, jakeet, match = "first")
oprint(
out[c("Versio", "RelaatioID", "Sivu1", "JaeID1", "Jae1", "Sisällytys", "Sivu2", "JaeID2", "Jae2")],
include.rownames = FALSE,
caption = "Sisällytys (uudempaan versioon)",
caption.placement = "top"
)
} else {
cat("Ei sisällytyksiä!\n")
}
}
|