From 1abd81d7206538d91f8f810543d90823a67d7538 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Mon, 12 Jun 2017 16:05:10 -0500 Subject: [PATCH 001/318] test --- test | 1 + 1 file changed, 1 insertion(+) create mode 100644 test diff --git a/test b/test new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/test @@ -0,0 +1 @@ + From b3f945682ce2b121576354c31f3acb49ca11f379 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Mon, 12 Jun 2017 16:05:45 -0500 Subject: [PATCH 002/318] Delete test --- test | 1 - 1 file changed, 1 deletion(-) delete mode 100644 test diff --git a/test b/test deleted file mode 100644 index 8b13789..0000000 --- a/test +++ /dev/null @@ -1 +0,0 @@ - From 4450066d0e5a5e4e15455f5ced28430a0ce2287b Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 15 Jun 2017 14:48:27 -0500 Subject: [PATCH 003/318] Create insert_breaks.R --- R/insert_breaks.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 4b445ff..9f9e8db 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -340,7 +340,7 @@ help_insert <- function(x, #' @keywords internal find_title <- function(level) { choices_input <- paste("level", 1:3) - class_choices <- paste("class", 1:10) + class_choices <- paste("test", 1:10) ui <- miniPage( miniContentPanel( fillCol( From 38c3c07860f312732aa3735b0b073a04bd5cb3c4 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 15 Jun 2017 14:54:31 -0500 Subject: [PATCH 004/318] Create insert_breaks.R test changing number and content of classes and levels in menu --- R/insert_breaks.R | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 9f9e8db..5826fae 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -339,8 +339,10 @@ help_insert <- function(x, #' @importFrom stats setNames #' @keywords internal find_title <- function(level) { - choices_input <- paste("level", 1:3) - class_choices <- paste("test", 1:10) + #choices_input <- paste("level", 1:3) + #class_choices <- paste("class", 1:10) + choices_input <- paste("Class","Association") + class_choices <- paste("Process","InputPort","OutputPort","DataLink","SeqCtrlLink","Workflow","User") ui <- miniPage( miniContentPanel( fillCol( From b16f2616b9ae03ef6843e0228c0661d6866c3540 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 15 Jun 2017 14:56:06 -0500 Subject: [PATCH 005/318] Create insert_breaks.R --- R/insert_breaks.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 5826fae..15e2e80 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -341,8 +341,8 @@ help_insert <- function(x, find_title <- function(level) { #choices_input <- paste("level", 1:3) #class_choices <- paste("class", 1:10) - choices_input <- paste("Class","Association") - class_choices <- paste("Process","InputPort","OutputPort","DataLink","SeqCtrlLink","Workflow","User") + choices_input <- paste(c("Class","Association")) + class_choices <- paste(c("Process","InputPort","OutputPort","DataLink","SeqCtrlLink","Workflow","User")) ui <- miniPage( miniContentPanel( fillCol( From 6ceab47d8b17c64bbd5d7a5b60a7be3ea1926690 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 16 Jun 2017 00:58:46 -0500 Subject: [PATCH 006/318] Create insert_breaks.R use ProvONE Aspect --- R/insert_breaks.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 15e2e80..e63a8a0 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -341,7 +341,7 @@ help_insert <- function(x, find_title <- function(level) { #choices_input <- paste("level", 1:3) #class_choices <- paste("class", 1:10) - choices_input <- paste(c("Class","Association")) + choices_input <- paste(c("Workflow","Trace","Data Structure")) class_choices <- paste(c("Process","InputPort","OutputPort","DataLink","SeqCtrlLink","Workflow","User")) ui <- miniPage( miniContentPanel( From 303bb7bbbab323fae14c4340ba38728db1b85ecc Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 16 Jun 2017 02:11:22 -0500 Subject: [PATCH 007/318] Update insert_breaks.R Use default levels --- R/insert_breaks.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index e63a8a0..50dd92d 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -339,9 +339,9 @@ help_insert <- function(x, #' @importFrom stats setNames #' @keywords internal find_title <- function(level) { - #choices_input <- paste("level", 1:3) + choices_input <- paste("level", 1:3) #class_choices <- paste("class", 1:10) - choices_input <- paste(c("Workflow","Trace","Data Structure")) + #choices_input <- paste(c("Workflow","Trace","Data Structure")) class_choices <- paste(c("Process","InputPort","OutputPort","DataLink","SeqCtrlLink","Workflow","User")) ui <- miniPage( miniContentPanel( From 043143b76ef0bead1d90ca2fbbf08e0dfb185fde Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 16 Jun 2017 02:53:17 -0500 Subject: [PATCH 008/318] Update insert_breaks.R --- R/insert_breaks.R | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 50dd92d..e01032f 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -342,7 +342,10 @@ find_title <- function(level) { choices_input <- paste("level", 1:3) #class_choices <- paste("class", 1:10) #choices_input <- paste(c("Workflow","Trace","Data Structure")) - class_choices <- paste(c("Process","InputPort","OutputPort","DataLink","SeqCtrlLink","Workflow","User")) + class_choices <- paste(c("Process","InputPort","OutputPort","DataLink","SeqCtrlLink","Workflow","User","hasSubProcess","sourcePToCL", + "CLtoDestP","hasInPort","hasOutPort","hasDefaultParam","DLToInPort","outPortToDL","inPortToDL","DLToOutPort", + "wasAttributedTo","wasDerivedFrom","ProcessExec","dataOnLink","used","wasGeneratedBy","wasAssociatedWith", + "wasInformedBy","isPartOf","Data","Collection","wasDerivedFrom","hadMember")) ui <- miniPage( miniContentPanel( fillCol( From 3b92a0e2a0faf172c4431a6d74cd532d3e8c0e9f Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 16 Jun 2017 15:44:43 -0500 Subject: [PATCH 009/318] Update insert_breaks.R --- R/insert_breaks.R | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index e01032f..65568e8 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -156,9 +156,12 @@ insert_break <- function(level, } ### .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ### set parameter depending on level - start <- paste0(rep("#", level), collapse = "") - break_char = give_breakchar(level) - sep = paste(rep(" ", 4 - level), collapse = "") + #start <- paste0(rep("#", level), collapse = "") + #break_char = give_breakchar(level) + #sep = paste(rep(" ", 4 - level), collapse = "") + start <- paste0(rep("#", 3), collapse = "") + break_char = give_breakchar(3) + sep = paste(rep(" ", 4 - 3), collapse = "") From 0d47b26264ab64b4fc7d19ddf57a86da052b2df1 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 16 Jun 2017 15:47:01 -0500 Subject: [PATCH 010/318] Update insert_breaks.R --- R/insert_breaks.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 65568e8..3cd0b78 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -342,9 +342,9 @@ help_insert <- function(x, #' @importFrom stats setNames #' @keywords internal find_title <- function(level) { - choices_input <- paste("level", 1:3) + #choices_input <- paste("level", 1:3) #class_choices <- paste("class", 1:10) - #choices_input <- paste(c("Workflow","Trace","Data Structure")) + choices_input <- paste(c("Workflow","Trace","Data Structure")) class_choices <- paste(c("Process","InputPort","OutputPort","DataLink","SeqCtrlLink","Workflow","User","hasSubProcess","sourcePToCL", "CLtoDestP","hasInPort","hasOutPort","hasDefaultParam","DLToInPort","outPortToDL","inPortToDL","DLToOutPort", "wasAttributedTo","wasDerivedFrom","ProcessExec","dataOnLink","used","wasGeneratedBy","wasAssociatedWith", From 11f7323d0f1b468f61976db78d234efbe8c10341 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Sat, 17 Jun 2017 19:13:51 -0500 Subject: [PATCH 011/318] Update insert_breaks.R --- R/insert_breaks.R | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 3cd0b78..2caa1a5 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -342,13 +342,16 @@ help_insert <- function(x, #' @importFrom stats setNames #' @keywords internal find_title <- function(level) { + #XJ Original codes: #choices_input <- paste("level", 1:3) #class_choices <- paste("class", 1:10) choices_input <- paste(c("Workflow","Trace","Data Structure")) - class_choices <- paste(c("Process","InputPort","OutputPort","DataLink","SeqCtrlLink","Workflow","User","hasSubProcess","sourcePToCL", + #class_choices <- paste(c("Process","InputPort","OutputPort","DataLink","SeqCtrlLink","Workflow","User","hasSubProcess","sourcePToCL", "CLtoDestP","hasInPort","hasOutPort","hasDefaultParam","DLToInPort","outPortToDL","inPortToDL","DLToOutPort", "wasAttributedTo","wasDerivedFrom","ProcessExec","dataOnLink","used","wasGeneratedBy","wasAssociatedWith", "wasInformedBy","isPartOf","Data","Collection","wasDerivedFrom","hadMember")) + class_choices <- paste(c("provone:Process","provone:InputPort","provone:OutputPort","provone:DataLink","provone:SeqCtrlLink",\ + "provone:Workflow","provone:User","provone:ProcessExec","provone:Data","provone:Collection","provone:Visualization")) ui <- miniPage( miniContentPanel( fillCol( From 233c55c3f03186d8a3596322e84fe4fb3520bf82 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Sat, 17 Jun 2017 19:16:16 -0500 Subject: [PATCH 012/318] Update insert_breaks.R --- R/insert_breaks.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 2caa1a5..b2b98da 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -350,7 +350,7 @@ find_title <- function(level) { "CLtoDestP","hasInPort","hasOutPort","hasDefaultParam","DLToInPort","outPortToDL","inPortToDL","DLToOutPort", "wasAttributedTo","wasDerivedFrom","ProcessExec","dataOnLink","used","wasGeneratedBy","wasAssociatedWith", "wasInformedBy","isPartOf","Data","Collection","wasDerivedFrom","hadMember")) - class_choices <- paste(c("provone:Process","provone:InputPort","provone:OutputPort","provone:DataLink","provone:SeqCtrlLink",\ + class_choices <- paste(c("provone:Process","provone:InputPort","provone:OutputPort","provone:DataLink","provone:SeqCtrlLink", "provone:Workflow","provone:User","provone:ProcessExec","provone:Data","provone:Collection","provone:Visualization")) ui <- miniPage( miniContentPanel( From ad3d141cc2df174d7a81e2414c176b9dbabdcda8 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Sat, 17 Jun 2017 19:18:48 -0500 Subject: [PATCH 013/318] Update insert_breaks.R --- R/insert_breaks.R | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index b2b98da..4e6a234 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -347,9 +347,9 @@ find_title <- function(level) { #class_choices <- paste("class", 1:10) choices_input <- paste(c("Workflow","Trace","Data Structure")) #class_choices <- paste(c("Process","InputPort","OutputPort","DataLink","SeqCtrlLink","Workflow","User","hasSubProcess","sourcePToCL", - "CLtoDestP","hasInPort","hasOutPort","hasDefaultParam","DLToInPort","outPortToDL","inPortToDL","DLToOutPort", - "wasAttributedTo","wasDerivedFrom","ProcessExec","dataOnLink","used","wasGeneratedBy","wasAssociatedWith", - "wasInformedBy","isPartOf","Data","Collection","wasDerivedFrom","hadMember")) + # "CLtoDestP","hasInPort","hasOutPort","hasDefaultParam","DLToInPort","outPortToDL","inPortToDL","DLToOutPort", + # "wasAttributedTo","wasDerivedFrom","ProcessExec","dataOnLink","used","wasGeneratedBy","wasAssociatedWith", + # "wasInformedBy","isPartOf","Data","Collection","wasDerivedFrom","hadMember")) class_choices <- paste(c("provone:Process","provone:InputPort","provone:OutputPort","provone:DataLink","provone:SeqCtrlLink", "provone:Workflow","provone:User","provone:ProcessExec","provone:Data","provone:Collection","provone:Visualization")) ui <- miniPage( From e308c53177747784ec49765265d41ccf3b6940e2 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 22 Jun 2017 01:30:27 -0500 Subject: [PATCH 014/318] Create sum_rdf --- sum_rdf | 382 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 382 insertions(+) create mode 100644 sum_rdf diff --git a/sum_rdf b/sum_rdf new file mode 100644 index 0000000..8a5dcd1 --- /dev/null +++ b/sum_rdf @@ -0,0 +1,382 @@ +#' Summarize the code structure +#' +#' Create a summary of one or multiple code files based on the section +#' separators and their titles. +#' @param path_in Either a path to a directory or to a single file. If it is +#' a directory path, all files in that directory will be summarised. If it +#' is a single file path, only the resepective file will be summarised. +#' The default value uses the RStudio API to produce a summary of content from +#' the source editor. This requires that the file is saved before +#' \code{sum_str} is called. +#' @param file_in_extension If \code{file_in} is \code{NULL}, all files with the +#' \code{file_in_extension} are considered, defaults to ".R". +#' @param dir_out The directory to print the output to. "" implies the console. +#' @param file_out A connection or character string naming the file to print to. +#' If set to \code{NULL}, the name will be \code{paste0("code-summary_", file_in)}. +#' If \code{dir_out} is set to "", \code{file_out} can be set to +#' "object" and the output of the function will be returned as an +#' object instead of just printed to the console with \code{cat}. This is +#' useful if output should be assigned to an object. If not set to "object", +#' \code{cat} will be used. +#' @param file_out_extension A file extension for the file to be created. +#' @param rm_rh_hashes Boolean value indicating whether or not to remove +#' righthand hashes in section titles for the summary +#' (see section Removing spaces and hashes). +#' @param rm_rh_spaces Boolean value indicating whether or not to remove +#' righthand spaces in section titles for the summary +#' (see section Removing spaces and hashes). +#' @param rm_break_anchors Boolean value indicating whether or not the anchors +#' inserted in code separators should be removed for the summary. +#' @param width The character width of the output. If NULL, it is set to the +#' length of the longest separator title. +#' @param line_nr A boolean value that indicates whether the line numbers should +#' be printed along with the structure summary. +#' @param granularity Indicates the lowest level of granularity that should be +#' included in the summary. +#' @param last_sep A boolean value indicating whether or not the separating +#' lines of the highest granularity should be printed. +#' @param title A boolean value indicating whether the reported summary should +#' contain a title or not. +#' @param header A boolean value indicating whether a column header should +#' indicate the name of the columns (line, level, section). +#' @param ... futher arguments to be passed from and to other methods, in +#' particular \code{\link{list.files}} for reading in multiple files. +#' @details To create the summary, \code{sum_str} uses regular expressions. +#' Hence it is crucial that the code separators and the separator titles +#' match the regular expression pattern. We recommend inserting +#' separators and their titles using the RStudio Add-in that is contained +#' in this package. The definition is rather intuitive as can be seen in the +#' example section below. However, we shall provide a formal definition here +#' as well. +#' \itemize{ +#' \item A code separator is defined as a line that starts with n hashes, +#' followed by 4-n spaces where 0 < n < 4. This sequence is followed by one +#' or more either \code{.} or \code{_}. +#' \item A title associated with a code separator is defined as a line +#' that starts with n hashes, followed by 4-n spaces where 0 < n < 4. This +#' sequence is \emph{not} followed by \code{.} or \code{_}. +#' } +#' Lines that do not satisfy these requirements (e.g. do not start with #s, +#' do not contain the right number of spaces after the #, indent before any # +#' ect.) are not considered by \code{sum_str}. +#' @section Removing spaces and hashes: +#' The add-in contained in this package inserts section titles in a way that +#' that they are recognised by RStudio as sections (for details, see +#' \href{https://support.rstudio.com/hc/en-us/articles/200484568-Code-Folding-and-Sections}{RStudio's official website}. One structure that is +#' recognised by RStudio as section is a line starting with a hash and ending +#' with four hashes. This structure is implemented with \code{strcode}. +#' Hence when creating the summary, it might be desired to remove the right +#' hand hashes and spaces, which can be specified with the respective options +#' \code{rm_rh_hashes} and \code{rm_rh_spaces}. +#' @seealso insert_l_break +#' @examples +#' # the following separator is an example of a valid +#' # separator and associated title +#' +#' # __________________________________________________ +#' # this is a level 1 title #### +#' ## . . . . . . . . . . . . . . . . . . . . . . . . . +#' ## note that the title or the separator character (_, .) +#' ## always starts at indention 4. +#' +#' \dontrun{ +#' # Open a new .R file in RStudio, insert some code breaks +#' # using the Add-in of this package, save the file and run: +#' sum_str() # get a summary of the source editor. +#' } +#' @importFrom rstudioapi getSourceEditorContext +#' @export +#' +# ____________________________________________________________________________ +# user function #### +sum_str <- function(path_in = getSourceEditorContext()$path, + file_in_extension = ".R", + dir_out = "", + file_out = NULL, + file_out_extension = "", + width = NULL, + rm_rh_hashes = TRUE, + rm_rh_spaces = TRUE, + rm_break_anchors = TRUE, + line_nr = TRUE, + granularity = 3, + last_sep = FALSE, + title = TRUE, + header = TRUE, + ...) { + +## ............................................................................ +## assertive tests #### +assert_number(granularity, lower = 1, upper = 3) + +### . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. +### prepare input to call helper repeated times #### + # check if file can be directory or path + if (is.na(file.info(path_in)$isdir)) { + stop("Indicated path (", path_in, ") is neither a directory nor a valid file name") + } + # create files if path_in is directory + else if(file.info(path_in)$isdir) { + all_files <- list.files(path = path_in, + pattern = paste0(file_in_extension, "$"), + full.names = FALSE) + # files contain path name + all_files <- paste(path_in, all_files, sep = "/") + if (length(all_files) == 0) { + warning("there are no files in the directory") + } + + # in the case path_in is already a file + } else { + all_files <- path_in + } + + # if output is not printed in the console, print a short summary. +### . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. +### call helper #### + if (dir_out != "") { + cat("The following files were summarized \n") + } + output <- lapply(all_files, function(g) { + # pass all arguments as is except the path_in + if (dir_out != "") { + cat(g, sep = " \n") + } + sum_str_helper(path_in = g, + dir_out = dir_out, + file_out = file_out, + file_out_extension = file_out_extension, + width = width, + rm_rh_hashes = rm_rh_hashes, + rm_rh_spaces = rm_rh_spaces, + rm_break_anchors = rm_break_anchors, + line_nr = line_nr, + granularity = granularity, + last_sep = last_sep, + title = title, + header = header) + }) + + if (dir_out == "" && !is.null(file_out) && file_out == "object") { + output + } else { + invisible() # avoid unnecessary NULL return + } +} +#' helper function for code summarisation +# ____________________________________________________________________________ +# helper function: sum_str_helper #### +#' return code summary for one file +#' +#' Function is called by \code{sum_str()} and returns summary of one code file. +#' @inheritParams sum_str +#' @details The core of the function is described best as follows: after a file +#' was read in and stored in a vector *lines* whereas each element describes a +#' line of code, the candidate lines (in the sense that they might be contained +#' in the summary) were evaluated, their indices stored in *cand*. Next, +#' various regex patterns are matched against *lines*. Then, +#' after all tests were executed, the variable *remove* contains all indices +#' that should be removed from *lines* before it is returned as the summary of +#' the code file. Hence, applying \code{setdiff(cand, remove)} contains +#' the subset of *lines* that we finally want to output. +#' @keywords internal +#' @import checkmate +sum_str_helper <- function(path_in, + dir_out, + file_out, + file_out_extension, + rm_rh_hashes, + rm_rh_spaces, + rm_break_anchors, + width, + line_nr, + granularity, + last_sep, + title, + header) { + +## ............................................................................ +## argument interaction #### +### .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +### get the file_out together + if (is.null(file_out)) { + # file_out must be a file name. Grap the last expression after backslash. + backslash_rm <- gsub("^.*/(.*)", "\\1", path_in, perl = TRUE) + file_out <- paste0("code_summary-", + gsub("^(.*)\\..*$", "\\1", backslash_rm, perl = TRUE), + file_out_extension) + } + +### .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +### paths + + # path_out + ## path_out is "" if dir_out is "" + if (dir_out == "") { + path_out <- "" + # otherwise it is composed of dir_out and file_out, if file_out + # has a not empty value + } else { + path_out <- paste(dir_out, file_out, sep = "/") + } + +## ............................................................................ +## get pattern + + lines <- readLines(con = path_in) + sub_pattern <- "^# [^ ]|^## [^ ]|^### [^ ]" + cand <- grep(sub_pattern, lines, perl = FALSE) # extract candiates id + if (length(cand) == 0) { + return(warning("No line matching the required pattern", + call. = FALSE, immediate. = TRUE)) + } + +## .................. #< 3b5746a13447c5269736b631d6a9370d ># .................. +## replace hashed seps #### +if (rm_break_anchors) { + # extract candidates for replacement + hash_candid <- intersect(grep("(\\s#<\\s[0-9a-z]{1,33}\\s>#\\s)", lines, perl = TRUE), + cand) + # get their level + lvl <- nchar(gsub("^(#+)\\s.*$", "\\1", lines[hash_candid], perl = TRUE)) + replacement <- vapply(lvl, function(x) help_create_break(start = paste0(rep("#", x), collapse = ""), + break_char = give_breakchar(x), + sep = paste(rep(" ", 4 - x), collapse = ""), anchor_in_sep = FALSE), + FUN.VALUE = character(1)) + lines[hash_candid] <- replacement + +} +## ............................................................................ +## modify pattern according to arguments +### .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +### getting the granularity right + remove <- c() + if (granularity < 3) { # if there are any lines to remove + hashes <- (granularity + 1):3 + spaces <- 4 - hashes + + # this variable stores the indices of all lines that should be dropped. + for (i in 1:length(hashes)) { + sub_pattern <- paste0("^#{", hashes[i], "}\\s{", spaces[i], "}.*$") + remove <- append(remove, grep(sub_pattern, lines, perl = TRUE)) + } + } + +### .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +### remove last separator + if (last_sep == FALSE) { + hashes <- min(find_gran("down", lines = lines), granularity) + spaces <- 4 - hashes + sub_pattern <- paste0("^#{", hashes, "}\\s{", spaces, "}[\\._].*$") + remove <- append(remove, grep(sub_pattern, lines, perl = TRUE)) + } + +## ............................................................................ +## select elements that "survived all tests" + tokeep <- setdiff(cand, remove) + lines <- lines[tokeep] + +### .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +### width adjust line_nr, title, output path, header + + # only continue if there is a valid pattern + if (length(lines) == 0) { + return(warning("No line matching the required pattern", + call. = FALSE, immediate. = TRUE)) + } + + # issue warning if there are no titles + pattern_titles <- grep("^(# |## |### )[^\\._)].*$", lines, value = TRUE) + if (length(pattern_titles) == 0) { # if there were no titles + warning("There are no segment titles.", + call. = FALSE, immediate. = TRUE) + } + + # remove right hand hashes if desired + if (rm_rh_hashes) { + lines <- gsub("####$", " ", lines, perl = TRUE) + } + + # remove right hand spaces if desired + if (rm_rh_spaces) { + lines <- gsub("\\s*$", "", lines, perl = TRUE) + } + + # adjust length of pattern. + if (is.null(width)) { + # first calculate width. It is the length of the maximal title string + ## get the title strings + if (length(pattern_titles) == 0) { # if there were no titles + width <- options()$strcode$char_length + warning("width set to options()$strcode.char.length", + call. = FALSE, immediate. = TRUE) + } else { # if there were titles + width <- max(nchar(pattern_titles)) + } + } + + lines <- substring(lines, 1, width) + + if (line_nr == TRUE) { + lines <- paste(tokeep, lines, sep = "\t") + } + + if (header == TRUE) { + lines <- append(c("line level section"), lines) + } + if (title == TRUE) { + lines <- append(paste0("Summarized structure of ", path_in, "\n"), lines) + } + +## ............................................................................ +## output the pattern + if (dir_out == "" && file_out == "object") { + lines + } else { + cat(lines, file = path_out, sep = "\n") + } +} + +# ____________________________________________________________________________ +# helper function: find_gran +# find maximal or minimal level of granularity used. +#' Find out granularity of a string vector +#' +#' This helper function takes a string (vector) as an input and searches for the +#' highest or lowest granularity. Granularity is defined in terms of a hash/ +#' space sequence (see \code{\link{sum_str}}). The search is implemented using +#' a recursive approach. +#' @param direction either "up" or "down". Down means the algorithm starts with +#' the pattern containing a certain number of hashes (specified in +#' \code{highest}) and searches for a regex match. If it can't find one, it +#' reduces the number of hashes by one and searches again, until it finds a +#' pattern. +#' @param highest The highest level of granularity to search for. +#' @param lowest The lowest level of granularity to search for. +#' @param lines a character vector containing the lines to match against. +#' @examples +#' strcode:::find_gran("down", highest = 3, lowest = 1, lines = c("## .", "# _")) +#' @keywords internal +find_gran <- function(direction = "down", highest = 3, lowest = 1, lines) { + # direction + if (direction == "up") { + current <- lowest + m <- 1 + } else if (direction == "down") { + current <- highest + m <- -1 + } + + helper_find_gran <- function(direction) { + assert_number(current, lower = lowest, upper = highest) + pattern <- paste0("^", paste0(rep("#", current), collapse = ""), + "\\s{", highest + 1 - current, "}.*$") + if (any(grepl(pattern, lines, perl = TRUE))) { + current + } else { + current <<- current + m * 1 + helper_find_gran(direction = direction) + } + } + helper_find_gran(direction) +} From 8056339b16efa910327f7e476ce3ab15e0535c97 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 22 Jun 2017 01:31:26 -0500 Subject: [PATCH 015/318] Rename sum_rdf to R/sum_rdf --- sum_rdf => R/sum_rdf | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename sum_rdf => R/sum_rdf (100%) diff --git a/sum_rdf b/R/sum_rdf similarity index 100% rename from sum_rdf rename to R/sum_rdf From 22fda80746baa152205187cf703c9acd57da14cf Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 22 Jun 2017 01:31:44 -0500 Subject: [PATCH 016/318] Rename sum_rdf to sum_rdf.R --- R/{sum_rdf => sum_rdf.R} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename R/{sum_rdf => sum_rdf.R} (100%) diff --git a/R/sum_rdf b/R/sum_rdf.R similarity index 100% rename from R/sum_rdf rename to R/sum_rdf.R From 095ff9e2503aa27c80a0c10b576e00406ca7cc33 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 22 Jun 2017 01:33:14 -0500 Subject: [PATCH 017/318] Update sum_rdf.R --- R/sum_rdf.R | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/R/sum_rdf.R b/R/sum_rdf.R index 8a5dcd1..a6d7aca 100644 --- a/R/sum_rdf.R +++ b/R/sum_rdf.R @@ -7,7 +7,7 @@ #' is a single file path, only the resepective file will be summarised. #' The default value uses the RStudio API to produce a summary of content from #' the source editor. This requires that the file is saved before -#' \code{sum_str} is called. +#' \code{sum_rdf} is called. #' @param file_in_extension If \code{file_in} is \code{NULL}, all files with the #' \code{file_in_extension} are considered, defaults to ".R". #' @param dir_out The directory to print the output to. "" implies the console. @@ -41,7 +41,7 @@ #' indicate the name of the columns (line, level, section). #' @param ... futher arguments to be passed from and to other methods, in #' particular \code{\link{list.files}} for reading in multiple files. -#' @details To create the summary, \code{sum_str} uses regular expressions. +#' @details To create the summary, \code{sum_rdf} uses regular expressions. #' Hence it is crucial that the code separators and the separator titles #' match the regular expression pattern. We recommend inserting #' separators and their titles using the RStudio Add-in that is contained @@ -58,7 +58,7 @@ #' } #' Lines that do not satisfy these requirements (e.g. do not start with #s, #' do not contain the right number of spaces after the #, indent before any # -#' ect.) are not considered by \code{sum_str}. +#' ect.) are not considered by \code{sum_rdf}. #' @section Removing spaces and hashes: #' The add-in contained in this package inserts section titles in a way that #' that they are recognised by RStudio as sections (for details, see @@ -82,14 +82,14 @@ #' \dontrun{ #' # Open a new .R file in RStudio, insert some code breaks #' # using the Add-in of this package, save the file and run: -#' sum_str() # get a summary of the source editor. +#' sum_rdf() # get a summary of the source editor. #' } #' @importFrom rstudioapi getSourceEditorContext #' @export #' # ____________________________________________________________________________ # user function #### -sum_str <- function(path_in = getSourceEditorContext()$path, +sum_rdf <- function(path_in = getSourceEditorContext()$path, file_in_extension = ".R", dir_out = "", file_out = NULL, @@ -142,7 +142,7 @@ assert_number(granularity, lower = 1, upper = 3) if (dir_out != "") { cat(g, sep = " \n") } - sum_str_helper(path_in = g, + sum_rdf_helper(path_in = g, dir_out = dir_out, file_out = file_out, file_out_extension = file_out_extension, @@ -165,11 +165,11 @@ assert_number(granularity, lower = 1, upper = 3) } #' helper function for code summarisation # ____________________________________________________________________________ -# helper function: sum_str_helper #### +# helper function: sum_rdf_helper #### #' return code summary for one file #' -#' Function is called by \code{sum_str()} and returns summary of one code file. -#' @inheritParams sum_str +#' Function is called by \code{sum_rdf()} and returns summary of one code file. +#' @inheritParams sum_rdf #' @details The core of the function is described best as follows: after a file #' was read in and stored in a vector *lines* whereas each element describes a #' line of code, the candidate lines (in the sense that they might be contained @@ -181,7 +181,7 @@ assert_number(granularity, lower = 1, upper = 3) #' the subset of *lines* that we finally want to output. #' @keywords internal #' @import checkmate -sum_str_helper <- function(path_in, +sum_rdf_helper <- function(path_in, dir_out, file_out, file_out_extension, @@ -344,7 +344,7 @@ if (rm_break_anchors) { #' #' This helper function takes a string (vector) as an input and searches for the #' highest or lowest granularity. Granularity is defined in terms of a hash/ -#' space sequence (see \code{\link{sum_str}}). The search is implemented using +#' space sequence (see \code{\link{sum_rdf}}). The search is implemented using #' a recursive approach. #' @param direction either "up" or "down". Down means the algorithm starts with #' the pattern containing a certain number of hashes (specified in From 6baaf0df709d3b135e11ea56d39dd207a0337df6 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 22 Jun 2017 01:49:25 -0500 Subject: [PATCH 018/318] Update sum_rdf.R --- R/sum_rdf.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_rdf.R b/R/sum_rdf.R index a6d7aca..0e57131 100644 --- a/R/sum_rdf.R +++ b/R/sum_rdf.R @@ -238,7 +238,7 @@ if (rm_break_anchors) { hash_candid <- intersect(grep("(\\s#<\\s[0-9a-z]{1,33}\\s>#\\s)", lines, perl = TRUE), cand) # get their level - lvl <- nchar(gsub("^(#+)\\s.*$", "\\1", lines[hash_candid], perl = TRUE)) + lvl <- nchar(gsub("^(#+)\\s.*$", "\\2", lines[hash_candid], perl = TRUE)) replacement <- vapply(lvl, function(x) help_create_break(start = paste0(rep("#", x), collapse = ""), break_char = give_breakchar(x), sep = paste(rep(" ", 4 - x), collapse = ""), anchor_in_sep = FALSE), From 6fc78f678cac3b332e2306a8918fb5c1fd52cc27 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 22 Jun 2017 01:59:38 -0500 Subject: [PATCH 019/318] Create testfunction.R --- R/testfunction.R | 1 + 1 file changed, 1 insertion(+) create mode 100644 R/testfunction.R diff --git a/R/testfunction.R b/R/testfunction.R new file mode 100644 index 0000000..0386dea --- /dev/null +++ b/R/testfunction.R @@ -0,0 +1 @@ +testfunction=function(){paste(test123)} From 17f10b2d226e7e217e414fd50572e7ce97b59e2f Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 22 Jun 2017 02:03:37 -0500 Subject: [PATCH 020/318] Update sum_str.R --- R/sum_str.R | 3 +++ 1 file changed, 3 insertions(+) diff --git a/R/sum_str.R b/R/sum_str.R index d3d3b71..e2a1230 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -1,3 +1,6 @@ +#test: +testfunction=function(){paste(test123)} + #' Summarize the code structure #' #' Create a summary of one or multiple code files based on the section From a408bdd0337ea4d671d719ce552ce906f14b6434 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 22 Jun 2017 02:04:32 -0500 Subject: [PATCH 021/318] Update sum_str.R --- R/sum_str.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index e2a1230..e3cbc4f 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -1,5 +1,5 @@ #test: -testfunction=function(){paste(test123)} +testfunction <- function(){paste(test123)} #' Summarize the code structure #' From c5e09ebb9700367b4eefedafc23cea989ce0d455 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 22 Jun 2017 02:31:17 -0500 Subject: [PATCH 022/318] Update sum_str.R --- R/sum_str.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index e3cbc4f..d6d2b39 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -1,5 +1,5 @@ #test: -testfunction <- function(){paste(test123)} +testfunction <- function(x="none"){paste(x)} #' Summarize the code structure #' From 07ef20f1eacf53f9e743ffd0df0afa587d3fa0c2 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 22 Jun 2017 02:33:08 -0500 Subject: [PATCH 023/318] Update testfunction.R --- R/testfunction.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/testfunction.R b/R/testfunction.R index 0386dea..0cbb659 100644 --- a/R/testfunction.R +++ b/R/testfunction.R @@ -1 +1 @@ -testfunction=function(){paste(test123)} +testfunction <- function(x="none"){paste(x)} From f589d2c9759e0724ace68ef69768058d33074fc3 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 22 Jun 2017 02:38:03 -0500 Subject: [PATCH 024/318] Update testfunction.R --- R/testfunction.R | 1 + 1 file changed, 1 insertion(+) diff --git a/R/testfunction.R b/R/testfunction.R index 0cbb659..d9ae14d 100644 --- a/R/testfunction.R +++ b/R/testfunction.R @@ -1 +1,2 @@ +#' @export testfunction <- function(x="none"){paste(x)} From cf11c360ccbb5e5dc13f018392f723abc08e850f Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 22 Jun 2017 02:40:08 -0500 Subject: [PATCH 025/318] Update testfunction.R --- R/testfunction.R | 3 +++ 1 file changed, 3 insertions(+) diff --git a/R/testfunction.R b/R/testfunction.R index d9ae14d..10a8c1e 100644 --- a/R/testfunction.R +++ b/R/testfunction.R @@ -1,2 +1,5 @@ +#' test function +#' @param +#' @return the input strings #' @export testfunction <- function(x="none"){paste(x)} From 572652e4f941e6afa852e6cdf5bfc65879eb886a Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 22 Jun 2017 02:45:55 -0500 Subject: [PATCH 026/318] Create testfunction.Rd --- man/testfunction.Rd | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 man/testfunction.Rd diff --git a/man/testfunction.Rd b/man/testfunction.Rd new file mode 100644 index 0000000..856ba37 --- /dev/null +++ b/man/testfunction.Rd @@ -0,0 +1,6 @@ +\name{testfunction} +\alias{testfunction} +\title{testfunction} +\usage{ +testfunction(x="none") +} From 13cac9a2736f97d496e0e13fb87ae04fd05a2a91 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 22 Jun 2017 03:00:39 -0500 Subject: [PATCH 027/318] Delete testfunction.Rd --- man/testfunction.Rd | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 man/testfunction.Rd diff --git a/man/testfunction.Rd b/man/testfunction.Rd deleted file mode 100644 index 856ba37..0000000 --- a/man/testfunction.Rd +++ /dev/null @@ -1,6 +0,0 @@ -\name{testfunction} -\alias{testfunction} -\title{testfunction} -\usage{ -testfunction(x="none") -} From 6f34286c5f747737ef0f4efef941b3e025591c5d Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 22 Jun 2017 03:01:39 -0500 Subject: [PATCH 028/318] Update sum_str.R --- R/sum_str.R | 3 --- 1 file changed, 3 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index d6d2b39..d3d3b71 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -1,6 +1,3 @@ -#test: -testfunction <- function(x="none"){paste(x)} - #' Summarize the code structure #' #' Create a summary of one or multiple code files based on the section From 17853f365613d9c6f9358526cc8859918e4273f7 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 22 Jun 2017 03:39:56 -0500 Subject: [PATCH 029/318] Delete sum_rdf.R --- R/sum_rdf.R | 382 ---------------------------------------------------- 1 file changed, 382 deletions(-) delete mode 100644 R/sum_rdf.R diff --git a/R/sum_rdf.R b/R/sum_rdf.R deleted file mode 100644 index 0e57131..0000000 --- a/R/sum_rdf.R +++ /dev/null @@ -1,382 +0,0 @@ -#' Summarize the code structure -#' -#' Create a summary of one or multiple code files based on the section -#' separators and their titles. -#' @param path_in Either a path to a directory or to a single file. If it is -#' a directory path, all files in that directory will be summarised. If it -#' is a single file path, only the resepective file will be summarised. -#' The default value uses the RStudio API to produce a summary of content from -#' the source editor. This requires that the file is saved before -#' \code{sum_rdf} is called. -#' @param file_in_extension If \code{file_in} is \code{NULL}, all files with the -#' \code{file_in_extension} are considered, defaults to ".R". -#' @param dir_out The directory to print the output to. "" implies the console. -#' @param file_out A connection or character string naming the file to print to. -#' If set to \code{NULL}, the name will be \code{paste0("code-summary_", file_in)}. -#' If \code{dir_out} is set to "", \code{file_out} can be set to -#' "object" and the output of the function will be returned as an -#' object instead of just printed to the console with \code{cat}. This is -#' useful if output should be assigned to an object. If not set to "object", -#' \code{cat} will be used. -#' @param file_out_extension A file extension for the file to be created. -#' @param rm_rh_hashes Boolean value indicating whether or not to remove -#' righthand hashes in section titles for the summary -#' (see section Removing spaces and hashes). -#' @param rm_rh_spaces Boolean value indicating whether or not to remove -#' righthand spaces in section titles for the summary -#' (see section Removing spaces and hashes). -#' @param rm_break_anchors Boolean value indicating whether or not the anchors -#' inserted in code separators should be removed for the summary. -#' @param width The character width of the output. If NULL, it is set to the -#' length of the longest separator title. -#' @param line_nr A boolean value that indicates whether the line numbers should -#' be printed along with the structure summary. -#' @param granularity Indicates the lowest level of granularity that should be -#' included in the summary. -#' @param last_sep A boolean value indicating whether or not the separating -#' lines of the highest granularity should be printed. -#' @param title A boolean value indicating whether the reported summary should -#' contain a title or not. -#' @param header A boolean value indicating whether a column header should -#' indicate the name of the columns (line, level, section). -#' @param ... futher arguments to be passed from and to other methods, in -#' particular \code{\link{list.files}} for reading in multiple files. -#' @details To create the summary, \code{sum_rdf} uses regular expressions. -#' Hence it is crucial that the code separators and the separator titles -#' match the regular expression pattern. We recommend inserting -#' separators and their titles using the RStudio Add-in that is contained -#' in this package. The definition is rather intuitive as can be seen in the -#' example section below. However, we shall provide a formal definition here -#' as well. -#' \itemize{ -#' \item A code separator is defined as a line that starts with n hashes, -#' followed by 4-n spaces where 0 < n < 4. This sequence is followed by one -#' or more either \code{.} or \code{_}. -#' \item A title associated with a code separator is defined as a line -#' that starts with n hashes, followed by 4-n spaces where 0 < n < 4. This -#' sequence is \emph{not} followed by \code{.} or \code{_}. -#' } -#' Lines that do not satisfy these requirements (e.g. do not start with #s, -#' do not contain the right number of spaces after the #, indent before any # -#' ect.) are not considered by \code{sum_rdf}. -#' @section Removing spaces and hashes: -#' The add-in contained in this package inserts section titles in a way that -#' that they are recognised by RStudio as sections (for details, see -#' \href{https://support.rstudio.com/hc/en-us/articles/200484568-Code-Folding-and-Sections}{RStudio's official website}. One structure that is -#' recognised by RStudio as section is a line starting with a hash and ending -#' with four hashes. This structure is implemented with \code{strcode}. -#' Hence when creating the summary, it might be desired to remove the right -#' hand hashes and spaces, which can be specified with the respective options -#' \code{rm_rh_hashes} and \code{rm_rh_spaces}. -#' @seealso insert_l_break -#' @examples -#' # the following separator is an example of a valid -#' # separator and associated title -#' -#' # __________________________________________________ -#' # this is a level 1 title #### -#' ## . . . . . . . . . . . . . . . . . . . . . . . . . -#' ## note that the title or the separator character (_, .) -#' ## always starts at indention 4. -#' -#' \dontrun{ -#' # Open a new .R file in RStudio, insert some code breaks -#' # using the Add-in of this package, save the file and run: -#' sum_rdf() # get a summary of the source editor. -#' } -#' @importFrom rstudioapi getSourceEditorContext -#' @export -#' -# ____________________________________________________________________________ -# user function #### -sum_rdf <- function(path_in = getSourceEditorContext()$path, - file_in_extension = ".R", - dir_out = "", - file_out = NULL, - file_out_extension = "", - width = NULL, - rm_rh_hashes = TRUE, - rm_rh_spaces = TRUE, - rm_break_anchors = TRUE, - line_nr = TRUE, - granularity = 3, - last_sep = FALSE, - title = TRUE, - header = TRUE, - ...) { - -## ............................................................................ -## assertive tests #### -assert_number(granularity, lower = 1, upper = 3) - -### . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. -### prepare input to call helper repeated times #### - # check if file can be directory or path - if (is.na(file.info(path_in)$isdir)) { - stop("Indicated path (", path_in, ") is neither a directory nor a valid file name") - } - # create files if path_in is directory - else if(file.info(path_in)$isdir) { - all_files <- list.files(path = path_in, - pattern = paste0(file_in_extension, "$"), - full.names = FALSE) - # files contain path name - all_files <- paste(path_in, all_files, sep = "/") - if (length(all_files) == 0) { - warning("there are no files in the directory") - } - - # in the case path_in is already a file - } else { - all_files <- path_in - } - - # if output is not printed in the console, print a short summary. -### . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. -### call helper #### - if (dir_out != "") { - cat("The following files were summarized \n") - } - output <- lapply(all_files, function(g) { - # pass all arguments as is except the path_in - if (dir_out != "") { - cat(g, sep = " \n") - } - sum_rdf_helper(path_in = g, - dir_out = dir_out, - file_out = file_out, - file_out_extension = file_out_extension, - width = width, - rm_rh_hashes = rm_rh_hashes, - rm_rh_spaces = rm_rh_spaces, - rm_break_anchors = rm_break_anchors, - line_nr = line_nr, - granularity = granularity, - last_sep = last_sep, - title = title, - header = header) - }) - - if (dir_out == "" && !is.null(file_out) && file_out == "object") { - output - } else { - invisible() # avoid unnecessary NULL return - } -} -#' helper function for code summarisation -# ____________________________________________________________________________ -# helper function: sum_rdf_helper #### -#' return code summary for one file -#' -#' Function is called by \code{sum_rdf()} and returns summary of one code file. -#' @inheritParams sum_rdf -#' @details The core of the function is described best as follows: after a file -#' was read in and stored in a vector *lines* whereas each element describes a -#' line of code, the candidate lines (in the sense that they might be contained -#' in the summary) were evaluated, their indices stored in *cand*. Next, -#' various regex patterns are matched against *lines*. Then, -#' after all tests were executed, the variable *remove* contains all indices -#' that should be removed from *lines* before it is returned as the summary of -#' the code file. Hence, applying \code{setdiff(cand, remove)} contains -#' the subset of *lines* that we finally want to output. -#' @keywords internal -#' @import checkmate -sum_rdf_helper <- function(path_in, - dir_out, - file_out, - file_out_extension, - rm_rh_hashes, - rm_rh_spaces, - rm_break_anchors, - width, - line_nr, - granularity, - last_sep, - title, - header) { - -## ............................................................................ -## argument interaction #### -### .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -### get the file_out together - if (is.null(file_out)) { - # file_out must be a file name. Grap the last expression after backslash. - backslash_rm <- gsub("^.*/(.*)", "\\1", path_in, perl = TRUE) - file_out <- paste0("code_summary-", - gsub("^(.*)\\..*$", "\\1", backslash_rm, perl = TRUE), - file_out_extension) - } - -### .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -### paths - - # path_out - ## path_out is "" if dir_out is "" - if (dir_out == "") { - path_out <- "" - # otherwise it is composed of dir_out and file_out, if file_out - # has a not empty value - } else { - path_out <- paste(dir_out, file_out, sep = "/") - } - -## ............................................................................ -## get pattern - - lines <- readLines(con = path_in) - sub_pattern <- "^# [^ ]|^## [^ ]|^### [^ ]" - cand <- grep(sub_pattern, lines, perl = FALSE) # extract candiates id - if (length(cand) == 0) { - return(warning("No line matching the required pattern", - call. = FALSE, immediate. = TRUE)) - } - -## .................. #< 3b5746a13447c5269736b631d6a9370d ># .................. -## replace hashed seps #### -if (rm_break_anchors) { - # extract candidates for replacement - hash_candid <- intersect(grep("(\\s#<\\s[0-9a-z]{1,33}\\s>#\\s)", lines, perl = TRUE), - cand) - # get their level - lvl <- nchar(gsub("^(#+)\\s.*$", "\\2", lines[hash_candid], perl = TRUE)) - replacement <- vapply(lvl, function(x) help_create_break(start = paste0(rep("#", x), collapse = ""), - break_char = give_breakchar(x), - sep = paste(rep(" ", 4 - x), collapse = ""), anchor_in_sep = FALSE), - FUN.VALUE = character(1)) - lines[hash_candid] <- replacement - -} -## ............................................................................ -## modify pattern according to arguments -### .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -### getting the granularity right - remove <- c() - if (granularity < 3) { # if there are any lines to remove - hashes <- (granularity + 1):3 - spaces <- 4 - hashes - - # this variable stores the indices of all lines that should be dropped. - for (i in 1:length(hashes)) { - sub_pattern <- paste0("^#{", hashes[i], "}\\s{", spaces[i], "}.*$") - remove <- append(remove, grep(sub_pattern, lines, perl = TRUE)) - } - } - -### .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -### remove last separator - if (last_sep == FALSE) { - hashes <- min(find_gran("down", lines = lines), granularity) - spaces <- 4 - hashes - sub_pattern <- paste0("^#{", hashes, "}\\s{", spaces, "}[\\._].*$") - remove <- append(remove, grep(sub_pattern, lines, perl = TRUE)) - } - -## ............................................................................ -## select elements that "survived all tests" - tokeep <- setdiff(cand, remove) - lines <- lines[tokeep] - -### .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -### width adjust line_nr, title, output path, header - - # only continue if there is a valid pattern - if (length(lines) == 0) { - return(warning("No line matching the required pattern", - call. = FALSE, immediate. = TRUE)) - } - - # issue warning if there are no titles - pattern_titles <- grep("^(# |## |### )[^\\._)].*$", lines, value = TRUE) - if (length(pattern_titles) == 0) { # if there were no titles - warning("There are no segment titles.", - call. = FALSE, immediate. = TRUE) - } - - # remove right hand hashes if desired - if (rm_rh_hashes) { - lines <- gsub("####$", " ", lines, perl = TRUE) - } - - # remove right hand spaces if desired - if (rm_rh_spaces) { - lines <- gsub("\\s*$", "", lines, perl = TRUE) - } - - # adjust length of pattern. - if (is.null(width)) { - # first calculate width. It is the length of the maximal title string - ## get the title strings - if (length(pattern_titles) == 0) { # if there were no titles - width <- options()$strcode$char_length - warning("width set to options()$strcode.char.length", - call. = FALSE, immediate. = TRUE) - } else { # if there were titles - width <- max(nchar(pattern_titles)) - } - } - - lines <- substring(lines, 1, width) - - if (line_nr == TRUE) { - lines <- paste(tokeep, lines, sep = "\t") - } - - if (header == TRUE) { - lines <- append(c("line level section"), lines) - } - if (title == TRUE) { - lines <- append(paste0("Summarized structure of ", path_in, "\n"), lines) - } - -## ............................................................................ -## output the pattern - if (dir_out == "" && file_out == "object") { - lines - } else { - cat(lines, file = path_out, sep = "\n") - } -} - -# ____________________________________________________________________________ -# helper function: find_gran -# find maximal or minimal level of granularity used. -#' Find out granularity of a string vector -#' -#' This helper function takes a string (vector) as an input and searches for the -#' highest or lowest granularity. Granularity is defined in terms of a hash/ -#' space sequence (see \code{\link{sum_rdf}}). The search is implemented using -#' a recursive approach. -#' @param direction either "up" or "down". Down means the algorithm starts with -#' the pattern containing a certain number of hashes (specified in -#' \code{highest}) and searches for a regex match. If it can't find one, it -#' reduces the number of hashes by one and searches again, until it finds a -#' pattern. -#' @param highest The highest level of granularity to search for. -#' @param lowest The lowest level of granularity to search for. -#' @param lines a character vector containing the lines to match against. -#' @examples -#' strcode:::find_gran("down", highest = 3, lowest = 1, lines = c("## .", "# _")) -#' @keywords internal -find_gran <- function(direction = "down", highest = 3, lowest = 1, lines) { - # direction - if (direction == "up") { - current <- lowest - m <- 1 - } else if (direction == "down") { - current <- highest - m <- -1 - } - - helper_find_gran <- function(direction) { - assert_number(current, lower = lowest, upper = highest) - pattern <- paste0("^", paste0(rep("#", current), collapse = ""), - "\\s{", highest + 1 - current, "}.*$") - if (any(grepl(pattern, lines, perl = TRUE))) { - current - } else { - current <<- current + m * 1 - helper_find_gran(direction = direction) - } - } - helper_find_gran(direction) -} From 412b4d1ce897ee04541cd33cec6a1294e4b35d84 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 22 Jun 2017 03:40:20 -0500 Subject: [PATCH 030/318] Delete testfunction.R --- R/testfunction.R | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 R/testfunction.R diff --git a/R/testfunction.R b/R/testfunction.R deleted file mode 100644 index 10a8c1e..0000000 --- a/R/testfunction.R +++ /dev/null @@ -1,5 +0,0 @@ -#' test function -#' @param -#' @return the input strings -#' @export -testfunction <- function(x="none"){paste(x)} From f9ca102fb6e23e2e9997bc174b141904644aee11 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 22 Jun 2017 16:00:29 -0500 Subject: [PATCH 031/318] Update sum_str.R --- R/sum_str.R | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index d3d3b71..679cd5b 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -331,7 +331,11 @@ if (rm_break_anchors) { ## ............................................................................ ## output the pattern if (dir_out == "" && file_out == "object") { - lines + #lines + for (i in 1:length(lines)){ + print i + } + } else { cat(lines, file = path_out, sep = "\n") } From da3a1b630eb74389014c29e80a74f6d0c75777f7 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 22 Jun 2017 16:01:33 -0500 Subject: [PATCH 032/318] Update sum_str.R --- R/sum_str.R | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 679cd5b..363fb30 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -333,9 +333,8 @@ if (rm_break_anchors) { if (dir_out == "" && file_out == "object") { #lines for (i in 1:length(lines)){ - print i + print (i) } - } else { cat(lines, file = path_out, sep = "\n") } From bdecce3dacafe133749a0efad09ec0851b39d9cd Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 22 Jun 2017 16:03:08 -0500 Subject: [PATCH 033/318] Update sum_str.R --- R/sum_str.R | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 363fb30..70a32c3 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -331,10 +331,7 @@ if (rm_break_anchors) { ## ............................................................................ ## output the pattern if (dir_out == "" && file_out == "object") { - #lines - for (i in 1:length(lines)){ - print (i) - } + class(lines) } else { cat(lines, file = path_out, sep = "\n") } From 8ba6988cc72cda1732793ef87ab3b558ee563ee1 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 22 Jun 2017 23:25:23 -0500 Subject: [PATCH 034/318] Update sum_str.R --- R/sum_str.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index 70a32c3..d3d3b71 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -331,7 +331,7 @@ if (rm_break_anchors) { ## ............................................................................ ## output the pattern if (dir_out == "" && file_out == "object") { - class(lines) + lines } else { cat(lines, file = path_out, sep = "\n") } From 0d62349ca9944cf56145dc5df06da8a7c789f6cf Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 23 Jun 2017 00:12:48 -0500 Subject: [PATCH 035/318] Update sum_str.R --- R/sum_str.R | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index d3d3b71..dcd47ed 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -103,6 +103,7 @@ sum_str <- function(path_in = getSourceEditorContext()$path, last_sep = FALSE, title = TRUE, header = TRUE, + rdf = FALSE, ...) { ## ............................................................................ @@ -330,7 +331,12 @@ if (rm_break_anchors) { ## ............................................................................ ## output the pattern - if (dir_out == "" && file_out == "object") { + if (rdf){ + #localwd=getwd() + write(lines,file="temptestfile.txt") + } + # original below (delet else): + else if (dir_out == "" && file_out == "object") { lines } else { cat(lines, file = path_out, sep = "\n") From 1b4652db3c73c81ab2781ec3c0150089f5707329 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 23 Jun 2017 00:15:14 -0500 Subject: [PATCH 036/318] Update sum_str.R --- R/sum_str.R | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index dcd47ed..8be1c75 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -155,7 +155,8 @@ assert_number(granularity, lower = 1, upper = 3) granularity = granularity, last_sep = last_sep, title = title, - header = header) + header = header, + rdf=rdf) }) if (dir_out == "" && !is.null(file_out) && file_out == "object") { From 0513ff62b0cd6c93f41710d1eeadd3f9d043183b Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 23 Jun 2017 00:16:51 -0500 Subject: [PATCH 037/318] Update sum_str.R --- R/sum_str.R | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index 8be1c75..4278d7e 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -195,7 +195,8 @@ sum_str_helper <- function(path_in, granularity, last_sep, title, - header) { + header, + rdf) { ## ............................................................................ ## argument interaction #### From 67f529644be9e7360ad1a5ffc7d2bc6fd5fe1263 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 23 Jun 2017 00:45:05 -0500 Subject: [PATCH 038/318] Update sum_str.R --- R/sum_str.R | 46 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index 4278d7e..a1c5577 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -335,7 +335,51 @@ if (rm_break_anchors) { ## output the pattern if (rdf){ #localwd=getwd() - write(lines,file="temptestfile.txt") + write(lines,file="RDF_output_file.txt") + templines=readLines("RDF_output_file.txt") +lines_content=templines[4:length(templines)] +lines_split=strsplit(lines_content, " ") +# RDF word list: +ProvONElist=c("provone:Process","provone:InputPort","provone:OutputPort", + "provone:DataLink","provone:SeqCtrlLink","provone:Workflow", + "provone:User","provone:ProcessExec","provone:Data", + "provone:Collection","provone:Visualization") +lines_rdf="" +for (j in 1:length(lines_split)){ + line_rdf="" + lines_split[[j]] + #title + title=lines_split[[j]][2] + #ID + ID=gsub("\\{","",lines_split[[j]][3]) + for (i in 4:length(lines_split[[j]])){ + tempword="" + if (i==4){ + tempword=gsub("\\}","",lines_split[[j]][4]) + tempword=gsub("\\.","",tempword) + line_rdf=paste(ID,"a",tempword,";","\n") + } + else { + tempword=gsub("\\.","",lines_split[[j]][i]) + if (i==length(lines_split[[j]])){ + tempword=gsub("\\}","",tempword) + } + if (tempword %in% ProvONElist){ + temp_line=paste("rdf:type",tempword,";") + } + else { + temp_line=paste("_",tempword,";") + } + temp_line=paste("\t",temp_line,"\n") + line_rdf=paste(line_rdf,temp_line) + } + + } + line_rdf=paste(line_rdf,"\t","rdfs:label","\"",title,"\"",".\n") + lines_rdf=paste(lines_rdf,line_rdf) +} +write(lines_rdf,file="RDF_output_file.txt") + } # original below (delet else): else if (dir_out == "" && file_out == "object") { From eafaf8a5efa25d29e0d43c6fa0159977371a4c21 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 23 Jun 2017 00:53:35 -0500 Subject: [PATCH 039/318] Update sum_str.R --- R/sum_str.R | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index a1c5577..6e8d26b 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -335,8 +335,10 @@ if (rm_break_anchors) { ## output the pattern if (rdf){ #localwd=getwd() - write(lines,file="RDF_output_file.txt") - templines=readLines("RDF_output_file.txt") + datetime <- format(Sys.time(), "%Y_%m_%d_%H_%M_%S") + outputfile2 <- paste("RDF_output_file_",datetime,".txt",sep="") + write(lines,file=outputfile2) + templines=readLines(outputfile2) lines_content=templines[4:length(templines)] lines_split=strsplit(lines_content, " ") # RDF word list: @@ -378,8 +380,10 @@ for (j in 1:length(lines_split)){ line_rdf=paste(line_rdf,"\t","rdfs:label","\"",title,"\"",".\n") lines_rdf=paste(lines_rdf,line_rdf) } -write(lines_rdf,file="RDF_output_file.txt") - +write(lines_rdf,file=outputfile2) +print("Create a RDF file successfully. Please find the output file in:") +print(getwd()) +print(paste("Your file name is:",outputfile2)) } # original below (delet else): else if (dir_out == "" && file_out == "object") { From b89714dcc781a102c1c8d61c616d83892b05b1e9 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Tue, 27 Jun 2017 01:33:28 -0500 Subject: [PATCH 040/318] Update sum_str.R --- R/sum_str.R | 41 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 6e8d26b..4aa2aa6 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -341,12 +341,49 @@ if (rm_break_anchors) { templines=readLines(outputfile2) lines_content=templines[4:length(templines)] lines_split=strsplit(lines_content, " ") + +schemalist=list() + +schemas=c(rdfs="@prefix rdfs: .", + xsd="@prefix xsd: .", + owl="@prefix owl: .", + dcterms="@prefix dcterms: .", + prov="@prefix prov: .", + wfms="@prefix wfms: .", + rdf="@prefix rdf: .", + provone="@prefix provone: .", + skos="@prefix skos: ") + +for (i in 1:length(lines_split)){ + schemalist[[i]]=grep(":",lines_split[[i]]) +} +schemahad=0 +lines_rdf="" +count0=1 +for (i in 1:length(schemalist)){ + #print (i) + for (j in 1:length(schemalist[[i]])){ + #print (j) + tempstr=lines_split[[i]][(schemalist[[i]])[j]] + #print(tempstr) + tempschemastr=gsub("\\.","",strsplit(tempstr,'\\:')[[1]][1]) + schemas[tempschemastr] + if (tempschemastr %in% schemahad) {#print("!") + } + else{schemahad[count0]=tempschemastr + count0=count0+1} + } +} +for (i in 1:length(schemahad)){ + lines_rdf=paste(lines_rdf,schemas[schemahad[i]],"\n") +} + # RDF word list: ProvONElist=c("provone:Process","provone:InputPort","provone:OutputPort", "provone:DataLink","provone:SeqCtrlLink","provone:Workflow", "provone:User","provone:ProcessExec","provone:Data", "provone:Collection","provone:Visualization") -lines_rdf="" +#lines_rdf="" for (j in 1:length(lines_split)){ line_rdf="" lines_split[[j]] @@ -359,7 +396,7 @@ for (j in 1:length(lines_split)){ if (i==4){ tempword=gsub("\\}","",lines_split[[j]][4]) tempword=gsub("\\.","",tempword) - line_rdf=paste(ID,"a",tempword,";","\n") + line_rdf=paste("\n",ID,"a",tempword,";","\n") } else { tempword=gsub("\\.","",lines_split[[j]][i]) From afb68fcbdb769a52db473f03e72702ff8dc37bec Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 29 Jun 2017 18:33:49 -0500 Subject: [PATCH 041/318] Update sum_str.R --- R/sum_str.R | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/R/sum_str.R b/R/sum_str.R index 4aa2aa6..5a665e7 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -342,6 +342,10 @@ if (rm_break_anchors) { lines_content=templines[4:length(templines)] lines_split=strsplit(lines_content, " ") +baseURI="http://example.org/base/" +UserID="UserID" +FullURI=paste0(baseURI,UserID) + schemalist=list() schemas=c(rdfs="@prefix rdfs: .", @@ -391,6 +395,9 @@ for (j in 1:length(lines_split)){ title=lines_split[[j]][2] #ID ID=gsub("\\{","",lines_split[[j]][3]) + if (j==1){ + ID=paset0("\<",FullURI,"\>") + } for (i in 4:length(lines_split[[j]])){ tempword="" if (i==4){ From baabceabf39af2fffafd12cfd61c0d3c5c0fba0b Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 29 Jun 2017 18:35:43 -0500 Subject: [PATCH 042/318] Update sum_str.R --- R/sum_str.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index 5a665e7..6c94499 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -396,7 +396,7 @@ for (j in 1:length(lines_split)){ #ID ID=gsub("\\{","",lines_split[[j]][3]) if (j==1){ - ID=paset0("\<",FullURI,"\>") + ID=paset0("\\<",FullURI,"\\>") } for (i in 4:length(lines_split[[j]])){ tempword="" From 995686ea56d94bfe97dfa221d34dae8afebc51e0 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 29 Jun 2017 18:37:46 -0500 Subject: [PATCH 043/318] Update sum_str.R --- R/sum_str.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index 6c94499..2065809 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -396,7 +396,7 @@ for (j in 1:length(lines_split)){ #ID ID=gsub("\\{","",lines_split[[j]][3]) if (j==1){ - ID=paset0("\\<",FullURI,"\\>") + ID=paste0("\\<",FullURI,"\\>") } for (i in 4:length(lines_split[[j]])){ tempword="" From 4244d992f4919e513d90a1e60952bcdb4b184cd6 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 29 Jun 2017 18:40:13 -0500 Subject: [PATCH 044/318] Update sum_str.R --- R/sum_str.R | 1 + 1 file changed, 1 insertion(+) diff --git a/R/sum_str.R b/R/sum_str.R index 2065809..81b78d8 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -397,6 +397,7 @@ for (j in 1:length(lines_split)){ ID=gsub("\\{","",lines_split[[j]][3]) if (j==1){ ID=paste0("\\<",FullURI,"\\>") + ID=gsub("\\","",ID) } for (i in 4:length(lines_split[[j]])){ tempword="" From f71720758a1764880f42106ebb33d5e00e0c007e Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 29 Jun 2017 18:41:20 -0500 Subject: [PATCH 045/318] Update sum_str.R --- R/sum_str.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 81b78d8..a4103d3 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -396,8 +396,8 @@ for (j in 1:length(lines_split)){ #ID ID=gsub("\\{","",lines_split[[j]][3]) if (j==1){ - ID=paste0("\\<",FullURI,"\\>") - ID=gsub("\\","",ID) + ID=paste0("\<",FullURI,"\>") + #ID=gsub("\\","",ID) } for (i in 4:length(lines_split[[j]])){ tempword="" From 6fe0bdbc9540828a0e910ff6623812dee3aea627 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 29 Jun 2017 18:44:24 -0500 Subject: [PATCH 046/318] Update sum_str.R --- R/sum_str.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index a4103d3..d6e547e 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -396,7 +396,7 @@ for (j in 1:length(lines_split)){ #ID ID=gsub("\\{","",lines_split[[j]][3]) if (j==1){ - ID=paste0("\<",FullURI,"\>") + ID=paste0("<",FullURI,">") #ID=gsub("\\","",ID) } for (i in 4:length(lines_split[[j]])){ From 69fad7cdb9f6425b23e199f16682f0339d26766a Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 29 Jun 2017 18:54:26 -0500 Subject: [PATCH 047/318] Update sum_str.R --- R/sum_str.R | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index d6e547e..283aa24 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -422,7 +422,8 @@ for (j in 1:length(lines_split)){ } } - line_rdf=paste(line_rdf,"\t","rdfs:label","\"",title,"\"",".\n") + title=paste0("\"",title,"\"") + line_rdf=paste(line_rdf,"\t","rdfs:label",title,".\n") lines_rdf=paste(lines_rdf,line_rdf) } write(lines_rdf,file=outputfile2) From abee4b956f97eb845beb8b7c94ef643bc0cac6e1 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 29 Jun 2017 21:30:32 -0500 Subject: [PATCH 048/318] Update insert_breaks.R --- R/insert_breaks.R | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 4e6a234..2e985dc 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -156,12 +156,12 @@ insert_break <- function(level, } ### .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ### set parameter depending on level - #start <- paste0(rep("#", level), collapse = "") - #break_char = give_breakchar(level) - #sep = paste(rep(" ", 4 - level), collapse = "") - start <- paste0(rep("#", 3), collapse = "") - break_char = give_breakchar(3) - sep = paste(rep(" ", 4 - 3), collapse = "") + start <- paste0(rep("#", level), collapse = "") + break_char = give_breakchar(level) + sep = paste(rep(" ", 4 - level), collapse = "") + #start <- paste0(rep("#", 3), collapse = "") + #break_char = give_breakchar(3) + #sep = paste(rep(" ", 4 - 3), collapse = "") From 812385ffe230eeea193aac0e9d523e44750876db Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 29 Jun 2017 21:32:40 -0500 Subject: [PATCH 049/318] Update insert_breaks.R --- R/insert_breaks.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 2e985dc..f8077a0 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -343,9 +343,9 @@ help_insert <- function(x, #' @keywords internal find_title <- function(level) { #XJ Original codes: - #choices_input <- paste("level", 1:3) + choices_input <- paste("level", 1:3) #class_choices <- paste("class", 1:10) - choices_input <- paste(c("Workflow","Trace","Data Structure")) + #choices_input <- paste(c("Workflow","Trace","Data Structure")) #class_choices <- paste(c("Process","InputPort","OutputPort","DataLink","SeqCtrlLink","Workflow","User","hasSubProcess","sourcePToCL", # "CLtoDestP","hasInPort","hasOutPort","hasDefaultParam","DLToInPort","outPortToDL","inPortToDL","DLToOutPort", # "wasAttributedTo","wasDerivedFrom","ProcessExec","dataOnLink","used","wasGeneratedBy","wasAssociatedWith", From 166e1c5979b8d1650edad1342932e9069d531473 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 29 Jun 2017 21:45:46 -0500 Subject: [PATCH 050/318] Update sum_str.R --- R/sum_str.R | 1 + 1 file changed, 1 insertion(+) diff --git a/R/sum_str.R b/R/sum_str.R index 283aa24..4d23900 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -361,6 +361,7 @@ schemas=c(rdfs="@prefix rdfs: .", for (i in 1:length(lines_split)){ schemalist[[i]]=grep(":",lines_split[[i]]) } +scemalist=schemalist[which(schemalist>0)] schemahad=0 lines_rdf="" count0=1 From 8f6e54c0938ceb1bb5dc87ea2d657d4d312e89f9 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 29 Jun 2017 21:58:04 -0500 Subject: [PATCH 051/318] Update sum_str.R --- R/sum_str.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index 4d23900..de2a776 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -361,7 +361,7 @@ schemas=c(rdfs="@prefix rdfs: .", for (i in 1:length(lines_split)){ schemalist[[i]]=grep(":",lines_split[[i]]) } -scemalist=schemalist[which(schemalist>0)] +schemalist=schemalist[which(schemalist>0)] schemahad=0 lines_rdf="" count0=1 From 61154ef0bc835319c53adda4eefa68d45394aa95 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 29 Jun 2017 22:02:47 -0500 Subject: [PATCH 052/318] Update sum_str.R --- R/sum_str.R | 3 +++ 1 file changed, 3 insertions(+) diff --git a/R/sum_str.R b/R/sum_str.R index de2a776..fee5cd8 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -361,7 +361,10 @@ schemas=c(rdfs="@prefix rdfs: .", for (i in 1:length(lines_split)){ schemalist[[i]]=grep(":",lines_split[[i]]) } +lines_split=lines_split[which(schemalist>0)] +lines_split schemalist=schemalist[which(schemalist>0)] +schemalist schemahad=0 lines_rdf="" count0=1 From cb860fb80e7c7dd121464f1aef480023ca7bddf5 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 29 Jun 2017 23:19:55 -0500 Subject: [PATCH 053/318] Update sum_str.R --- R/sum_str.R | 44 +++++++++++++++++++++++++++++++++++++++----- 1 file changed, 39 insertions(+), 5 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index fee5cd8..1e5f19f 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -357,14 +357,49 @@ schemas=c(rdfs="@prefix rdfs: .", rdf="@prefix rdf: .", provone="@prefix provone: .", skos="@prefix skos: ") +# Using ":" to find class +for (i in 1:length(lines_split)){ + schemalist[[i]]=grep(":",lines_split[[i]]) +} +tempcount0=0 +schemalist1=list() +for (i in 1:length(schemalist)){ + if (length(schemalist[[i]])>0){ + tempcount0=tempcount0+1 + schemalist1[[tempcount0]]=schemalist[[i]] + } +} +schemalist1 +tempcount0=0 +lines_split1=list() +for (i in 1:length(schemalist)){ + if (length(schemalist[[i]])>0){ + tempcount0=tempcount0+1 + lines_split1[[tempcount0]]=lines_split[[i]] + } +} +lines_split1 + +lines_split=lines_split1 +schemalist=schemalist1 +lines_split1=schemalist for (i in 1:length(lines_split)){ - schemalist[[i]]=grep(":",lines_split[[i]]) + tempcount0=0 + for (j in 1:length(lines_split[[i]])){ + if (nchar(lines_split[[i]][j])>0){ + tempcount0=tempcount0+1 + lines_split1[[i]][tempcount0]=lines_split[[i]][j] + } + } +} +lines_split1 + +for (i in 1:length(lines_split1)){ + schemalist[[i]]=grep(":",lines_split1[[i]]) } -lines_split=lines_split[which(schemalist>0)] -lines_split -schemalist=schemalist[which(schemalist>0)] schemalist +lines_split=lines_split1 schemahad=0 lines_rdf="" count0=1 @@ -401,7 +436,6 @@ for (j in 1:length(lines_split)){ ID=gsub("\\{","",lines_split[[j]][3]) if (j==1){ ID=paste0("<",FullURI,">") - #ID=gsub("\\","",ID) } for (i in 4:length(lines_split[[j]])){ tempword="" From 6cbe7f96d75d887b09f5fbe39bcddd846f81f5d3 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 30 Jun 2017 00:13:16 -0500 Subject: [PATCH 054/318] Update insert_breaks.R --- R/insert_breaks.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index f8077a0..be38a28 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -390,7 +390,7 @@ find_title <- function(level) { choices = "", multiple = TRUE, options = list(create = TRUE, persist = FALSE, - createFilter = "^[a-zA-Z1-9]+\\s*=\\s*[a-zA-Z1-9]+$")) + createFilter = "^[a-zA-Z0-9]+\\s*=\\s*[a-zA-Z0-9]+$")) ) ) ,flex = c(0.8, 0.5, 3)) From 2a8e659bbc9b6ab97199a903ac629c82e35d37bf Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 30 Jun 2017 00:34:05 -0500 Subject: [PATCH 055/318] Update insert_breaks.R --- R/insert_breaks.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index be38a28..1655e05 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -390,7 +390,7 @@ find_title <- function(level) { choices = "", multiple = TRUE, options = list(create = TRUE, persist = FALSE, - createFilter = "^[a-zA-Z0-9]+\\s*=\\s*[a-zA-Z0-9]+$")) + createFilter = "^[a-zA-Z0-9\:]+\\s*=\\s*[a-zA-Z0-9]+$")) ) ) ,flex = c(0.8, 0.5, 3)) From 3c6c113ade5b8dd302b42d9f56d7d3ac43df7d8e Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 30 Jun 2017 00:36:34 -0500 Subject: [PATCH 056/318] Update insert_breaks.R --- R/insert_breaks.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 1655e05..504046a 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -390,7 +390,7 @@ find_title <- function(level) { choices = "", multiple = TRUE, options = list(create = TRUE, persist = FALSE, - createFilter = "^[a-zA-Z0-9\:]+\\s*=\\s*[a-zA-Z0-9]+$")) + createFilter = "^[a-zA-Z0-9:]+\\s*=\\s*[a-zA-Z0-9]+$")) ) ) ,flex = c(0.8, 0.5, 3)) From f5861a801653796b5c58029dff56b807bfe27124 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 30 Jun 2017 02:53:33 -0500 Subject: [PATCH 057/318] Add graph arguement --- R/sum_str.R | 107 +++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 90 insertions(+), 17 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 1e5f19f..de8f8a2 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -104,6 +104,7 @@ sum_str <- function(path_in = getSourceEditorContext()$path, title = TRUE, header = TRUE, rdf = FALSE, + graph=FALSE, ...) { ## ............................................................................ @@ -156,7 +157,8 @@ assert_number(granularity, lower = 1, upper = 3) last_sep = last_sep, title = title, header = header, - rdf=rdf) + rdf=rdf, + graph=graph) }) if (dir_out == "" && !is.null(file_out) && file_out == "object") { @@ -196,7 +198,8 @@ sum_str_helper <- function(path_in, last_sep, title, header, - rdf) { + rdf, + graph) { ## ............................................................................ ## argument interaction #### @@ -333,7 +336,7 @@ if (rm_break_anchors) { ## ............................................................................ ## output the pattern - if (rdf){ + if (rdf|graph){ #localwd=getwd() datetime <- format(Sys.time(), "%Y_%m_%d_%H_%M_%S") outputfile2 <- paste("RDF_output_file_",datetime,".txt",sep="") @@ -401,6 +404,7 @@ for (i in 1:length(lines_split1)){ schemalist lines_split=lines_split1 schemahad=0 + lines_rdf="" count0=1 for (i in 1:length(schemalist)){ @@ -427,47 +431,116 @@ ProvONElist=c("provone:Process","provone:InputPort","provone:OutputPort", "provone:User","provone:ProcessExec","provone:Data", "provone:Collection","provone:Visualization") #lines_rdf="" +#for (j in 1:1){ +nodesnames="" +nodesclasses="" +nodesfrom="" +nodesto="" +nodesproperty="" for (j in 1:length(lines_split)){ line_rdf="" - lines_split[[j]] + #lines_split[[j]] #title - title=lines_split[[j]][2] + title0=lines_split[[j]][2] + #ID ID=gsub("\\{","",lines_split[[j]][3]) - if (j==1){ - ID=paste0("<",FullURI,">") - } + #if (j==1){ + # ID=paste0("<",FullURI,">") + #} for (i in 4:length(lines_split[[j]])){ + #for (i in 4:4){ tempword="" + tempentity="" + temp_line="" if (i==4){ tempword=gsub("\\}","",lines_split[[j]][4]) tempword=gsub("\\.","",tempword) - line_rdf=paste("\n",ID,"a",tempword,";","\n") + #line_rdf=paste("\n",ID,"a",tempword,";","\n") + + nodesnames=paste0(nodesnames,title0," ") + nodesclasses=paste0(nodesclasses,tempword," ") + + title=paste0("<",title0,">") + line_rdf=paste("\n",title,"a",tempword) + if (i==length(lines_split[[j]])){ + line_rdf=paste(line_rdf,".","\n") + #print (1) + } + else{ + line_rdf=paste(line_rdf,";","\n") + #print (2) + #print (line_rdf) + } } else { + #print ("!") tempword=gsub("\\.","",lines_split[[j]][i]) if (i==length(lines_split[[j]])){ tempword=gsub("\\}","",tempword) } - if (tempword %in% ProvONElist){ - temp_line=paste("rdf:type",tempword,";") + if (grepl("=",tempword)){ + + tempwordlist=strsplit(tempword,"=") + tempentity=paste0("<",tempwordlist[[1]][2],">") + temp_line=paste(tempwordlist[[1]][1],tempentity) + + nodesfrom=paste0(nodesfrom,title0," ") + nodesto=paste0(nodesto,tempwordlist[[1]][2]," ") + nodesproperty=paste0(nodesproperty,tempwordlist[[1]][1]," ") + } + #if (tempword %in% ProvONElist){ + # temp_line=paste("rdf:type",tempword,";") + #} + #else { + # temp_line=paste("_",tempword,";") + #} + + #end session + if (i==length(lines_split[[j]])){ + temp_line=paste("\t",temp_line,".","\n") } else { - temp_line=paste("_",tempword,";") + temp_line=paste("\t",temp_line,";","\n") } - temp_line=paste("\t",temp_line,"\n") - line_rdf=paste(line_rdf,temp_line) + #print ("!!") + #print (i) + #print (temp_line) } + line_rdf=paste(line_rdf,temp_line) } - title=paste0("\"",title,"\"") - line_rdf=paste(line_rdf,"\t","rdfs:label",title,".\n") + #title=paste0("\"",title,"\"") + #line_rdf=paste(line_rdf,"\t","rdfs:label",title,".\n") + #line_rdf=paste(line_rdf,"\t","rdfs:label",title,".\n") lines_rdf=paste(lines_rdf,line_rdf) } -write(lines_rdf,file=outputfile2) +if (rdf){ + write(lines_rdf,file=outputfile2) print("Create a RDF file successfully. Please find the output file in:") print(getwd()) print(paste("Your file name is:",outputfile2)) +} +if (graph){ + nodesnames2=strsplit(nodesnames," ") +nodesclasses2=strsplit(nodesclasses," ") +nodes <- data.frame(name = nodesnames2[[1]], + class = nodesclasses2[[1]]) +nodes +nodesfrom2=strsplit(nodesfrom," ") +nodesto2=strsplit(nodesto," ") +nodesproperty2=strsplit(nodesproperty," ") +nesting <- data.frame(from = nodesfrom2[[1]], + to = nodesto2[[1]], + property = nodesproperty2[[1]]) +nesting +g3 <- graph_from_data_frame(nesting, directed=TRUE, vertices=nodes) +E(g3)$label <- E(g3)$property +print(g3, e=TRUE, v=TRUE) +plot(g3, edge.arrow.size=.2, edge.curved=.4) + } + + } # original below (delet else): else if (dir_out == "" && file_out == "object") { From 078f45e08d2d170925e0eace41a20c2ea2560989 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 30 Jun 2017 03:01:41 -0500 Subject: [PATCH 058/318] add domain --- R/sum_str.R | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index de8f8a2..222bc36 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -105,6 +105,9 @@ sum_str <- function(path_in = getSourceEditorContext()$path, header = TRUE, rdf = FALSE, graph=FALSE, + domain=FALSE, + baseURI="http://example.org/base/", + UserID="UserID" ...) { ## ............................................................................ @@ -158,7 +161,10 @@ assert_number(granularity, lower = 1, upper = 3) title = title, header = header, rdf=rdf, - graph=graph) + graph=graph, + domain=domain, + baseURI=baseURI, + UserID=UserID) }) if (dir_out == "" && !is.null(file_out) && file_out == "object") { @@ -199,7 +205,10 @@ sum_str_helper <- function(path_in, title, header, rdf, - graph) { + graph, + domain, + baseURI, + UserID) { ## ............................................................................ ## argument interaction #### @@ -345,8 +354,8 @@ if (rm_break_anchors) { lines_content=templines[4:length(templines)] lines_split=strsplit(lines_content, " ") -baseURI="http://example.org/base/" -UserID="UserID" +baseURI=baseURI +UserID=UserID FullURI=paste0(baseURI,UserID) schemalist=list() @@ -441,13 +450,16 @@ for (j in 1:length(lines_split)){ line_rdf="" #lines_split[[j]] #title - title0=lines_split[[j]][2] + if (domain){ + title0=paste0("<",FullURI,">") + } + else{ + title0=lines_split[[j]][2] + } #ID ID=gsub("\\{","",lines_split[[j]][3]) - #if (j==1){ - # ID=paste0("<",FullURI,">") - #} + for (i in 4:length(lines_split[[j]])){ #for (i in 4:4){ tempword="" From 2dd386593f5763f62463251252f36692558fafb2 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 30 Jun 2017 03:02:36 -0500 Subject: [PATCH 059/318] Update sum_str.R --- R/sum_str.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index 222bc36..c0399ba 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -107,7 +107,7 @@ sum_str <- function(path_in = getSourceEditorContext()$path, graph=FALSE, domain=FALSE, baseURI="http://example.org/base/", - UserID="UserID" + UserID="UserID", ...) { ## ............................................................................ From 767378f6a91d1557917c3dcddfd1634bd1215809 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 30 Jun 2017 03:05:51 -0500 Subject: [PATCH 060/318] Update sum_str.R --- R/sum_str.R | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index c0399ba..673e121 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -450,12 +450,15 @@ for (j in 1:length(lines_split)){ line_rdf="" #lines_split[[j]] #title - if (domain){ - title0=paste0("<",FullURI,">") + if (j==1){ + if (domain){ + title0=FullURI } else{ title0=lines_split[[j]][2] } + } + #ID ID=gsub("\\{","",lines_split[[j]][3]) From 39126bdeb47d568f4ad1d4f9cc80b9358d3bb9dd Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 30 Jun 2017 03:10:16 -0500 Subject: [PATCH 061/318] Update sum_str.R --- R/sum_str.R | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 673e121..1101f47 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -439,8 +439,6 @@ ProvONElist=c("provone:Process","provone:InputPort","provone:OutputPort", "provone:DataLink","provone:SeqCtrlLink","provone:Workflow", "provone:User","provone:ProcessExec","provone:Data", "provone:Collection","provone:Visualization") -#lines_rdf="" -#for (j in 1:1){ nodesnames="" nodesclasses="" nodesfrom="" @@ -450,14 +448,13 @@ for (j in 1:length(lines_split)){ line_rdf="" #lines_split[[j]] #title - if (j==1){ - if (domain){ + if (j==1&domain){ title0=FullURI } else{ title0=lines_split[[j]][2] } - } + #ID From 935db89800c57396154b0ee10cec69add0657967 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 30 Jun 2017 03:18:48 -0500 Subject: [PATCH 062/318] Update sum_str.R --- R/sum_str.R | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index 1101f47..dec9204 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -348,7 +348,8 @@ if (rm_break_anchors) { if (rdf|graph){ #localwd=getwd() datetime <- format(Sys.time(), "%Y_%m_%d_%H_%M_%S") - outputfile2 <- paste("RDF_output_file_",datetime,".txt",sep="") + format=".ttl" #".txt" + outputfile2 <- paste("RDF_output_file_",datetime,format,sep="") write(lines,file=outputfile2) templines=readLines(outputfile2) lines_content=templines[4:length(templines)] From cfa7dd2369ef933797aeb348a4aa99ae06bb5ee8 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 30 Jun 2017 03:19:48 -0500 Subject: [PATCH 063/318] ttl --- R/sum_str.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index dec9204..3197b13 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -348,8 +348,8 @@ if (rm_break_anchors) { if (rdf|graph){ #localwd=getwd() datetime <- format(Sys.time(), "%Y_%m_%d_%H_%M_%S") - format=".ttl" #".txt" - outputfile2 <- paste("RDF_output_file_",datetime,format,sep="") + fileformat=".ttl" #".txt" + outputfile2 <- paste("RDF_output_file_",datetime,fileformat,sep="") write(lines,file=outputfile2) templines=readLines(outputfile2) lines_content=templines[4:length(templines)] From 9f24caf4708909a182e97786b27a911e7179e306 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 7 Jul 2017 01:58:37 -0500 Subject: [PATCH 064/318] Update sum_str.R --- R/sum_str.R | 280 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 279 insertions(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index 3197b13..ae63c70 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -345,7 +345,7 @@ if (rm_break_anchors) { ## ............................................................................ ## output the pattern - if (rdf|graph){ + if (rdf=="test"){ #localwd=getwd() datetime <- format(Sys.time(), "%Y_%m_%d_%H_%M_%S") fileformat=".ttl" #".txt" @@ -555,6 +555,284 @@ plot(g3, edge.arrow.size=.2, edge.curved=.4) } + else if (rdf="ttl"|graph){ + datetime <- format(Sys.time(), "%Y_%m_%d_%H_%M_%S") + fileformat=".ttl" #".txt" + outputfile2 <- paste("RDF_output_file_",datetime,fileformat,sep="") + write(lines,file=outputfile2) + templines=readLines(outputfile2) +lines_content=templines[4:length(templines)] +lines_split=strsplit(lines_content, " ") + +baseURI=baseURI +UserID=UserID +FullURI=paste0(baseURI,UserID,"/") + +schemalist=list() + +schemas=c(rdfs="@prefix rdfs: .", + xsd="@prefix xsd: .", + owl="@prefix owl: .", + dcterms="@prefix dcterms: .", + prov="@prefix prov: .", + wfms="@prefix wfms: .", + rdf="@prefix rdf: .", + provone="@prefix provone: .", + skos="@prefix skos: ") +# Using ":" to find class +for (i in 1:length(lines_split)){ + schemalist[[i]]=grep(":",lines_split[[i]]) +} +tempcount0=0 +schemalist1=list() +for (i in 1:length(schemalist)){ + if (length(schemalist[[i]])>0){ + tempcount0=tempcount0+1 + schemalist1[[tempcount0]]=schemalist[[i]] + } +} +schemalist1 + +tempcount0=0 +lines_split1=list() +for (i in 1:length(schemalist)){ + if (length(schemalist[[i]])>0){ + tempcount0=tempcount0+1 + lines_split1[[tempcount0]]=lines_split[[i]] + } +} +lines_split1 + +lines_split=lines_split1 +schemalist=schemalist1 +lines_split1=schemalist +for (i in 1:length(lines_split)){ + tempcount0=0 + for (j in 1:length(lines_split[[i]])){ + if (nchar(lines_split[[i]][j])>0){ + tempcount0=tempcount0+1 + lines_split1[[i]][tempcount0]=lines_split[[i]][j] + } + } +} +lines_split1 + +for (i in 1:length(lines_split1)){ + schemalist[[i]]=grep(":",lines_split1[[i]]) +} +schemalist +lines_split=lines_split1 + +infolist=lines_split +for (i in 1:length(infolist)){ + templevel=strsplit(infolist[[i]][1],"\\t") + infolist[[i]][1]=nchar(templevel[[1]][2]) + #infodf$level[i]=lines_split[[i]][1] +} +for (i in 1:length(infolist)){ + infolist[[i]][3]=gsub("\\{","",infolist[[i]][3]) + infolist[[i]][3]=gsub("\\#","",infolist[[i]][3]) + #infodf$level[i]=lines_split[[i]][1] +} +for (i in 1:length(infolist)){ + infolist[[i]][length(infolist[[i]])]=gsub("\\}","",infolist[[i]][length(infolist[[i]])]) + infolist[[i]][length(infolist[[i]])]=gsub("\\.","",infolist[[i]][length(infolist[[i]])]) + #infodf$level[i]=lines_split[[i]][1] +} +infolist + +schemahad=0 +lines_rdf="" +count0=1 +# add prefix +for (i in 1:length(schemalist)){ + #print (i) + for (j in 1:length(schemalist[[i]])){ + #print (j) + tempstr=lines_split[[i]][(schemalist[[i]])[j]] + #print(tempstr) + tempschemastr=gsub("\\.","",strsplit(tempstr,'\\:')[[1]][1]) + schemas[tempschemastr] + if (tempschemastr %in% schemahad) {#print("!") + } + else{schemahad[count0]=tempschemastr + count0=count0+1} + } +} +for (i in 1:length(schemahad)){ + lines_rdf=paste(lines_rdf,schemas[schemahad[i]],"\n") +} + +# RDF word list: +ProvONElist=c("provone:Process","provone:InputPort","provone:OutputPort", + "provone:DataLink","provone:SeqCtrlLink","provone:Workflow", + "provone:User","provone:ProcessExec","provone:Data", + "provone:Collection","provone:Visualization") + +nodesnames=nodesclasses=nodesfrom=nodesto=nodesproperty=parentclass=property=line_rdf_vector="" +templevel=parentlevel=parentindex=0 +levelvector=rep(0,3) + +for (j in 1:length(infolist)){ + line_rdf="" + title0=infolist[[j]][2] + ID=infolist[[j]][3] + parentlevel=templevel + templevel=infolist[[j]][1] + tempclass=infolist[[j]][4] + if (infolist[[j]][1]==1){ + if (levelvector[1]==0){ + levelvector[1]=j + } + } + if (infolist[[j]][1]==2){ + if (levelvector[2]==0){ + levelvector[2]=j + } + } + if (infolist[[j]][1]==3){ + if (levelvector[3]==0){ + levelvector[3]=j + } + } + if (as.numeric(parentlevel)!=0){ + if (as.numeric(templevel)>as.numeric(parentlevel)){ + parentindex=j-1 + parentclass=infolist[[j-1]][4] + } + else if (templevel==parentlevel){ + parentindex=levelvector[as.numeric(templevel)-1] + parentclass=infolist[[as.numeric(parentindex)]][4] + } + else { + levelvector[templevel]=j + parentindex=levelvector[as.numeric(templevel)-1] + } + } + # judge association: + if (parentclass=="provone:Process"&tempclass=="provone:Process"){ + property="provone:hasSubProcess" + } + else if (parentclass=="provone:Process"&(tempclass=="provone:Data"|tempclass=="provone:Visualization")){ + property="provone:wasDerivedFrom" + } + + if (property=="provone:hasSubProcess"){ + nodesfrom=paste0(nodesfrom,infolist[[as.numeric(parentindex)]][2]," ") + nodesto=paste0(nodesto,infolist[[j]][2]," ") + nodesproperty=paste0(nodesproperty,property," ") + } + else if(property=="provone:wasDerivedFrom"){ + nodesfrom=paste0(nodesfrom,infolist[[as.numeric(parentindex)]][2]," ") + nodesto=paste0(nodesto,infolist[[j]][2]," ") + nodesproperty=paste0(nodesproperty,property," ") + nodesfrom=paste0(nodesfrom,infolist[[j]][2]," ") + nodesto=paste0(nodesto,infolist[[as.numeric(parentindex)]][2]," ") + nodesproperty=paste0(nodesproperty,"provone:hasMember"," ") + } + + for (i in 4:length(infolist[[j]])){ + tempword="" + tempentity="" + temp_line="" + if (i==4){ + tempword=infolist[[j]][4] + nodesnames=paste0(nodesnames,title0," ") + nodesclasses=paste0(nodesclasses,tempword," ") + + entityname=paste0(FullURI,ID) + title=paste0("<",entityname,">") + line_rdf=paste("\n",title,"a",tempword) + + if (i==length(infolist[[j]])){ + line_rdf=paste(line_rdf,";","\n") + #line_rdf=paste(line_rdf,"\t","rdfs:label",title0,".","\n") + line_rdf=paste(line_rdf,"\t","rdfs:label",title0,";","\n")#,".","\n") + } + else{ + line_rdf=paste(line_rdf,";","\n") + } + + }# out of if i==4 + else { # i>4 + tempword=infolist[[j]][i] + # old association + if (grepl("=",tempword)){ + + #tempwordlist=strsplit(tempword,"=") + #tempentity=paste0("<",tempwordlist[[1]][2],">") + #temp_line=paste(tempwordlist[[1]][1],tempentity) + + #nodesfrom=paste0(nodesfrom,title0," ") + #nodesto=paste0(nodesto,tempwordlist[[1]][2]," ") + #nodesproperty=paste0(nodesproperty,tempwordlist[[1]][1]," ") + } + #end session + if (i==length(infolist[[j]])){ + temp_line=paste("\t",temp_line,";","\n") + #temp_line=paste(temp_line,"\t","rdfs:label",title0,".","\n") + temp_line=paste(temp_line,"\t","rdfs:label",title0,";","\n")#,".","\n") + } + else { + temp_line=paste("\t",temp_line,";","\n") + } + } + line_rdf=paste(line_rdf,temp_line) + line_rdf_vector[j]=line_rdf + } + #lines_rdf=paste(lines_rdf,line_rdf) +} + +library(igraph) +nodesnames2=strsplit(nodesnames," ") +nodesclasses2=strsplit(nodesclasses," ") +nodes <- data.frame(name = nodesnames2[[1]], + class = nodesclasses2[[1]]) +nodes +nodesfrom2=strsplit(nodesfrom," ") +nodesto2=strsplit(nodesto," ") +nodesproperty2=strsplit(nodesproperty," ") +nesting <- data.frame(from = nodesfrom2[[1]], + to = nodesto2[[1]], + property = nodesproperty2[[1]]) +nesting +g3 <- graph_from_data_frame(nesting, directed=TRUE, vertices=nodes) +E(g3)$label <- E(g3)$property + +titles=IDs=0 +for (i in 1:length(infolist)){ + titles[i]=infolist[[i]][2] + IDs[i]=infolist[[i]][3] +} + +for (i in 1:length(line_rdf_vector)){ + tempnumber=which(nesting$from==titles[i]) + for (j in 1:length(tempnumber)){ + entityname2=paste0("<",FullURI,IDs[which(titles==nesting$to[tempnumber[j]])],">") + if (j==length(tempnumber)){ + line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nesting$property[tempnumber[j]],entityname2,".","\n")} + else{line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nesting$property[tempnumber[j]],entityname2,";","\n")} + + } +} + +for (i in 1:length(line_rdf_vector)){ + lines_rdf=paste(lines_rdf,line_rdf_vector[i]) +} + +if (rdf="ttl"){ + write(lines_rdf,file=outputfile2) +print("Create a RDF file successfully. Please find the output file in:") +print(getwd()) +print(paste("Your file name is:",outputfile2)) +} +if (graph){ +print(g3, e=TRUE, v=TRUE) +plot(g3, edge.arrow.size=.2, edge.curved=.4) + } + + + } # original below (delet else): else if (dir_out == "" && file_out == "object") { lines From 24b6a18feec2d5d06178b27726782111dc45ef37 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 7 Jul 2017 02:00:17 -0500 Subject: [PATCH 065/318] Update sum_str.R --- R/sum_str.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index ae63c70..c51c7fc 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -555,7 +555,7 @@ plot(g3, edge.arrow.size=.2, edge.curved=.4) } - else if (rdf="ttl"|graph){ + else if (rdf=="ttl"|graph){ datetime <- format(Sys.time(), "%Y_%m_%d_%H_%M_%S") fileformat=".ttl" #".txt" outputfile2 <- paste("RDF_output_file_",datetime,fileformat,sep="") From e648591ddd5a874edc13de2cdbae665911ab1bcf Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 7 Jul 2017 02:02:23 -0500 Subject: [PATCH 066/318] Update sum_str.R --- R/sum_str.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index c51c7fc..827f57c 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -528,7 +528,7 @@ for (j in 1:length(lines_split)){ #line_rdf=paste(line_rdf,"\t","rdfs:label",title,".\n") lines_rdf=paste(lines_rdf,line_rdf) } -if (rdf){ +if (rdf=="test"){ write(lines_rdf,file=outputfile2) print("Create a RDF file successfully. Please find the output file in:") print(getwd()) @@ -820,7 +820,7 @@ for (i in 1:length(line_rdf_vector)){ lines_rdf=paste(lines_rdf,line_rdf_vector[i]) } -if (rdf="ttl"){ +if (rdf=="ttl"){ write(lines_rdf,file=outputfile2) print("Create a RDF file successfully. Please find the output file in:") print(getwd()) From 2a4a4a0e68202b4a3abfda7ef047a0684e2940ef Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Wed, 12 Jul 2017 21:27:01 -0500 Subject: [PATCH 067/318] Update insert_breaks.R --- R/insert_breaks.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 504046a..03e404d 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -269,7 +269,7 @@ help_create_title <- function(start = "##", # create a text that starts with start, adds sep and then spaces up to margin # too long texts will be truncated if (fill == "") return(NULL) - text <- paste0(start, sep, fill) + text <- paste0("starthere",start,"sephere", sep,"fillhere", fill) extension <- paste0(rep(" ", max(0, length - nchar(end) - nchar(text))), From 79f303a959f542da22aec2afd0dba33455ffb53d Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Wed, 12 Jul 2017 21:31:00 -0500 Subject: [PATCH 068/318] Update insert_breaks.R --- R/insert_breaks.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 03e404d..504046a 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -269,7 +269,7 @@ help_create_title <- function(start = "##", # create a text that starts with start, adds sep and then spaces up to margin # too long texts will be truncated if (fill == "") return(NULL) - text <- paste0("starthere",start,"sephere", sep,"fillhere", fill) + text <- paste0(start, sep, fill) extension <- paste0(rep(" ", max(0, length - nchar(end) - nchar(text))), From 247b633868968b6262d7d5241721cf121bcb0ced Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Wed, 12 Jul 2017 22:20:26 -0500 Subject: [PATCH 069/318] Update insert_breaks.R --- R/insert_breaks.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 504046a..053f880 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -132,8 +132,8 @@ insert_break <- function(level, creators <- setNames(Map(create_creators, start = c("", "#", ".", "")), c("get_title", "get_id", "get_class","get_attribute")) - fill <- create_fill(title = ret_value$text1, - id = ret_value$id, + fill <- create_fill(title = paste0("@title",ret_value$text1), + id = paste0("@id",ret_value$id), classes = ret_value$classes, attributes = ret_value$keyvaluepairs, function_container = creators) From 23fcac18a3db449c89c1f85af008bb9e1433dbd3 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Wed, 12 Jul 2017 22:25:30 -0500 Subject: [PATCH 070/318] Update insert_breaks.R --- R/insert_breaks.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 053f880..36b8ba1 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -132,8 +132,8 @@ insert_break <- function(level, creators <- setNames(Map(create_creators, start = c("", "#", ".", "")), c("get_title", "get_id", "get_class","get_attribute")) - fill <- create_fill(title = paste0("@title",ret_value$text1), - id = paste0("@id",ret_value$id), + fill <- create_fill(title = paste0("@title:",ret_value$text1), + id = paste0("@id:",ret_value$id), classes = ret_value$classes, attributes = ret_value$keyvaluepairs, function_container = creators) From fd536cbd8c797e64d1a63b83aa19214a1b634570 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Wed, 12 Jul 2017 22:27:48 -0500 Subject: [PATCH 071/318] Update insert_breaks.R --- R/insert_breaks.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 36b8ba1..60c9393 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -132,9 +132,9 @@ insert_break <- function(level, creators <- setNames(Map(create_creators, start = c("", "#", ".", "")), c("get_title", "get_id", "get_class","get_attribute")) - fill <- create_fill(title = paste0("@title:",ret_value$text1), + fill <- create_fill(title = paste0("@label:",ret_value$text1), id = paste0("@id:",ret_value$id), - classes = ret_value$classes, + classes = paste0("@type:",ret_value$classes), attributes = ret_value$keyvaluepairs, function_container = creators) From 73ea798a5b8c2b236be1abe098a96a19dc6cf0c5 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Wed, 12 Jul 2017 22:59:06 -0500 Subject: [PATCH 072/318] Update insert_breaks.R --- R/insert_breaks.R | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 60c9393..38f92a7 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -132,11 +132,11 @@ insert_break <- function(level, creators <- setNames(Map(create_creators, start = c("", "#", ".", "")), c("get_title", "get_id", "get_class","get_attribute")) - fill <- create_fill(title = paste0("@label:",ret_value$text1), - id = paste0("@id:",ret_value$id), - classes = paste0("@type:",ret_value$classes), - attributes = ret_value$keyvaluepairs, - function_container = creators) + fill <- create_fill(id = paste0("@id:",ret_value$id), + classes = paste0("@type:",ret_value$classes), + title = paste0("label:",ret_value$text1), + attributes = ret_value$keyvaluepairs, + function_container = creators) } else { fill <- ret_value$text1 From fd9f856168964834699b9f2cb7ba2dc9e402dfb3 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Wed, 12 Jul 2017 23:05:01 -0500 Subject: [PATCH 073/318] Update insert_breaks.R --- R/insert_breaks.R | 1 + 1 file changed, 1 insertion(+) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 38f92a7..d9fb166 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -132,6 +132,7 @@ insert_break <- function(level, creators <- setNames(Map(create_creators, start = c("", "#", ".", "")), c("get_title", "get_id", "get_class","get_attribute")) + #tempstring=ret_value$id fill <- create_fill(id = paste0("@id:",ret_value$id), classes = paste0("@type:",ret_value$classes), title = paste0("label:",ret_value$text1), From 51744f3b4c63946a0463add7a16cb844187a4e5c Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Wed, 12 Jul 2017 23:30:39 -0500 Subject: [PATCH 074/318] Update insert_breaks.R --- R/insert_breaks.R | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index d9fb166..8e9800e 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -270,7 +270,8 @@ help_create_title <- function(start = "##", # create a text that starts with start, adds sep and then spaces up to margin # too long texts will be truncated if (fill == "") return(NULL) - text <- paste0(start, sep, fill) + #text <- paste0(start, sep, fill) + text <- paste0(start, "{", fill) extension <- paste0(rep(" ", max(0, length - nchar(end) - nchar(text))), From 85023aa907120a5e0fb1f82f4412b1836e962d0b Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 13 Jul 2017 00:43:25 -0500 Subject: [PATCH 075/318] Update insert_breaks.R --- R/insert_breaks.R | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 8e9800e..7b5bfc0 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -130,12 +130,14 @@ insert_break <- function(level, if (ret_value$add_semantics) { # create fill creators <- setNames(Map(create_creators, - start = c("", "#", ".", "")), - c("get_title", "get_id", "get_class","get_attribute")) + #start = c("", "#", ".", "")), + start = c("", "", "", "")), + #c("get_title", "get_id", "get_class","get_attribute")) + c("get_id", "get_class", "get_title", "get_attribute")) #tempstring=ret_value$id - fill <- create_fill(id = paste0("@id:",ret_value$id), - classes = paste0("@type:",ret_value$classes), - title = paste0("label:",ret_value$text1), + fill <- create_fill(id = paste0("\\"@id\\":",ret_value$id), + classes = paste0("\\"@type\\":",ret_value$classes), + title = paste0("\\"label\\":",ret_value$text1), attributes = ret_value$keyvaluepairs, function_container = creators) @@ -270,8 +272,7 @@ help_create_title <- function(start = "##", # create a text that starts with start, adds sep and then spaces up to margin # too long texts will be truncated if (fill == "") return(NULL) - #text <- paste0(start, sep, fill) - text <- paste0(start, "{", fill) + text <- paste0(start, sep, fill) extension <- paste0(rep(" ", max(0, length - nchar(end) - nchar(text))), From 5fd7de160e8020b16ea00776b232972ec95005da Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 13 Jul 2017 01:06:16 -0500 Subject: [PATCH 076/318] Update insert_breaks.R --- R/insert_breaks.R | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 7b5bfc0..2eaf13d 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -135,9 +135,9 @@ insert_break <- function(level, #c("get_title", "get_id", "get_class","get_attribute")) c("get_id", "get_class", "get_title", "get_attribute")) #tempstring=ret_value$id - fill <- create_fill(id = paste0("\\"@id\\":",ret_value$id), - classes = paste0("\\"@type\\":",ret_value$classes), - title = paste0("\\"label\\":",ret_value$text1), + fill <- create_fill(id = paste0("\"@id\":",ret_value$id), + classes = paste0("\"@type\":",ret_value$classes), + title = paste0("\"label\":",ret_value$text1), attributes = ret_value$keyvaluepairs, function_container = creators) From a7017a919715736a7e6f3c64d4da6b1b1a239504 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 13 Jul 2017 01:23:14 -0500 Subject: [PATCH 077/318] Update insert_breaks.R --- R/insert_breaks.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 2eaf13d..122849a 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -131,7 +131,7 @@ insert_break <- function(level, # create fill creators <- setNames(Map(create_creators, #start = c("", "#", ".", "")), - start = c("", "", "", "")), + start = c("!", "", "", "")), #c("get_title", "get_id", "get_class","get_attribute")) c("get_id", "get_class", "get_title", "get_attribute")) #tempstring=ret_value$id From 6c834b0235febad45ac7df5ae2be8753881de52d Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 13 Jul 2017 01:31:27 -0500 Subject: [PATCH 078/318] Update insert_breaks.R --- R/insert_breaks.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 122849a..ee1703f 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -131,7 +131,7 @@ insert_break <- function(level, # create fill creators <- setNames(Map(create_creators, #start = c("", "#", ".", "")), - start = c("!", "", "", "")), + start = c("", "", "!", "")), #c("get_title", "get_id", "get_class","get_attribute")) c("get_id", "get_class", "get_title", "get_attribute")) #tempstring=ret_value$id From 69975f59ef22ea67b0551342bf55a0d0c8ba4644 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 13 Jul 2017 01:39:12 -0500 Subject: [PATCH 079/318] Update insert_breaks.R --- R/insert_breaks.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index ee1703f..2eaf13d 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -131,7 +131,7 @@ insert_break <- function(level, # create fill creators <- setNames(Map(create_creators, #start = c("", "#", ".", "")), - start = c("", "", "!", "")), + start = c("", "", "", "")), #c("get_title", "get_id", "get_class","get_attribute")) c("get_id", "get_class", "get_title", "get_attribute")) #tempstring=ret_value$id From 0a5c796ea00faf1f2d58949022f47e415e9888b6 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 13 Jul 2017 01:44:32 -0500 Subject: [PATCH 080/318] Update insert_breaks.R --- R/insert_breaks.R | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 2eaf13d..4d88524 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -272,7 +272,13 @@ help_create_title <- function(start = "##", # create a text that starts with start, adds sep and then spaces up to margin # too long texts will be truncated if (fill == "") return(NULL) - text <- paste0(start, sep, fill) + + #text <- paste0(start, sep, fill) + text <- paste0(start, sep, paste0("\"@id\":",ret_value$id), + paste0("\"@type\":",ret_value$classes), + paste0("\"label\":",ret_value$text1),ret_value$keyvaluepairs) + + extension <- paste0(rep(" ", max(0, length - nchar(end) - nchar(text))), From 45a1283ec576e37063601b5ebabc280617939e5b Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 13 Jul 2017 01:46:46 -0500 Subject: [PATCH 081/318] Update insert_breaks.R --- R/insert_breaks.R | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 4d88524..55d5dd6 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -273,10 +273,10 @@ help_create_title <- function(start = "##", # too long texts will be truncated if (fill == "") return(NULL) - #text <- paste0(start, sep, fill) - text <- paste0(start, sep, paste0("\"@id\":",ret_value$id), - paste0("\"@type\":",ret_value$classes), - paste0("\"label\":",ret_value$text1),ret_value$keyvaluepairs) + text <- paste0(start, sep, fill) + #text <- paste0(start, sep, paste0("\"@id\":",ret_value$id), + # paste0("\"@type\":",ret_value$classes), + # paste0("\"label\":",ret_value$text1),ret_value$keyvaluepairs) From 17e1b40e7f23306f026e20baaf3f53f519669183 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 13 Jul 2017 01:50:05 -0500 Subject: [PATCH 082/318] Update utils.R --- R/utils.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/utils.R b/R/utils.R index 86d7784..ac3be75 100644 --- a/R/utils.R +++ b/R/utils.R @@ -138,9 +138,9 @@ create_fill <- function(title = "title", attributes, function_container) { with(function_container, paste( - get_title(title), + encl(get_id(id), - papply(classes, get_class), + papply(classes, get_class),get_title(title), papply(rm_space(attributes), get_attribute)) ) ) From 0eda00ff32ef2db387682fa03ff62b8baed48cdd Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 13 Jul 2017 01:50:41 -0500 Subject: [PATCH 083/318] Update utils.R --- R/utils.R | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/R/utils.R b/R/utils.R index ac3be75..c508c5d 100644 --- a/R/utils.R +++ b/R/utils.R @@ -138,7 +138,10 @@ create_fill <- function(title = "title", attributes, function_container) { with(function_container, paste( - + #get_title(title), + #encl(get_id(id), + # papply(classes, get_class), + # papply(rm_space(attributes), get_attribute)) encl(get_id(id), papply(classes, get_class),get_title(title), papply(rm_space(attributes), get_attribute)) From c4e29992848851a6fcf4f1dbb77a9f000e54342e Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 13 Jul 2017 02:25:42 -0500 Subject: [PATCH 084/318] Update insert_breaks.R --- R/insert_breaks.R | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 55d5dd6..0f67dc6 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -402,7 +402,14 @@ find_title <- function(level) { createFilter = "^[a-zA-Z0-9:]+\\s*=\\s*[a-zA-Z0-9]+$")) ) ) - ,flex = c(0.8, 0.5, 3)) + ,flex = c(0.8, 0.5, 3) + ), + fillRow( + checkboxInput("jsonld_style", "JSON-LD style", + value = FALSE, + width = "150px"), + flex = c(1) + ), ) ) From 16a7719034f6e5d7b68c603276fd4db9213cdd9d Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 13 Jul 2017 02:36:52 -0500 Subject: [PATCH 085/318] Update insert_breaks.R --- R/insert_breaks.R | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 0f67dc6..f4cf750 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -408,7 +408,10 @@ find_title <- function(level) { checkboxInput("jsonld_style", "JSON-LD style", value = FALSE, width = "150px"), - flex = c(1) + checkboxInput("default_style", "Default style", + value = TRUE, + width = "150px"), + flex = c(1,1) ), ) ) From d2a44c80c500331c54fee80803312ce5eb8ec04c Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 13 Jul 2017 02:40:23 -0500 Subject: [PATCH 086/318] Update insert_breaks.R --- R/insert_breaks.R | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index f4cf750..b748170 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -424,7 +424,10 @@ find_title <- function(level) { id = input$pandoc_id, level = input$level, classes = input$classes, - keyvaluepairs = input$keyvaluepairs)) + keyvaluepairs = input$keyvaluepairs, + jsonld_style=input$jsonld_style, + default_style=input$default_style + )) observeEvent(input$done, { stopApp(eval(listout)) From ad7a3c4fb820007dc5c8bbf2b8c6b8878eeed513 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 13 Jul 2017 02:48:43 -0500 Subject: [PATCH 087/318] Update insert_breaks.R --- R/insert_breaks.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index b748170..86f57b4 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -411,7 +411,7 @@ find_title <- function(level) { checkboxInput("default_style", "Default style", value = TRUE, width = "150px"), - flex = c(1,1) + flex = c(1, 1.5) ), ) ) From 00797bff8dc42e99e72ef27533a501d5cd1c3925 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 13 Jul 2017 02:56:52 -0500 Subject: [PATCH 088/318] Update insert_breaks.R --- R/insert_breaks.R | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 86f57b4..b51378f 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -352,6 +352,7 @@ help_insert <- function(x, #' @keywords internal find_title <- function(level) { #XJ Original codes: + styles_input <- paste(c("Default","JSON-LD")) choices_input <- paste("level", 1:3) #class_choices <- paste("class", 1:10) #choices_input <- paste(c("Workflow","Trace","Data Structure")) @@ -405,13 +406,16 @@ find_title <- function(level) { ,flex = c(0.8, 0.5, 3) ), fillRow( - checkboxInput("jsonld_style", "JSON-LD style", - value = FALSE, - width = "150px"), - checkboxInput("default_style", "Default style", - value = TRUE, - width = "150px"), - flex = c(1, 1.5) + selectInput("style", " ", width = "200px", + choices = styles_input, + selected = styles_input[level]) + #checkboxInput("jsonld_style", "JSON-LD style", + # value = FALSE, + # width = "150px"), + #checkboxInput("default_style", "Default style", + # value = TRUE, + # width = "150px"), + # flex = c(1, 1.5) ), ) ) @@ -425,8 +429,9 @@ find_title <- function(level) { level = input$level, classes = input$classes, keyvaluepairs = input$keyvaluepairs, - jsonld_style=input$jsonld_style, - default_style=input$default_style + style=input$style + #jsonld_style=input$jsonld_style, + #default_style=input$default_style )) observeEvent(input$done, { From c8672a4188c587dff6672f5db9b56529393a57ec Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 13 Jul 2017 02:58:22 -0500 Subject: [PATCH 089/318] Update insert_breaks.R --- R/insert_breaks.R | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index b51378f..f8ae397 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -405,10 +405,10 @@ find_title <- function(level) { ) ,flex = c(0.8, 0.5, 3) ), - fillRow( - selectInput("style", " ", width = "200px", - choices = styles_input, - selected = styles_input[level]) + #fillRow( + # selectInput("style", " ", width = "200px", + # choices = styles_input, + # selected = styles_input[level]) #checkboxInput("jsonld_style", "JSON-LD style", # value = FALSE, # width = "150px"), @@ -416,7 +416,7 @@ find_title <- function(level) { # value = TRUE, # width = "150px"), # flex = c(1, 1.5) - ), + #), ) ) @@ -429,7 +429,7 @@ find_title <- function(level) { level = input$level, classes = input$classes, keyvaluepairs = input$keyvaluepairs, - style=input$style + #style=input$style #jsonld_style=input$jsonld_style, #default_style=input$default_style )) From ad14076d2102cd2fce989f966f4e98dd15dc428b Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 13 Jul 2017 03:03:21 -0500 Subject: [PATCH 090/318] Update insert_breaks.R --- R/insert_breaks.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index f8ae397..9fb7de5 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -352,7 +352,7 @@ help_insert <- function(x, #' @keywords internal find_title <- function(level) { #XJ Original codes: - styles_input <- paste(c("Default","JSON-LD")) + #styles_input <- paste(c("Default","JSON-LD")) choices_input <- paste("level", 1:3) #class_choices <- paste("class", 1:10) #choices_input <- paste(c("Workflow","Trace","Data Structure")) From 40652ecf6ffcca109732ec51b2503e08a1c60305 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 13 Jul 2017 03:07:03 -0500 Subject: [PATCH 091/318] Update insert_breaks.R --- R/insert_breaks.R | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 9fb7de5..7c07c32 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -404,7 +404,8 @@ find_title <- function(level) { ) ) ,flex = c(0.8, 0.5, 3) - ), + ) + #, #fillRow( # selectInput("style", " ", width = "200px", # choices = styles_input, From 529a5eef82bf9362d983b730da9cd88bbeedaf37 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 13 Jul 2017 03:07:46 -0500 Subject: [PATCH 092/318] Update insert_breaks.R --- R/insert_breaks.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 7c07c32..2ac24df 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -429,7 +429,7 @@ find_title <- function(level) { id = input$pandoc_id, level = input$level, classes = input$classes, - keyvaluepairs = input$keyvaluepairs, + keyvaluepairs = input$keyvaluepairs #style=input$style #jsonld_style=input$jsonld_style, #default_style=input$default_style From 7107b5ddb61564254fd0e24f060584779d32a8ca Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 13 Jul 2017 03:13:28 -0500 Subject: [PATCH 093/318] Update insert_breaks.R --- R/insert_breaks.R | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 2ac24df..4ef4316 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -405,19 +405,19 @@ find_title <- function(level) { ) ,flex = c(0.8, 0.5, 3) ) - #, - #fillRow( + , + fillRow( # selectInput("style", " ", width = "200px", # choices = styles_input, # selected = styles_input[level]) - #checkboxInput("jsonld_style", "JSON-LD style", - # value = FALSE, - # width = "150px"), - #checkboxInput("default_style", "Default style", - # value = TRUE, - # width = "150px"), - # flex = c(1, 1.5) - #), + checkboxInput("jsonld_style", "JSON-LD style", + value = FALSE, + width = "150px"), + checkboxInput("default_style", "Default style", + value = TRUE, + width = "150px"), + flex = c(1, 1.5) + ), ) ) @@ -431,8 +431,8 @@ find_title <- function(level) { classes = input$classes, keyvaluepairs = input$keyvaluepairs #style=input$style - #jsonld_style=input$jsonld_style, - #default_style=input$default_style + ,jsonld_style=input$jsonld_style, + default_style=input$default_style )) observeEvent(input$done, { From 2933c1203fafea765c3ace9eda16b2f1c85eb8ec Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 13 Jul 2017 03:15:51 -0500 Subject: [PATCH 094/318] Update insert_breaks.R --- R/insert_breaks.R | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 4ef4316..bf191db 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -405,19 +405,19 @@ find_title <- function(level) { ) ,flex = c(0.8, 0.5, 3) ) - , - fillRow( + #, + #fillRow( # selectInput("style", " ", width = "200px", # choices = styles_input, # selected = styles_input[level]) - checkboxInput("jsonld_style", "JSON-LD style", - value = FALSE, - width = "150px"), - checkboxInput("default_style", "Default style", - value = TRUE, - width = "150px"), - flex = c(1, 1.5) - ), + #checkboxInput("jsonld_style", "JSON-LD style", + # value = FALSE, + # width = "150px"), + #checkboxInput("default_style", "Default style", + # value = TRUE, + # width = "150px"), + #flex = c(1, 1.5) + #), ) ) @@ -431,8 +431,8 @@ find_title <- function(level) { classes = input$classes, keyvaluepairs = input$keyvaluepairs #style=input$style - ,jsonld_style=input$jsonld_style, - default_style=input$default_style + #,jsonld_style=input$jsonld_style, + #default_style=input$default_style )) observeEvent(input$done, { From f3881753d8ffb47478dbdb641ae8150f96f7a860 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 13 Jul 2017 03:30:53 -0500 Subject: [PATCH 095/318] Update insert_breaks.R --- R/insert_breaks.R | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index bf191db..7942d86 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -135,9 +135,9 @@ insert_break <- function(level, #c("get_title", "get_id", "get_class","get_attribute")) c("get_id", "get_class", "get_title", "get_attribute")) #tempstring=ret_value$id - fill <- create_fill(id = paste0("\"@id\":",ret_value$id), - classes = paste0("\"@type\":",ret_value$classes), - title = paste0("\"label\":",ret_value$text1), + fill <- create_fill(id = paste0("\"@id\":",ret_value$id,"\,"), + classes = paste0("\"@type\":",ret_value$classes,"\,"), + title = paste0("\"label\":",ret_value$text1,"\,"), attributes = ret_value$keyvaluepairs, function_container = creators) From 9e258c5be054b4d8a9d2962ebd090e89dafa5cb0 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 13 Jul 2017 15:15:43 -0500 Subject: [PATCH 096/318] Update utils.R --- R/utils.R | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/R/utils.R b/R/utils.R index c508c5d..07be4d2 100644 --- a/R/utils.R +++ b/R/utils.R @@ -136,14 +136,17 @@ create_fill <- function(title = "title", id = "fj3", classes, attributes, + json_ld = FALSE, function_container) { + if (json_ld) { + fun <- paste + } else { + fun <- encl + } with(function_container, paste( - #get_title(title), - #encl(get_id(id), - # papply(classes, get_class), - # papply(rm_space(attributes), get_attribute)) - encl(get_id(id), - papply(classes, get_class),get_title(title), + get_title(title), + fun(get_id(id), + papply(classes, get_class), papply(rm_space(attributes), get_attribute)) ) ) From 3d0b130dfb05664948d3329cd1cb21d80ee3229c Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 13 Jul 2017 15:18:39 -0500 Subject: [PATCH 097/318] Update insert_breaks.R --- R/insert_breaks.R | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 7942d86..70076d5 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -134,12 +134,18 @@ insert_break <- function(level, start = c("", "", "", "")), #c("get_title", "get_id", "get_class","get_attribute")) c("get_id", "get_class", "get_title", "get_attribute")) - #tempstring=ret_value$id - fill <- create_fill(id = paste0("\"@id\":",ret_value$id,"\,"), - classes = paste0("\"@type\":",ret_value$classes,"\,"), - title = paste0("\"label\":",ret_value$text1,"\,"), - attributes = ret_value$keyvaluepairs, - function_container = creators) + tempstring=ret_value$id + + fill <- create_fill(id = ret_value$id, + classes = ret_value$classes, + attributes = ret_value$keyvaluepairs, + + json_ld = ret_value$json_ld, + function_container = creators) + #fill <- create_fill(id = paste0("\"@id\":",ret_value$id,"\,"), + # classes = paste0("\"@type\":",ret_value$classes,"\,"), + # title = paste0("\"label\":",ret_value$text1,"\,"), + # attributes = ret_value$keyvaluepairs, + # function_container = creators) } else { fill <- ret_value$text1 @@ -400,7 +406,8 @@ find_title <- function(level) { choices = "", multiple = TRUE, options = list(create = TRUE, persist = FALSE, - createFilter = "^[a-zA-Z0-9:]+\\s*=\\s*[a-zA-Z0-9]+$")) + createFilter = "^[a-zA-Z0-9:]+\\s*=\\s*[a-zA-Z0-9]+$")), + checkboxInput("json_ld", "JSON-LD") ) ) ,flex = c(0.8, 0.5, 3) @@ -429,7 +436,8 @@ find_title <- function(level) { id = input$pandoc_id, level = input$level, classes = input$classes, - keyvaluepairs = input$keyvaluepairs + keyvaluepairs = input$keyvaluepairs, + json_ld = input$json_ld #style=input$style #,jsonld_style=input$jsonld_style, #default_style=input$default_style From bcdeef599240bc0a534caebbc2372c7879bed37c Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 13 Jul 2017 15:37:38 -0500 Subject: [PATCH 098/318] Update insert_breaks.R --- R/insert_breaks.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 70076d5..94bdf17 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -139,7 +139,7 @@ insert_break <- function(level, fill <- create_fill(id = ret_value$id, classes = ret_value$classes, attributes = ret_value$keyvaluepairs, - + json_ld = ret_value$json_ld, + json_ld = ret_value$json_ld, function_container = creators) #fill <- create_fill(id = paste0("\"@id\":",ret_value$id,"\,"), # classes = paste0("\"@type\":",ret_value$classes,"\,"), From 25ac7ceef2df39ea1976c30a0dd6b89d2b5eb5f0 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 13 Jul 2017 15:42:57 -0500 Subject: [PATCH 099/318] Update insert_breaks.R --- R/insert_breaks.R | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 94bdf17..a070ff3 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -136,9 +136,10 @@ insert_break <- function(level, c("get_id", "get_class", "get_title", "get_attribute")) tempstring=ret_value$id - fill <- create_fill(id = ret_value$id, - classes = ret_value$classes, - attributes = ret_value$keyvaluepairs, + fill <- create_fill(id = paste0("\"@id\":",ret_value$id,"\,"), + classes = paste0("\"@type\":",ret_value$classes,"\,"), + title = paste0("\"label\":",ret_value$text1,"\,"), + attributes = ret_value$keyvaluepairs, json_ld = ret_value$json_ld, function_container = creators) #fill <- create_fill(id = paste0("\"@id\":",ret_value$id,"\,"), From 9ea7425b144d26d3e7451f52f594a1e4b1ae1048 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 13 Jul 2017 15:46:03 -0500 Subject: [PATCH 100/318] Update insert_breaks.R --- R/insert_breaks.R | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index a070ff3..f079fe8 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -136,9 +136,9 @@ insert_break <- function(level, c("get_id", "get_class", "get_title", "get_attribute")) tempstring=ret_value$id - fill <- create_fill(id = paste0("\"@id\":",ret_value$id,"\,"), - classes = paste0("\"@type\":",ret_value$classes,"\,"), - title = paste0("\"label\":",ret_value$text1,"\,"), + fill <- create_fill(id = paste0("\"@id\":",ret_value$id,","), + classes = paste0("\"@type\":",ret_value$classes,","), + title = paste0("\"label\":",ret_value$text1,","), attributes = ret_value$keyvaluepairs, json_ld = ret_value$json_ld, function_container = creators) From 4b14916de44bcf83f55638af67989bbd5455726d Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 13 Jul 2017 16:05:09 -0500 Subject: [PATCH 101/318] Update utils.R --- R/utils.R | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/R/utils.R b/R/utils.R index 07be4d2..a3deea6 100644 --- a/R/utils.R +++ b/R/utils.R @@ -139,17 +139,24 @@ create_fill <- function(title = "title", json_ld = FALSE, function_container) { if (json_ld) { - fun <- paste + with(function_container, paste( + + encl(get_id(id), + papply(classes, get_class), + get_title(title), + papply(rm_space(attributes), get_attribute)) + ) + ) } else { - fun <- encl - } - with(function_container, paste( + with(function_container, paste( get_title(title), - fun(get_id(id), + encl(get_id(id), papply(classes, get_class), papply(rm_space(attributes), get_attribute)) ) ) + } + } From 6193e5f5921bafb2a6c2958c1d7728d80b792f8a Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 13 Jul 2017 16:09:08 -0500 Subject: [PATCH 102/318] Update insert_breaks.R --- R/insert_breaks.R | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index f079fe8..3cd3f63 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -136,9 +136,9 @@ insert_break <- function(level, c("get_id", "get_class", "get_title", "get_attribute")) tempstring=ret_value$id - fill <- create_fill(id = paste0("\"@id\":",ret_value$id,","), - classes = paste0("\"@type\":",ret_value$classes,","), - title = paste0("\"label\":",ret_value$text1,","), + fill <- create_fill(id = ret_value$id, + classes = ret_value$classes, + title = ret_value$text1, attributes = ret_value$keyvaluepairs, json_ld = ret_value$json_ld, function_container = creators) From 4ac8176d57cb17ffe0a3b58c0626594bb23c81f4 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 13 Jul 2017 16:12:48 -0500 Subject: [PATCH 103/318] Update utils.R --- R/utils.R | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/R/utils.R b/R/utils.R index a3deea6..552db9e 100644 --- a/R/utils.R +++ b/R/utils.R @@ -141,9 +141,9 @@ create_fill <- function(title = "title", if (json_ld) { with(function_container, paste( - encl(get_id(id), - papply(classes, get_class), - get_title(title), + encl(paste0("\"@id\":",get_id(id),","), + paste0("\"@type\":",papply(classes, get_class),","), + paste0("\"label\":",get_title(title),","), papply(rm_space(attributes), get_attribute)) ) ) From e9d29574bb4b8ffc0f76b69c833481304414cc80 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 13 Jul 2017 16:14:49 -0500 Subject: [PATCH 104/318] Update utils.R --- R/utils.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/utils.R b/R/utils.R index 552db9e..5780759 100644 --- a/R/utils.R +++ b/R/utils.R @@ -143,7 +143,7 @@ create_fill <- function(title = "title", encl(paste0("\"@id\":",get_id(id),","), paste0("\"@type\":",papply(classes, get_class),","), - paste0("\"label\":",get_title(title),","), + paste0("\"label\":",get_title(title)), papply(rm_space(attributes), get_attribute)) ) ) From 618392856b38bdf9800bb8d4c686fc8f728aafba Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 13 Jul 2017 20:14:46 -0500 Subject: [PATCH 105/318] Update insert_breaks.R --- R/insert_breaks.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 3cd3f63..c62d4e5 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -408,7 +408,7 @@ find_title <- function(level) { options = list(create = TRUE, persist = FALSE, createFilter = "^[a-zA-Z0-9:]+\\s*=\\s*[a-zA-Z0-9]+$")), - checkboxInput("json_ld", "JSON-LD") + checkboxInput("json_ld", "JSON-LD",width = "80px") ) ) ,flex = c(0.8, 0.5, 3) From 7e1e327d83e77ce2029f1707782a885cdb0776d4 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 13 Jul 2017 20:16:41 -0500 Subject: [PATCH 106/318] Update insert_breaks.R --- R/insert_breaks.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index c62d4e5..0060ce5 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -403,7 +403,7 @@ find_title <- function(level) { width = "320px", multiple = TRUE), selectizeInput("keyvaluepairs", width = "320px", - label = "key-value pairs", + label = "Manually input: property=value", choices = "", multiple = TRUE, options = list(create = TRUE, persist = FALSE, From f330d57ab1938cd9f90a50a1ffcf5871c60cb2e0 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Mon, 17 Jul 2017 00:06:34 -0500 Subject: [PATCH 107/318] Update insert_breaks.R --- R/insert_breaks.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 0060ce5..ccdc776 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -408,7 +408,7 @@ find_title <- function(level) { options = list(create = TRUE, persist = FALSE, createFilter = "^[a-zA-Z0-9:]+\\s*=\\s*[a-zA-Z0-9]+$")), - checkboxInput("json_ld", "JSON-LD",width = "80px") + checkboxInput("json_ld", "JSON-LD",width = "80px") ) ) ,flex = c(0.8, 0.5, 3) From be10cb3f988cd6cd0054df73a24ec95cd3a0ce8e Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Tue, 18 Jul 2017 01:08:35 -0500 Subject: [PATCH 108/318] Update insert_breaks.R --- R/insert_breaks.R | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index ccdc776..2576448 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -407,7 +407,8 @@ find_title <- function(level) { choices = "", multiple = TRUE, options = list(create = TRUE, persist = FALSE, - createFilter = "^[a-zA-Z0-9:]+\\s*=\\s*[a-zA-Z0-9]+$")), + #createFilter = "^[a-zA-Z0-9:]+\\s*=\\s*[a-zA-Z0-9]+$")), + createFilter = "^.+\\s*=\\s*.+$")), checkboxInput("json_ld", "JSON-LD",width = "80px") ) ) From 63495ff80f2507140f7f94d87a450b6ddfdc3a58 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Tue, 18 Jul 2017 01:54:02 -0500 Subject: [PATCH 109/318] Update insert_breaks.R --- R/insert_breaks.R | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 2576448..44a0567 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -130,10 +130,10 @@ insert_break <- function(level, if (ret_value$add_semantics) { # create fill creators <- setNames(Map(create_creators, - #start = c("", "#", ".", "")), - start = c("", "", "", "")), - #c("get_title", "get_id", "get_class","get_attribute")) - c("get_id", "get_class", "get_title", "get_attribute")) + start = c("", "#", ".", "")), + #start = c("", "", "", "")), + c("get_title", "get_id", "get_class","get_attribute")) + #c("get_id", "get_class", "get_title", "get_attribute")) tempstring=ret_value$id fill <- create_fill(id = ret_value$id, From 90ecd075bebc47cb95bb999b0b9799b9d9bc14b0 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 20 Jul 2017 02:06:03 -0500 Subject: [PATCH 110/318] Update sum_str.R --- R/sum_str.R | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/R/sum_str.R b/R/sum_str.R index 827f57c..ef483a9 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -716,6 +716,9 @@ for (j in 1:length(infolist)){ else if (parentclass=="provone:Process"&(tempclass=="provone:Data"|tempclass=="provone:Visualization")){ property="provone:wasDerivedFrom" } + else if (as.numeric(parentlevel)!=0){ + property="." + } if (property=="provone:hasSubProcess"){ nodesfrom=paste0(nodesfrom,infolist[[as.numeric(parentindex)]][2]," ") @@ -730,6 +733,11 @@ for (j in 1:length(infolist)){ nodesto=paste0(nodesto,infolist[[as.numeric(parentindex)]][2]," ") nodesproperty=paste0(nodesproperty,"provone:hasMember"," ") } + else if (as.numeric(parentlevel)!=0){ + nodesfrom=paste0(nodesfrom,infolist[[as.numeric(parentindex)]][2]," ") + nodesto=paste0(nodesto,infolist[[j]][2]," ") + nodesproperty=paste0(nodesproperty,property," ") + } for (i in 4:length(infolist[[j]])){ tempword="" From 3972aa2b731b0994691771b010ca64bb2747e2c5 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 20 Jul 2017 02:51:43 -0500 Subject: [PATCH 111/318] Update sum_str.R --- R/sum_str.R | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/R/sum_str.R b/R/sum_str.R index ef483a9..6a59bd5 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -641,6 +641,24 @@ for (i in 1:length(infolist)){ } infolist +infolist1=infolist +for (i in grep("\":",infolist)){ + infolist[[i]][2]=infolist1[[i]][4] + infolist[[i]][3]=infolist1[[i]][2] + infolist[[i]][4]=infolist1[[i]][3] +} + +#strsplit(infolist[[4]][2], "\":")[[1]][2] +for (j in 1:length(infolist)){ +#for (j in 4:4){ + for (i in 1:length(strsplit(infolist[[j]], "\":"))){ + if (length(strsplit(infolist[[j]], "\":")[[i]])>1){ + infolist1[[j]][i]=strsplit(infolist[[j]], "\":")[[i]][2] + } +} +} +infolist=infolist1 + schemahad=0 lines_rdf="" count0=1 From aca223605565e0f4833ab826bdba16bad2057fc8 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 20 Jul 2017 03:18:42 -0500 Subject: [PATCH 112/318] Update sum_str.R --- R/sum_str.R | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 6a59bd5..84571be 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -643,10 +643,11 @@ infolist infolist1=infolist for (i in grep("\":",infolist)){ - infolist[[i]][2]=infolist1[[i]][4] - infolist[[i]][3]=infolist1[[i]][2] - infolist[[i]][4]=infolist1[[i]][3] + infolist[[i]][2]=gsub(",","",infolist1[[i]][4]) + infolist[[i]][3]=gsub("#","",gsub(",","",infolist1[[i]][2])) + infolist[[i]][4]=gsub("\\.","",gsub(",","",infolist1[[i]][3])) } +infolist #strsplit(infolist[[4]][2], "\":")[[1]][2] for (j in 1:length(infolist)){ From 4dd39bdcacb8481383f117793f620b1fd3b9373d Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 20 Jul 2017 03:32:59 -0500 Subject: [PATCH 113/318] Update sum_str.R --- R/sum_str.R | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index 84571be..9193a4d 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -663,12 +663,18 @@ infolist=infolist1 schemahad=0 lines_rdf="" count0=1 + +schemalist1=list() +for (i in 1:length(infolist)){ + schemalist1[[i]]=grep(":",infolist[[i]]) +} +schemalist=schemalist1 # add prefix for (i in 1:length(schemalist)){ #print (i) for (j in 1:length(schemalist[[i]])){ #print (j) - tempstr=lines_split[[i]][(schemalist[[i]])[j]] + tempstr=infolist[[i]][(schemalist[[i]])[j]] #print(tempstr) tempschemastr=gsub("\\.","",strsplit(tempstr,'\\:')[[1]][1]) schemas[tempschemastr] From bfbcad85e6e8be60a1f271a8bf90a9d6922e98fa Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 20 Jul 2017 03:52:35 -0500 Subject: [PATCH 114/318] Update sum_str.R --- R/sum_str.R | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index 9193a4d..74cefdd 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -792,9 +792,10 @@ for (j in 1:length(infolist)){ # old association if (grepl("=",tempword)){ - #tempwordlist=strsplit(tempword,"=") + tempwordlist=strsplit(tempword,"=") #tempentity=paste0("<",tempwordlist[[1]][2],">") #temp_line=paste(tempwordlist[[1]][1],tempentity) + temp_line=paste(tempwordlist[[1]][1],tempwordlist[[1]][2]) #nodesfrom=paste0(nodesfrom,title0," ") #nodesto=paste0(nodesto,tempwordlist[[1]][2]," ") From 487fe4d4d1aa5ff9ddf204b111c59fd8a3bc17cd Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 20 Jul 2017 03:58:20 -0500 Subject: [PATCH 115/318] Update sum_str.R --- R/sum_str.R | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index 74cefdd..0ad2320 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -742,7 +742,7 @@ for (j in 1:length(infolist)){ property="provone:wasDerivedFrom" } else if (as.numeric(parentlevel)!=0){ - property="." + property="str:belongTo" } if (property=="provone:hasSubProcess"){ @@ -762,6 +762,9 @@ for (j in 1:length(infolist)){ nodesfrom=paste0(nodesfrom,infolist[[as.numeric(parentindex)]][2]," ") nodesto=paste0(nodesto,infolist[[j]][2]," ") nodesproperty=paste0(nodesproperty,property," ") + nodesfrom=paste0(nodesfrom,infolist[[j]][2]," ") + nodesto=paste0(nodesto,infolist[[as.numeric(parentindex)]][2]," ") + nodesproperty=paste0(nodesproperty,"str:has"," ") } for (i in 4:length(infolist[[j]])){ From 357e066a90c263ab8a5c26e3e8f72e011dddaa61 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 20 Jul 2017 04:01:36 -0500 Subject: [PATCH 116/318] Update sum_str.R --- R/sum_str.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 0ad2320..cd5a438 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -742,7 +742,7 @@ for (j in 1:length(infolist)){ property="provone:wasDerivedFrom" } else if (as.numeric(parentlevel)!=0){ - property="str:belongTo" + property="str:has" } if (property=="provone:hasSubProcess"){ @@ -764,7 +764,7 @@ for (j in 1:length(infolist)){ nodesproperty=paste0(nodesproperty,property," ") nodesfrom=paste0(nodesfrom,infolist[[j]][2]," ") nodesto=paste0(nodesto,infolist[[as.numeric(parentindex)]][2]," ") - nodesproperty=paste0(nodesproperty,"str:has"," ") + nodesproperty=paste0(nodesproperty,"str:belongTo"," ") } for (i in 4:length(infolist[[j]])){ From 6531a4645f3bac7618d876e1de9f64f08f23a066 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 20 Jul 2017 04:06:47 -0500 Subject: [PATCH 117/318] Update sum_str.R --- R/sum_str.R | 3 +++ 1 file changed, 3 insertions(+) diff --git a/R/sum_str.R b/R/sum_str.R index cd5a438..91d65a5 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -749,6 +749,9 @@ for (j in 1:length(infolist)){ nodesfrom=paste0(nodesfrom,infolist[[as.numeric(parentindex)]][2]," ") nodesto=paste0(nodesto,infolist[[j]][2]," ") nodesproperty=paste0(nodesproperty,property," ") + nodesfrom=paste0(nodesfrom,infolist[[j]][2]," ") + nodesto=paste0(nodesto,infolist[[as.numeric(parentindex)]][2]," ") + nodesproperty=paste0(nodesproperty,"provone:wasDerivedFrom"," ") } else if(property=="provone:wasDerivedFrom"){ nodesfrom=paste0(nodesfrom,infolist[[as.numeric(parentindex)]][2]," ") From 2bf80d7d689e2048b04898299f40ac93ba10a1e0 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 20 Jul 2017 19:03:11 -0500 Subject: [PATCH 118/318] Update sum_str.R --- R/sum_str.R | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 91d65a5..134642f 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -693,6 +693,14 @@ ProvONElist=c("provone:Process","provone:InputPort","provone:OutputPort", "provone:DataLink","provone:SeqCtrlLink","provone:Workflow", "provone:User","provone:ProcessExec","provone:Data", "provone:Collection","provone:Visualization") +# Association word list: +Associationlist=c("provone:hasSubProcess","provone:sourcePToCL","provone:CLtoDestP", + "provone:hasInPort","provone:hasOutPort","provone:hasDefaultParam", + "provone:DLToInPort","provone:outPortToDL","provone:inPortToDL", + "provone:DLToOutPort","provone:wasAttributedTo","provone:wasDerivedFrom", + "provone:dataOnLink","provone:used","provone:wasGeneratedBy", + "provone:wasAssociatedWith","provone:wasInformedBy","provone:isPartOf", + "provone:hadMember") nodesnames=nodesclasses=nodesfrom=nodesto=nodesproperty=parentclass=property=line_rdf_vector="" templevel=parentlevel=parentindex=0 @@ -797,15 +805,17 @@ for (j in 1:length(infolist)){ tempword=infolist[[j]][i] # old association if (grepl("=",tempword)){ - tempwordlist=strsplit(tempword,"=") #tempentity=paste0("<",tempwordlist[[1]][2],">") - #temp_line=paste(tempwordlist[[1]][1],tempentity) + + if (tempwordlist[[1]][1] %in% Associationlist) + { + nodesfrom=paste0(nodesfrom,title0," ") + nodesto=paste0(nodesto,tempwordlist[[1]][2]," ") + nodesproperty=paste0(nodesproperty,tempwordlist[[1]][1]," ") + } temp_line=paste(tempwordlist[[1]][1],tempwordlist[[1]][2]) - #nodesfrom=paste0(nodesfrom,title0," ") - #nodesto=paste0(nodesto,tempwordlist[[1]][2]," ") - #nodesproperty=paste0(nodesproperty,tempwordlist[[1]][1]," ") } #end session if (i==length(infolist[[j]])){ From d462da59be25a53a2e23a771b79936847635bbe1 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 20 Jul 2017 20:10:30 -0500 Subject: [PATCH 119/318] Update sum_str.R --- R/sum_str.R | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 134642f..5cc3d1d 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -838,14 +838,40 @@ nodesnames2=strsplit(nodesnames," ") nodesclasses2=strsplit(nodesclasses," ") nodes <- data.frame(name = nodesnames2[[1]], class = nodesclasses2[[1]]) -nodes + nodesfrom2=strsplit(nodesfrom," ") nodesto2=strsplit(nodesto," ") nodesproperty2=strsplit(nodesproperty," ") +#nodesdf=data.frame(from=nodesfrom2[[1]],to=nodesto2[[1]],property=nodesproperty2[[1]]) +exceptnum=except=nodesfrom3=nodesto3=nodesproperty3=nodesnm=0 +#diagonal matrix +for (i in 1:(length(nodesfrom2[[1]])-1)){ + print (i) + for (j in ((i+1):length(nodesfrom2[[1]]))){ + print (j) + if (i!=j){ + if(nodesfrom2[[1]][i]==nodesfrom2[[1]][j]&nodesto2[[1]][i]==nodesto2[[1]][j]){ + exceptnum=exceptnum+1 + except[exceptnum]=min(i,j) + } + } + } +} + +for (i in 1:length(nodesfrom2[[1]])){ + if (i %in% except){} + else { + nodesnm=nodesnm+1 + nodesfrom3[nodesnm]=nodesfrom2[[1]][i] + nodesto3[nodesnm]=nodesto2[[1]][i] + nodesproperty3[nodesnm]=nodesproperty2[[1]][i] + } +} + nesting <- data.frame(from = nodesfrom2[[1]], to = nodesto2[[1]], property = nodesproperty2[[1]]) -nesting + g3 <- graph_from_data_frame(nesting, directed=TRUE, vertices=nodes) E(g3)$label <- E(g3)$property From 085ab9eafa08a64d9da7b807ba9dfc46b8d46127 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 20 Jul 2017 20:12:15 -0500 Subject: [PATCH 120/318] Update sum_str.R --- R/sum_str.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 5cc3d1d..15b8395 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -846,9 +846,9 @@ nodesproperty2=strsplit(nodesproperty," ") exceptnum=except=nodesfrom3=nodesto3=nodesproperty3=nodesnm=0 #diagonal matrix for (i in 1:(length(nodesfrom2[[1]])-1)){ - print (i) + #print (i) for (j in ((i+1):length(nodesfrom2[[1]]))){ - print (j) + #print (j) if (i!=j){ if(nodesfrom2[[1]][i]==nodesfrom2[[1]][j]&nodesto2[[1]][i]==nodesto2[[1]][j]){ exceptnum=exceptnum+1 From abce14c813521749a638a99b45bcf9de1ec78c59 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 20 Jul 2017 20:31:05 -0500 Subject: [PATCH 121/318] Update sum_str.R --- R/sum_str.R | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 15b8395..bbda50f 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -868,10 +868,12 @@ for (i in 1:length(nodesfrom2[[1]])){ } } -nesting <- data.frame(from = nodesfrom2[[1]], - to = nodesto2[[1]], - property = nodesproperty2[[1]]) - + +nesting <- data.frame(from = nodesfrom3, + to = nodesto3, + property = nodesproperty3) + + g3 <- graph_from_data_frame(nesting, directed=TRUE, vertices=nodes) E(g3)$label <- E(g3)$property From 16997ce895ad21c56726648b1c5f5752bf5eb901 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 21 Jul 2017 00:44:37 -0500 Subject: [PATCH 122/318] Update sum_str.R --- R/sum_str.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index bbda50f..d2c04ae 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -850,7 +850,7 @@ for (i in 1:(length(nodesfrom2[[1]])-1)){ for (j in ((i+1):length(nodesfrom2[[1]]))){ #print (j) if (i!=j){ - if(nodesfrom2[[1]][i]==nodesfrom2[[1]][j]&nodesto2[[1]][i]==nodesto2[[1]][j]){ + if((nodesfrom2[[1]][i]==nodesfrom2[[1]][j])&(nodesto2[[1]][i]==nodesto2[[1]][j])){ exceptnum=exceptnum+1 except[exceptnum]=min(i,j) } From 4d3ae4aa118b69dce3d0ee38c98b00ac64760349 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 21 Jul 2017 00:47:03 -0500 Subject: [PATCH 123/318] Update sum_str.R --- R/sum_str.R | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index d2c04ae..30129f8 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -838,7 +838,7 @@ nodesnames2=strsplit(nodesnames," ") nodesclasses2=strsplit(nodesclasses," ") nodes <- data.frame(name = nodesnames2[[1]], class = nodesclasses2[[1]]) - +print (nodes) nodesfrom2=strsplit(nodesfrom," ") nodesto2=strsplit(nodesto," ") nodesproperty2=strsplit(nodesproperty," ") @@ -857,7 +857,7 @@ for (i in 1:(length(nodesfrom2[[1]])-1)){ } } } - +print (except) for (i in 1:length(nodesfrom2[[1]])){ if (i %in% except){} else { @@ -873,7 +873,7 @@ nesting <- data.frame(from = nodesfrom3, to = nodesto3, property = nodesproperty3) - +print (nesting) g3 <- graph_from_data_frame(nesting, directed=TRUE, vertices=nodes) E(g3)$label <- E(g3)$property From 2be01963abe332279b97cc7d067598e4661fec2a Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 21 Jul 2017 01:00:21 -0500 Subject: [PATCH 124/318] Update sum_str.R --- R/sum_str.R | 2 ++ 1 file changed, 2 insertions(+) diff --git a/R/sum_str.R b/R/sum_str.R index 30129f8..6c52dfe 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -794,6 +794,7 @@ for (j in 1:length(infolist)){ if (i==length(infolist[[j]])){ line_rdf=paste(line_rdf,";","\n") #line_rdf=paste(line_rdf,"\t","rdfs:label",title0,".","\n") + title0=paaste0("\"",title0,"\"") line_rdf=paste(line_rdf,"\t","rdfs:label",title0,";","\n")#,".","\n") } else{ @@ -821,6 +822,7 @@ for (j in 1:length(infolist)){ if (i==length(infolist[[j]])){ temp_line=paste("\t",temp_line,";","\n") #temp_line=paste(temp_line,"\t","rdfs:label",title0,".","\n") + title0=paaste0("\"",title0,"\"") temp_line=paste(temp_line,"\t","rdfs:label",title0,";","\n")#,".","\n") } else { From f1aa9af2825d096c1967e431b13278949881d3e9 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 21 Jul 2017 01:06:09 -0500 Subject: [PATCH 125/318] Update sum_str.R --- R/sum_str.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index 6c52dfe..327ac78 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -815,7 +815,7 @@ for (j in 1:length(infolist)){ nodesto=paste0(nodesto,tempwordlist[[1]][2]," ") nodesproperty=paste0(nodesproperty,tempwordlist[[1]][1]," ") } - temp_line=paste(tempwordlist[[1]][1],tempwordlist[[1]][2]) + #temp_line=paste(tempwordlist[[1]][1],tempwordlist[[1]][2]) } #end session From 0c1bfef636ba46bcb3b8b733eb4c5b76b71380f1 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 21 Jul 2017 01:07:07 -0500 Subject: [PATCH 126/318] Update sum_str.R --- R/sum_str.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 327ac78..3c3a2af 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -794,7 +794,7 @@ for (j in 1:length(infolist)){ if (i==length(infolist[[j]])){ line_rdf=paste(line_rdf,";","\n") #line_rdf=paste(line_rdf,"\t","rdfs:label",title0,".","\n") - title0=paaste0("\"",title0,"\"") + title0=paste0("\"",title0,"\"") line_rdf=paste(line_rdf,"\t","rdfs:label",title0,";","\n")#,".","\n") } else{ @@ -822,7 +822,7 @@ for (j in 1:length(infolist)){ if (i==length(infolist[[j]])){ temp_line=paste("\t",temp_line,";","\n") #temp_line=paste(temp_line,"\t","rdfs:label",title0,".","\n") - title0=paaste0("\"",title0,"\"") + title0=paste0("\"",title0,"\"") temp_line=paste(temp_line,"\t","rdfs:label",title0,";","\n")#,".","\n") } else { From 3cba4213f4bf71be8696ead563735f20cf5db1b7 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 21 Jul 2017 01:10:40 -0500 Subject: [PATCH 127/318] Update sum_str.R --- R/sum_str.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index 3c3a2af..e62b448 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -815,7 +815,7 @@ for (j in 1:length(infolist)){ nodesto=paste0(nodesto,tempwordlist[[1]][2]," ") nodesproperty=paste0(nodesproperty,tempwordlist[[1]][1]," ") } - #temp_line=paste(tempwordlist[[1]][1],tempwordlist[[1]][2]) + temp_line=paste(tempwordlist[[1]][1],tempwordlist[[1]][2]) } #end session From d57a135b5642a5282b975d406d024ff2d8baf7d1 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 21 Jul 2017 01:16:17 -0500 Subject: [PATCH 128/318] Update sum_str.R --- R/sum_str.R | 3 +++ 1 file changed, 3 insertions(+) diff --git a/R/sum_str.R b/R/sum_str.R index e62b448..76a9458 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -859,6 +859,9 @@ for (i in 1:(length(nodesfrom2[[1]])-1)){ } } } +print (nodesfrom2) +print (nodesto2) +print (nodesproperty2) print (except) for (i in 1:length(nodesfrom2[[1]])){ if (i %in% except){} From ba7252212b1bec453593200a08640f3f43eaa741 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 21 Jul 2017 01:20:55 -0500 Subject: [PATCH 129/318] Update sum_str.R --- R/sum_str.R | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index 76a9458..fd4fd65 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -846,6 +846,7 @@ nodesto2=strsplit(nodesto," ") nodesproperty2=strsplit(nodesproperty," ") #nodesdf=data.frame(from=nodesfrom2[[1]],to=nodesto2[[1]],property=nodesproperty2[[1]]) exceptnum=except=nodesfrom3=nodesto3=nodesproperty3=nodesnm=0 +exceptwords=c("str:has","str:belongTo") #diagonal matrix for (i in 1:(length(nodesfrom2[[1]])-1)){ #print (i) @@ -854,7 +855,10 @@ for (i in 1:(length(nodesfrom2[[1]])-1)){ if (i!=j){ if((nodesfrom2[[1]][i]==nodesfrom2[[1]][j])&(nodesto2[[1]][i]==nodesto2[[1]][j])){ exceptnum=exceptnum+1 - except[exceptnum]=min(i,j) + if (nodesproperty2[[1]][i] %in% exceptwords){ + except[exceptnum]=i + } + else { except[exceptnum]=j} } } } From ea1dfa076b6908325851c5fb751ffd4be582f0ed Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 21 Jul 2017 01:23:42 -0500 Subject: [PATCH 130/318] Update sum_str.R --- R/sum_str.R | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index fd4fd65..284b01f 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -815,8 +815,9 @@ for (j in 1:length(infolist)){ nodesto=paste0(nodesto,tempwordlist[[1]][2]," ") nodesproperty=paste0(nodesproperty,tempwordlist[[1]][1]," ") } + else{ temp_line=paste(tempwordlist[[1]][1],tempwordlist[[1]][2]) - + } } #end session if (i==length(infolist[[j]])){ From bfb6e3174cf01acc0d2dbdef9af499b6df14e406 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 21 Jul 2017 02:32:33 -0500 Subject: [PATCH 131/318] Update sum_str.R --- R/sum_str.R | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 284b01f..775580b 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -820,6 +820,7 @@ for (j in 1:length(infolist)){ } } #end session + if (nchar(temp_line)>0){ if (i==length(infolist[[j]])){ temp_line=paste("\t",temp_line,";","\n") #temp_line=paste(temp_line,"\t","rdfs:label",title0,".","\n") @@ -829,6 +830,7 @@ for (j in 1:length(infolist)){ else { temp_line=paste("\t",temp_line,";","\n") } + } } line_rdf=paste(line_rdf,temp_line) line_rdf_vector[j]=line_rdf @@ -841,7 +843,7 @@ nodesnames2=strsplit(nodesnames," ") nodesclasses2=strsplit(nodesclasses," ") nodes <- data.frame(name = nodesnames2[[1]], class = nodesclasses2[[1]]) -print (nodes) +#print (nodes) nodesfrom2=strsplit(nodesfrom," ") nodesto2=strsplit(nodesto," ") nodesproperty2=strsplit(nodesproperty," ") @@ -864,10 +866,10 @@ for (i in 1:(length(nodesfrom2[[1]])-1)){ } } } -print (nodesfrom2) -print (nodesto2) -print (nodesproperty2) -print (except) +#print (nodesfrom2) +#print (nodesto2) +#print (nodesproperty2) +#print (except) for (i in 1:length(nodesfrom2[[1]])){ if (i %in% except){} else { @@ -883,7 +885,7 @@ nesting <- data.frame(from = nodesfrom3, to = nodesto3, property = nodesproperty3) -print (nesting) +#print (nesting) g3 <- graph_from_data_frame(nesting, directed=TRUE, vertices=nodes) E(g3)$label <- E(g3)$property From 35445b2c7f1521f1b4ce89c9134bbfcbe7332a61 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 21 Jul 2017 02:39:04 -0500 Subject: [PATCH 132/318] Update insert_breaks.R --- R/insert_breaks.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 44a0567..5d76680 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -130,7 +130,7 @@ insert_break <- function(level, if (ret_value$add_semantics) { # create fill creators <- setNames(Map(create_creators, - start = c("", "#", ".", "")), + start = c("", "", "", "")), #start = c("", "", "", "")), c("get_title", "get_id", "get_class","get_attribute")) #c("get_id", "get_class", "get_title", "get_attribute")) From 50de002e4da4a5db2d6378224b56bdf8135ad02d Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 21 Jul 2017 03:31:05 -0500 Subject: [PATCH 133/318] Update sum_str.R --- R/sum_str.R | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 775580b..0902a64 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -820,17 +820,21 @@ for (j in 1:length(infolist)){ } } #end session - if (nchar(temp_line)>0){ + if (i==length(infolist[[j]])){ + if (nchar(temp_line)>0){ temp_line=paste("\t",temp_line,";","\n") + } #temp_line=paste(temp_line,"\t","rdfs:label",title0,".","\n") title0=paste0("\"",title0,"\"") temp_line=paste(temp_line,"\t","rdfs:label",title0,";","\n")#,".","\n") } else { + if (nchar(temp_line)>0){ temp_line=paste("\t",temp_line,";","\n") + } } - } + } line_rdf=paste(line_rdf,temp_line) line_rdf_vector[j]=line_rdf From 5a4698292013278db537ddff5e810733d84a4f70 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 27 Jul 2017 00:11:10 -0500 Subject: [PATCH 134/318] Update sum_str.R --- R/sum_str.R | 85 +++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 60 insertions(+), 25 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 0902a64..feb0f5a 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -701,6 +701,12 @@ Associationlist=c("provone:hasSubProcess","provone:sourcePToCL","provone:CLtoDes "provone:dataOnLink","provone:used","provone:wasGeneratedBy", "provone:wasAssociatedWith","provone:wasInformedBy","provone:isPartOf", "provone:hadMember") +# Association library: +AL=paste0("ParentClass,","ChildClass,","Ways,","Property,","ReverseProperty\n", + "\"provone:Process\",","\"provone:Process\",","2,","\"provone:hasSubProcess\",","\"provone:wasDerivedFrom\"\n", + "\"provone:Process\",","\"provone:Data\",","2,","\"provone:wasDerivedFrom\",","\"provone:hasMember\"\n", + "\"provone:Process\",","\"provone:Visualization\",","2,","\"provone:wasDerivedFrom\",","\"provone:hasMember\"\n") +write(AL,file="DefaultAssociationLibrary.txt") nodesnames=nodesclasses=nodesfrom=nodesto=nodesproperty=parentclass=property=line_rdf_vector="" templevel=parentlevel=parentindex=0 @@ -743,40 +749,69 @@ for (j in 1:length(infolist)){ } } # judge association: - if (parentclass=="provone:Process"&tempclass=="provone:Process"){ - property="provone:hasSubProcess" - } - else if (parentclass=="provone:Process"&(tempclass=="provone:Data"|tempclass=="provone:Visualization")){ - property="provone:wasDerivedFrom" + if (AL=="default"){ + AssociationsLib=read.table("DefaultAssociationLibrary.txt",sep=",",header=TRUE) + } + else (AL=="user") { + AssociationsLib=read.table("AssociationsLibrary.txt",sep=",",header=TRUE) + } + + AssociationNUM=which(tempclass==AssociationsLib$ChildClass[which(parentclass==AssociationsLib$ParentClass)]) + if (length(AssociationNUM)>0){ + property=as.character(AssociationsLib$Property[AssociationNUM]) + if (AssociationsLib$Ways[AssociationNUM]==2){ + nodesfrom=paste0(nodesfrom,infolist[[as.numeric(parentindex)]][2]," ") + nodesto=paste0(nodesto,infolist[[j]][2]," ") + nodesproperty=paste0(nodesproperty,property," ") + nodesfrom=paste0(nodesfrom,infolist[[j]][2]," ") + nodesto=paste0(nodesto,infolist[[as.numeric(parentindex)]][2]," ") + nodesproperty=paste0(nodesproperty,AssociationsLib$ReverseProperty," ") + } } else if (as.numeric(parentlevel)!=0){ property="str:has" - } - - if (property=="provone:hasSubProcess"){ - nodesfrom=paste0(nodesfrom,infolist[[as.numeric(parentindex)]][2]," ") - nodesto=paste0(nodesto,infolist[[j]][2]," ") - nodesproperty=paste0(nodesproperty,property," ") - nodesfrom=paste0(nodesfrom,infolist[[j]][2]," ") - nodesto=paste0(nodesto,infolist[[as.numeric(parentindex)]][2]," ") - nodesproperty=paste0(nodesproperty,"provone:wasDerivedFrom"," ") - } - else if(property=="provone:wasDerivedFrom"){ - nodesfrom=paste0(nodesfrom,infolist[[as.numeric(parentindex)]][2]," ") - nodesto=paste0(nodesto,infolist[[j]][2]," ") - nodesproperty=paste0(nodesproperty,property," ") - nodesfrom=paste0(nodesfrom,infolist[[j]][2]," ") - nodesto=paste0(nodesto,infolist[[as.numeric(parentindex)]][2]," ") - nodesproperty=paste0(nodesproperty,"provone:hasMember"," ") - } - else if (as.numeric(parentlevel)!=0){ nodesfrom=paste0(nodesfrom,infolist[[as.numeric(parentindex)]][2]," ") nodesto=paste0(nodesto,infolist[[j]][2]," ") nodesproperty=paste0(nodesproperty,property," ") nodesfrom=paste0(nodesfrom,infolist[[j]][2]," ") nodesto=paste0(nodesto,infolist[[as.numeric(parentindex)]][2]," ") nodesproperty=paste0(nodesproperty,"str:belongTo"," ") - } + } + + #if (parentclass=="provone:Process"&tempclass=="provone:Process"){ + # property="provone:hasSubProcess" + #} + #else if (parentclass=="provone:Process"&(tempclass=="provone:Data"|tempclass=="provone:Visualization")){ + # property="provone:wasDerivedFrom" + #} + #else if (as.numeric(parentlevel)!=0){ + # property="str:has" + #} + + #if (property=="provone:hasSubProcess"){ + # nodesfrom=paste0(nodesfrom,infolist[[as.numeric(parentindex)]][2]," ") + # nodesto=paste0(nodesto,infolist[[j]][2]," ") + # nodesproperty=paste0(nodesproperty,property," ") + # nodesfrom=paste0(nodesfrom,infolist[[j]][2]," ") + # nodesto=paste0(nodesto,infolist[[as.numeric(parentindex)]][2]," ") + # nodesproperty=paste0(nodesproperty,"provone:wasDerivedFrom"," ") + #} + #else if(property=="provone:wasDerivedFrom"){ + # nodesfrom=paste0(nodesfrom,infolist[[as.numeric(parentindex)]][2]," ") + # nodesto=paste0(nodesto,infolist[[j]][2]," ") + # nodesproperty=paste0(nodesproperty,property," ") + # nodesfrom=paste0(nodesfrom,infolist[[j]][2]," ") + # nodesto=paste0(nodesto,infolist[[as.numeric(parentindex)]][2]," ") + # nodesproperty=paste0(nodesproperty,"provone:hasMember"," ") + #} + #else if (as.numeric(parentlevel)!=0){ + # nodesfrom=paste0(nodesfrom,infolist[[as.numeric(parentindex)]][2]," ") + # nodesto=paste0(nodesto,infolist[[j]][2]," ") + # nodesproperty=paste0(nodesproperty,property," ") + # nodesfrom=paste0(nodesfrom,infolist[[j]][2]," ") + # nodesto=paste0(nodesto,infolist[[as.numeric(parentindex)]][2]," ") + # nodesproperty=paste0(nodesproperty,"str:belongTo"," ") + #} for (i in 4:length(infolist[[j]])){ tempword="" From 46804cf6033e8c0a68c00310cc03dc4e30f66cf4 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 27 Jul 2017 00:14:04 -0500 Subject: [PATCH 135/318] Update sum_str.R --- R/sum_str.R | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index feb0f5a..41e2bbf 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -108,6 +108,7 @@ sum_str <- function(path_in = getSourceEditorContext()$path, domain=FALSE, baseURI="http://example.org/base/", UserID="UserID", + AL="default" ...) { ## ............................................................................ @@ -164,7 +165,8 @@ assert_number(granularity, lower = 1, upper = 3) graph=graph, domain=domain, baseURI=baseURI, - UserID=UserID) + UserID=UserID, + AL=AL) }) if (dir_out == "" && !is.null(file_out) && file_out == "object") { @@ -208,7 +210,8 @@ sum_str_helper <- function(path_in, graph, domain, baseURI, - UserID) { + UserID, + AL) { ## ............................................................................ ## argument interaction #### From 9674fe84e2a0834072b2ed17e1fe3d1466db8699 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 27 Jul 2017 00:15:35 -0500 Subject: [PATCH 136/318] Update sum_str.R --- R/sum_str.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 41e2bbf..f6b5860 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -705,11 +705,11 @@ Associationlist=c("provone:hasSubProcess","provone:sourcePToCL","provone:CLtoDes "provone:wasAssociatedWith","provone:wasInformedBy","provone:isPartOf", "provone:hadMember") # Association library: -AL=paste0("ParentClass,","ChildClass,","Ways,","Property,","ReverseProperty\n", +DefaultAL=paste0("ParentClass,","ChildClass,","Ways,","Property,","ReverseProperty\n", "\"provone:Process\",","\"provone:Process\",","2,","\"provone:hasSubProcess\",","\"provone:wasDerivedFrom\"\n", "\"provone:Process\",","\"provone:Data\",","2,","\"provone:wasDerivedFrom\",","\"provone:hasMember\"\n", "\"provone:Process\",","\"provone:Visualization\",","2,","\"provone:wasDerivedFrom\",","\"provone:hasMember\"\n") -write(AL,file="DefaultAssociationLibrary.txt") +write(DefaultAL,file="DefaultAssociationLibrary.txt") nodesnames=nodesclasses=nodesfrom=nodesto=nodesproperty=parentclass=property=line_rdf_vector="" templevel=parentlevel=parentindex=0 From 33e54403d90692110e495c6ff35b9fdcb1209330 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 27 Jul 2017 00:17:41 -0500 Subject: [PATCH 137/318] Update sum_str.R --- R/sum_str.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index f6b5860..59f0b3f 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -108,7 +108,7 @@ sum_str <- function(path_in = getSourceEditorContext()$path, domain=FALSE, baseURI="http://example.org/base/", UserID="UserID", - AL="default" + AL="default", ...) { ## ............................................................................ From 174dd7c1f1b17660a15448e9550d182246d41f9e Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 27 Jul 2017 00:18:43 -0500 Subject: [PATCH 138/318] Update sum_str.R --- R/sum_str.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index 59f0b3f..732aed4 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -755,7 +755,7 @@ for (j in 1:length(infolist)){ if (AL=="default"){ AssociationsLib=read.table("DefaultAssociationLibrary.txt",sep=",",header=TRUE) } - else (AL=="user") { + else if (AL=="user") { AssociationsLib=read.table("AssociationsLibrary.txt",sep=",",header=TRUE) } From c64b466e6daa23abfc37030b6a48347127e4efe7 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 27 Jul 2017 01:08:57 -0500 Subject: [PATCH 139/318] Update sum_str.R --- R/sum_str.R | 239 +++++----------------------------------------------- 1 file changed, 19 insertions(+), 220 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 732aed4..902ce2d 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -108,6 +108,7 @@ sum_str <- function(path_in = getSourceEditorContext()$path, domain=FALSE, baseURI="http://example.org/base/", UserID="UserID", + prefix="user", AL="default", ...) { @@ -163,10 +164,11 @@ assert_number(granularity, lower = 1, upper = 3) header = header, rdf=rdf, graph=graph, - domain=domain, - baseURI=baseURI, - UserID=UserID, - AL=AL) + domain=domain, + baseURI=baseURI, + UserID=UserID, + prefix=prefix, + AL=AL) }) if (dir_out == "" && !is.null(file_out) && file_out == "object") { @@ -208,10 +210,11 @@ sum_str_helper <- function(path_in, header, rdf, graph, - domain, - baseURI, - UserID, - AL) { + domain, + baseURI, + UserID, + prefix, + AL) { ## ............................................................................ ## argument interaction #### @@ -348,217 +351,7 @@ if (rm_break_anchors) { ## ............................................................................ ## output the pattern - if (rdf=="test"){ - #localwd=getwd() - datetime <- format(Sys.time(), "%Y_%m_%d_%H_%M_%S") - fileformat=".ttl" #".txt" - outputfile2 <- paste("RDF_output_file_",datetime,fileformat,sep="") - write(lines,file=outputfile2) - templines=readLines(outputfile2) -lines_content=templines[4:length(templines)] -lines_split=strsplit(lines_content, " ") - -baseURI=baseURI -UserID=UserID -FullURI=paste0(baseURI,UserID) - -schemalist=list() - -schemas=c(rdfs="@prefix rdfs: .", - xsd="@prefix xsd: .", - owl="@prefix owl: .", - dcterms="@prefix dcterms: .", - prov="@prefix prov: .", - wfms="@prefix wfms: .", - rdf="@prefix rdf: .", - provone="@prefix provone: .", - skos="@prefix skos: ") -# Using ":" to find class -for (i in 1:length(lines_split)){ - schemalist[[i]]=grep(":",lines_split[[i]]) -} -tempcount0=0 -schemalist1=list() -for (i in 1:length(schemalist)){ - if (length(schemalist[[i]])>0){ - tempcount0=tempcount0+1 - schemalist1[[tempcount0]]=schemalist[[i]] - } -} -schemalist1 - -tempcount0=0 -lines_split1=list() -for (i in 1:length(schemalist)){ - if (length(schemalist[[i]])>0){ - tempcount0=tempcount0+1 - lines_split1[[tempcount0]]=lines_split[[i]] - } -} -lines_split1 - -lines_split=lines_split1 -schemalist=schemalist1 -lines_split1=schemalist -for (i in 1:length(lines_split)){ - tempcount0=0 - for (j in 1:length(lines_split[[i]])){ - if (nchar(lines_split[[i]][j])>0){ - tempcount0=tempcount0+1 - lines_split1[[i]][tempcount0]=lines_split[[i]][j] - } - } -} -lines_split1 - -for (i in 1:length(lines_split1)){ - schemalist[[i]]=grep(":",lines_split1[[i]]) -} -schemalist -lines_split=lines_split1 -schemahad=0 - -lines_rdf="" -count0=1 -for (i in 1:length(schemalist)){ - #print (i) - for (j in 1:length(schemalist[[i]])){ - #print (j) - tempstr=lines_split[[i]][(schemalist[[i]])[j]] - #print(tempstr) - tempschemastr=gsub("\\.","",strsplit(tempstr,'\\:')[[1]][1]) - schemas[tempschemastr] - if (tempschemastr %in% schemahad) {#print("!") - } - else{schemahad[count0]=tempschemastr - count0=count0+1} - } -} -for (i in 1:length(schemahad)){ - lines_rdf=paste(lines_rdf,schemas[schemahad[i]],"\n") -} - -# RDF word list: -ProvONElist=c("provone:Process","provone:InputPort","provone:OutputPort", - "provone:DataLink","provone:SeqCtrlLink","provone:Workflow", - "provone:User","provone:ProcessExec","provone:Data", - "provone:Collection","provone:Visualization") -nodesnames="" -nodesclasses="" -nodesfrom="" -nodesto="" -nodesproperty="" -for (j in 1:length(lines_split)){ - line_rdf="" - #lines_split[[j]] - #title - if (j==1&domain){ - title0=FullURI - } - else{ - title0=lines_split[[j]][2] - } - - - - #ID - ID=gsub("\\{","",lines_split[[j]][3]) - - for (i in 4:length(lines_split[[j]])){ - #for (i in 4:4){ - tempword="" - tempentity="" - temp_line="" - if (i==4){ - tempword=gsub("\\}","",lines_split[[j]][4]) - tempword=gsub("\\.","",tempword) - #line_rdf=paste("\n",ID,"a",tempword,";","\n") - - nodesnames=paste0(nodesnames,title0," ") - nodesclasses=paste0(nodesclasses,tempword," ") - - title=paste0("<",title0,">") - line_rdf=paste("\n",title,"a",tempword) - if (i==length(lines_split[[j]])){ - line_rdf=paste(line_rdf,".","\n") - #print (1) - } - else{ - line_rdf=paste(line_rdf,";","\n") - #print (2) - #print (line_rdf) - } - } - else { - #print ("!") - tempword=gsub("\\.","",lines_split[[j]][i]) - if (i==length(lines_split[[j]])){ - tempword=gsub("\\}","",tempword) - } - if (grepl("=",tempword)){ - - tempwordlist=strsplit(tempword,"=") - tempentity=paste0("<",tempwordlist[[1]][2],">") - temp_line=paste(tempwordlist[[1]][1],tempentity) - - nodesfrom=paste0(nodesfrom,title0," ") - nodesto=paste0(nodesto,tempwordlist[[1]][2]," ") - nodesproperty=paste0(nodesproperty,tempwordlist[[1]][1]," ") - } - #if (tempword %in% ProvONElist){ - # temp_line=paste("rdf:type",tempword,";") - #} - #else { - # temp_line=paste("_",tempword,";") - #} - - #end session - if (i==length(lines_split[[j]])){ - temp_line=paste("\t",temp_line,".","\n") - } - else { - temp_line=paste("\t",temp_line,";","\n") - } - #print ("!!") - #print (i) - #print (temp_line) - } - - line_rdf=paste(line_rdf,temp_line) - } - #title=paste0("\"",title,"\"") - #line_rdf=paste(line_rdf,"\t","rdfs:label",title,".\n") - #line_rdf=paste(line_rdf,"\t","rdfs:label",title,".\n") - lines_rdf=paste(lines_rdf,line_rdf) -} -if (rdf=="test"){ - write(lines_rdf,file=outputfile2) -print("Create a RDF file successfully. Please find the output file in:") -print(getwd()) -print(paste("Your file name is:",outputfile2)) -} -if (graph){ - nodesnames2=strsplit(nodesnames," ") -nodesclasses2=strsplit(nodesclasses," ") -nodes <- data.frame(name = nodesnames2[[1]], - class = nodesclasses2[[1]]) -nodes -nodesfrom2=strsplit(nodesfrom," ") -nodesto2=strsplit(nodesto," ") -nodesproperty2=strsplit(nodesproperty," ") -nesting <- data.frame(from = nodesfrom2[[1]], - to = nodesto2[[1]], - property = nodesproperty2[[1]]) -nesting -g3 <- graph_from_data_frame(nesting, directed=TRUE, vertices=nodes) -E(g3)$label <- E(g3)$property -print(g3, e=TRUE, v=TRUE) -plot(g3, edge.arrow.size=.2, edge.curved=.4) - } - - - } - else if (rdf=="ttl"|graph){ + if (rdf=="ttl"|graph){ datetime <- format(Sys.time(), "%Y_%m_%d_%H_%M_%S") fileformat=".ttl" #".txt" outputfile2 <- paste("RDF_output_file_",datetime,fileformat,sep="") @@ -570,6 +363,7 @@ lines_split=strsplit(lines_content, " ") baseURI=baseURI UserID=UserID FullURI=paste0(baseURI,UserID,"/") +prefix=prefix schemalist=list() @@ -581,7 +375,10 @@ schemas=c(rdfs="@prefix rdfs: .", wfms="@prefix wfms: .", rdf="@prefix rdf: .", provone="@prefix provone: .", - skos="@prefix skos: ") + skos="@prefix skos: .", + yw="@prefix yw: .", + cwfo="@prefix cwfo: .", + cwf="@prefix cwf: .") # Using ":" to find class for (i in 1:length(lines_split)){ schemalist[[i]]=grep(":",lines_split[[i]]) @@ -687,6 +484,8 @@ for (i in 1:length(schemalist)){ count0=count0+1} } } +# adding headers: +lines_rdf=paste0(" @prefix ",prefix,": ","<",FullURI,"> .\n") for (i in 1:length(schemahad)){ lines_rdf=paste(lines_rdf,schemas[schemahad[i]],"\n") } From b4652fc0ea796a2d91aa246fc1f5681ee07b045d Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 27 Jul 2017 01:25:23 -0500 Subject: [PATCH 140/318] Update sum_str.R --- R/sum_str.R | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 902ce2d..be4f5a6 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -624,8 +624,10 @@ for (j in 1:length(infolist)){ nodesnames=paste0(nodesnames,title0," ") nodesclasses=paste0(nodesclasses,tempword," ") - entityname=paste0(FullURI,ID) - title=paste0("<",entityname,">") + #entityname=paste0(FullURI,ID) + #title=paste0("<",entityname,">") + entityname=paste0(prefix,":",ID) + title=paste0(entityname) line_rdf=paste("\n",title,"a",tempword) if (i==length(infolist[[j]])){ @@ -739,7 +741,8 @@ for (i in 1:length(infolist)){ for (i in 1:length(line_rdf_vector)){ tempnumber=which(nesting$from==titles[i]) for (j in 1:length(tempnumber)){ - entityname2=paste0("<",FullURI,IDs[which(titles==nesting$to[tempnumber[j]])],">") + #entityname2=paste0("<",FullURI,IDs[which(titles==nesting$to[tempnumber[j]])],">") + entityname2=paste0(prefix,":",IDs[which(titles==nesting$to[tempnumber[j]])]) if (j==length(tempnumber)){ line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nesting$property[tempnumber[j]],entityname2,".","\n")} else{line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nesting$property[tempnumber[j]],entityname2,";","\n")} From bd78eab73838a54403191df1b3f8eeab1f495994 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 27 Jul 2017 01:57:47 -0500 Subject: [PATCH 141/318] Update insert_breaks.R --- R/insert_breaks.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 5d76680..7092fe4 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -168,7 +168,7 @@ insert_break <- function(level, ### set parameter depending on level start <- paste0(rep("#", level), collapse = "") break_char = give_breakchar(level) - sep = paste(rep(" ", 4 - level), collapse = "") + sep = paste(rep(" ", 8 - level), collapse = "") #start <- paste0(rep("#", 3), collapse = "") #break_char = give_breakchar(3) #sep = paste(rep(" ", 4 - 3), collapse = "") @@ -360,7 +360,7 @@ help_insert <- function(x, find_title <- function(level) { #XJ Original codes: #styles_input <- paste(c("Default","JSON-LD")) - choices_input <- paste("level", 1:3) + choices_input <- paste("level", 1:7) #class_choices <- paste("class", 1:10) #choices_input <- paste(c("Workflow","Trace","Data Structure")) #class_choices <- paste(c("Process","InputPort","OutputPort","DataLink","SeqCtrlLink","Workflow","User","hasSubProcess","sourcePToCL", From ae3e7db672fcdd4f1fc776c506be4c0e26e64e39 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 27 Jul 2017 02:08:48 -0500 Subject: [PATCH 142/318] Update insert_breaks.R --- R/insert_breaks.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 7092fe4..23edfb8 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -157,8 +157,8 @@ insert_break <- function(level, op <- options()$strcode op$anchor_in_sep <- anchor_in_sep options(strcode = op) - level <- as.numeric(unlist(strsplit(ret_value$level, ""))[nchar(ret_value$level)]) - + #level <- as.numeric(unlist(strsplit(ret_value$level, ""))[nchar(ret_value$level)]) + level=as.numeric(gsub("level ","",ret_value$level,)) } else { fill <- "" From 25a203a30de0fbe584564ba5e65c6907f37794a7 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 27 Jul 2017 02:14:27 -0500 Subject: [PATCH 143/318] Update insert_breaks.R --- R/insert_breaks.R | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 23edfb8..6bc8cae 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -157,8 +157,8 @@ insert_break <- function(level, op <- options()$strcode op$anchor_in_sep <- anchor_in_sep options(strcode = op) - #level <- as.numeric(unlist(strsplit(ret_value$level, ""))[nchar(ret_value$level)]) - level=as.numeric(gsub("level ","",ret_value$level,)) + level <- as.numeric(unlist(strsplit(ret_value$level, ""))[nchar(ret_value$level)]) + #level=as.numeric(gsub("level ","",ret_value$level,)) } else { fill <- "" @@ -304,7 +304,11 @@ give_breakchar <- function(level) { switch(as.character(level), "1" = "_", "2" = ".", - "3" = ". ") + "3" = ".. ", + "4" = "... ", + "5" = ".... ", + "6" = "..... ", + "7" = "...... ",) } ## ............................................................................ ## help insert ---- From b75d8d13db6a5a4ed240aec55fa757f199cd8af9 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 27 Jul 2017 02:28:40 -0500 Subject: [PATCH 144/318] Update sum_str.R --- R/sum_str.R | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index be4f5a6..6c1ec2a 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -262,7 +262,7 @@ if (rm_break_anchors) { lvl <- nchar(gsub("^(#+)\\s.*$", "\\1", lines[hash_candid], perl = TRUE)) replacement <- vapply(lvl, function(x) help_create_break(start = paste0(rep("#", x), collapse = ""), break_char = give_breakchar(x), - sep = paste(rep(" ", 4 - x), collapse = ""), anchor_in_sep = FALSE), + sep = paste(rep(" ", 8 - x), collapse = ""), anchor_in_sep = FALSE), FUN.VALUE = character(1)) lines[hash_candid] <- replacement @@ -274,7 +274,7 @@ if (rm_break_anchors) { remove <- c() if (granularity < 3) { # if there are any lines to remove hashes <- (granularity + 1):3 - spaces <- 4 - hashes + spaces <- 8- hashes # this variable stores the indices of all lines that should be dropped. for (i in 1:length(hashes)) { @@ -287,7 +287,7 @@ if (rm_break_anchors) { ### remove last separator if (last_sep == FALSE) { hashes <- min(find_gran("down", lines = lines), granularity) - spaces <- 4 - hashes + spaces <- 8 - hashes sub_pattern <- paste0("^#{", hashes, "}\\s{", spaces, "}[\\._].*$") remove <- append(remove, grep(sub_pattern, lines, perl = TRUE)) } @@ -536,6 +536,26 @@ for (j in 1:length(infolist)){ levelvector[3]=j } } + if (infolist[[j]][1]==4){ + if (levelvector[4]==0){ + levelvector[4]=j + } + } + if (infolist[[j]][1]==5){ + if (levelvector[5]==0){ + levelvector[5]=j + } + } + if (infolist[[j]][1]==6){ + if (levelvector[6]==0){ + levelvector[6]=j + } + } + if (infolist[[j]][1]==7){ + if (levelvector[7]==0){ + levelvector[7]=j + } + } if (as.numeric(parentlevel)!=0){ if (as.numeric(templevel)>as.numeric(parentlevel)){ parentindex=j-1 From f606350177435c21a627e0bc437214441344c9d5 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 27 Jul 2017 02:32:45 -0500 Subject: [PATCH 145/318] Update sum_str.R --- R/sum_str.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index 6c1ec2a..ebcb0b2 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -245,7 +245,7 @@ sum_str_helper <- function(path_in, ## get pattern lines <- readLines(con = path_in) - sub_pattern <- "^# [^ ]|^## [^ ]|^### [^ ]" + sub_pattern <- "^# [^ ]|^## [^ ]|^### [^ ]|^#### [^ ]|^##### [^ ]|^###### [^ ]|^####### [^ ]" cand <- grep(sub_pattern, lines, perl = FALSE) # extract candiates id if (length(cand) == 0) { return(warning("No line matching the required pattern", From b1903324734eabd7be99dc71ce45b537aeb293ef Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 27 Jul 2017 02:36:38 -0500 Subject: [PATCH 146/318] Update sum_str.R --- R/sum_str.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index ebcb0b2..cb4e609 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -512,7 +512,7 @@ write(DefaultAL,file="DefaultAssociationLibrary.txt") nodesnames=nodesclasses=nodesfrom=nodesto=nodesproperty=parentclass=property=line_rdf_vector="" templevel=parentlevel=parentindex=0 -levelvector=rep(0,3) +levelvector=rep(0,7) for (j in 1:length(infolist)){ line_rdf="" From d4a310433075bd334f06ac0ac0b9eff1ca790e78 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 27 Jul 2017 18:42:01 -0500 Subject: [PATCH 147/318] Update utils.R --- R/utils.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/utils.R b/R/utils.R index 5780759..0059479 100644 --- a/R/utils.R +++ b/R/utils.R @@ -106,7 +106,7 @@ encl <- function(..., left = "{", right = "}") { #' @param x character vector to remove white space #' @keywords internal rm_space <- function(x) { - gsub(" ", "", x) + gsub(" ", "%20", x) } From e35f99a0816de10e386601c5776df66655ad3ffd Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 27 Jul 2017 21:00:30 -0500 Subject: [PATCH 148/318] Update utils.R --- R/utils.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/utils.R b/R/utils.R index 0059479..ffad809 100644 --- a/R/utils.R +++ b/R/utils.R @@ -143,13 +143,13 @@ create_fill <- function(title = "title", encl(paste0("\"@id\":",get_id(id),","), paste0("\"@type\":",papply(classes, get_class),","), - paste0("\"label\":",get_title(title)), + paste0("\"label\":",rm_space(get_title(title))), papply(rm_space(attributes), get_attribute)) ) ) } else { with(function_container, paste( - get_title(title), + rm_space(get_title(title)), encl(get_id(id), papply(classes, get_class), papply(rm_space(attributes), get_attribute)) From 921b1e4b0122c3e8b59c557864bb327a8f0ca9ca Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 27 Jul 2017 21:02:16 -0500 Subject: [PATCH 149/318] Update utils.R --- R/utils.R | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/R/utils.R b/R/utils.R index ffad809..995c1b7 100644 --- a/R/utils.R +++ b/R/utils.R @@ -109,6 +109,10 @@ rm_space <- function(x) { gsub(" ", "%20", x) } +return_space <- function(x) { + gsub("%20", " ", x) +} + #' vapply and paste #' From 30e6e1c4e4c0718cacdac2fdcadec7dc35990f6e Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 27 Jul 2017 21:08:27 -0500 Subject: [PATCH 150/318] Update sum_str.R --- R/sum_str.R | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index cb4e609..0677671 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -459,7 +459,13 @@ for (j in 1:length(infolist)){ } } infolist=infolist1 - + +for (i in length(infolist)){ + for (j in length(infolist[[i]]){ + infolist[[i]][j]=return_space(infolist[[i]][j]) + } +} + schemahad=0 lines_rdf="" count0=1 From a3a6ed4838814a6b9a2e3e76ef78e56ada132fc9 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 27 Jul 2017 21:20:38 -0500 Subject: [PATCH 151/318] Update sum_str.R --- R/sum_str.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 0677671..c00a598 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -460,8 +460,8 @@ for (j in 1:length(infolist)){ } infolist=infolist1 -for (i in length(infolist)){ - for (j in length(infolist[[i]]){ +for (i in 1:length(infolist)){ + for (j in 1:length(infolist[[i]])){ infolist[[i]][j]=return_space(infolist[[i]][j]) } } From 537a0da719bb1b7eb0a08b999e5ecdd069c63555 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 27 Jul 2017 21:52:28 -0500 Subject: [PATCH 152/318] Update sum_str.R --- R/sum_str.R | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index c00a598..ced0aee 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -109,7 +109,8 @@ sum_str <- function(path_in = getSourceEditorContext()$path, baseURI="http://example.org/base/", UserID="UserID", prefix="user", - AL="default", + UserAL=FALSE, + fillAssociation=FALSE, ...) { ## ............................................................................ @@ -168,7 +169,8 @@ assert_number(granularity, lower = 1, upper = 3) baseURI=baseURI, UserID=UserID, prefix=prefix, - AL=AL) + UserAL=UserAL, + fillAssociation=fillAssociation) }) if (dir_out == "" && !is.null(file_out) && file_out == "object") { @@ -214,7 +216,8 @@ sum_str_helper <- function(path_in, baseURI, UserID, prefix, - AL) { + UserAL, + fillAssociation) { ## ............................................................................ ## argument interaction #### @@ -500,7 +503,7 @@ for (i in 1:length(schemahad)){ ProvONElist=c("provone:Process","provone:InputPort","provone:OutputPort", "provone:DataLink","provone:SeqCtrlLink","provone:Workflow", "provone:User","provone:ProcessExec","provone:Data", - "provone:Collection","provone:Visualization") + "provone:Collection","provone:Visualization","provone:Program") # Association word list: Associationlist=c("provone:hasSubProcess","provone:sourcePToCL","provone:CLtoDestP", "provone:hasInPort","provone:hasOutPort","provone:hasDefaultParam", @@ -577,10 +580,10 @@ for (j in 1:length(infolist)){ } } # judge association: - if (AL=="default"){ + if (UserAL==FALSE){ AssociationsLib=read.table("DefaultAssociationLibrary.txt",sep=",",header=TRUE) } - else if (AL=="user") { + else if (UserAL==TRUE) { AssociationsLib=read.table("AssociationsLibrary.txt",sep=",",header=TRUE) } @@ -596,7 +599,7 @@ for (j in 1:length(infolist)){ nodesproperty=paste0(nodesproperty,AssociationsLib$ReverseProperty," ") } } - else if (as.numeric(parentlevel)!=0){ + else if ((fillAssociation=TRUE)&(as.numeric(parentlevel)!=0)){ property="str:has" nodesfrom=paste0(nodesfrom,infolist[[as.numeric(parentindex)]][2]," ") nodesto=paste0(nodesto,infolist[[j]][2]," ") From e9118a9128e5d3e93840026f46e22384418bce7d Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 27 Jul 2017 22:01:05 -0500 Subject: [PATCH 153/318] Update sum_str.R --- R/sum_str.R | 1 + 1 file changed, 1 insertion(+) diff --git a/R/sum_str.R b/R/sum_str.R index ced0aee..9f6ab4e 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -588,6 +588,7 @@ for (j in 1:length(infolist)){ } AssociationNUM=which(tempclass==AssociationsLib$ChildClass[which(parentclass==AssociationsLib$ParentClass)]) + print ((fillAssociation=TRUE)&(as.numeric(parentlevel)!=0)) if (length(AssociationNUM)>0){ property=as.character(AssociationsLib$Property[AssociationNUM]) if (AssociationsLib$Ways[AssociationNUM]==2){ From 8b542e66745404acea79973e0016c6eeb1cce83f Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 27 Jul 2017 22:02:52 -0500 Subject: [PATCH 154/318] Update sum_str.R --- R/sum_str.R | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/R/sum_str.R b/R/sum_str.R index 9f6ab4e..62a1787 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -588,6 +588,11 @@ for (j in 1:length(infolist)){ } AssociationNUM=which(tempclass==AssociationsLib$ChildClass[which(parentclass==AssociationsLib$ParentClass)]) + print ("fillAssociation") + print (fillAssociation=TRUE) + print ("as.numeric") + print (as.numeric(parentlevel)!=0)) + print ("total") print ((fillAssociation=TRUE)&(as.numeric(parentlevel)!=0)) if (length(AssociationNUM)>0){ property=as.character(AssociationsLib$Property[AssociationNUM]) From fc566d77168e129d4bac00d810f5e87c5f8b356e Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 27 Jul 2017 22:03:34 -0500 Subject: [PATCH 155/318] Update sum_str.R --- R/sum_str.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index 62a1787..18c866a 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -591,7 +591,7 @@ for (j in 1:length(infolist)){ print ("fillAssociation") print (fillAssociation=TRUE) print ("as.numeric") - print (as.numeric(parentlevel)!=0)) + print (as.numeric(parentlevel)!=0) print ("total") print ((fillAssociation=TRUE)&(as.numeric(parentlevel)!=0)) if (length(AssociationNUM)>0){ From 733045a5332e56f0e3eeb369b6af89cb9bda082d Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 27 Jul 2017 22:05:19 -0500 Subject: [PATCH 156/318] Update sum_str.R --- R/sum_str.R | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 18c866a..e9b0e28 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -588,12 +588,7 @@ for (j in 1:length(infolist)){ } AssociationNUM=which(tempclass==AssociationsLib$ChildClass[which(parentclass==AssociationsLib$ParentClass)]) - print ("fillAssociation") - print (fillAssociation=TRUE) - print ("as.numeric") - print (as.numeric(parentlevel)!=0) - print ("total") - print ((fillAssociation=TRUE)&(as.numeric(parentlevel)!=0)) + if (length(AssociationNUM)>0){ property=as.character(AssociationsLib$Property[AssociationNUM]) if (AssociationsLib$Ways[AssociationNUM]==2){ @@ -605,7 +600,7 @@ for (j in 1:length(infolist)){ nodesproperty=paste0(nodesproperty,AssociationsLib$ReverseProperty," ") } } - else if ((fillAssociation=TRUE)&(as.numeric(parentlevel)!=0)){ + else if ((fillAssociation==TRUE)&(as.numeric(parentlevel)!=0)){ property="str:has" nodesfrom=paste0(nodesfrom,infolist[[as.numeric(parentindex)]][2]," ") nodesto=paste0(nodesto,infolist[[j]][2]," ") From 12a0349a2d9f8b4028d607f5d4c9f164e9653a33 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 27 Jul 2017 22:13:06 -0500 Subject: [PATCH 157/318] Update sum_str.R --- R/sum_str.R | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index e9b0e28..91a1090 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -110,7 +110,7 @@ sum_str <- function(path_in = getSourceEditorContext()$path, UserID="UserID", prefix="user", UserAL=FALSE, - fillAssociation=FALSE, + fillAssociation=TRUE, ...) { ## ............................................................................ @@ -599,7 +599,13 @@ for (j in 1:length(infolist)){ nodesto=paste0(nodesto,infolist[[as.numeric(parentindex)]][2]," ") nodesproperty=paste0(nodesproperty,AssociationsLib$ReverseProperty," ") } + else if (AssociationsLib$Ways[AssociationNUM]==1){ + nodesfrom=paste0(nodesfrom,infolist[[as.numeric(parentindex)]][2]," ") + nodesto=paste0(nodesto,infolist[[j]][2]," ") + nodesproperty=paste0(nodesproperty,property," ") } + } + else if ((fillAssociation==TRUE)&(as.numeric(parentlevel)!=0)){ property="str:has" nodesfrom=paste0(nodesfrom,infolist[[as.numeric(parentindex)]][2]," ") From 9cca3c2db5419d59c7261a19d9de3d3c025474af Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 27 Jul 2017 22:15:57 -0500 Subject: [PATCH 158/318] Update sum_str.R --- R/sum_str.R | 2 ++ 1 file changed, 2 insertions(+) diff --git a/R/sum_str.R b/R/sum_str.R index 91a1090..aa8d86b 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -592,6 +592,7 @@ for (j in 1:length(infolist)){ if (length(AssociationNUM)>0){ property=as.character(AssociationsLib$Property[AssociationNUM]) if (AssociationsLib$Ways[AssociationNUM]==2){ + print ("2") nodesfrom=paste0(nodesfrom,infolist[[as.numeric(parentindex)]][2]," ") nodesto=paste0(nodesto,infolist[[j]][2]," ") nodesproperty=paste0(nodesproperty,property," ") @@ -600,6 +601,7 @@ for (j in 1:length(infolist)){ nodesproperty=paste0(nodesproperty,AssociationsLib$ReverseProperty," ") } else if (AssociationsLib$Ways[AssociationNUM]==1){ + print ("1") nodesfrom=paste0(nodesfrom,infolist[[as.numeric(parentindex)]][2]," ") nodesto=paste0(nodesto,infolist[[j]][2]," ") nodesproperty=paste0(nodesproperty,property," ") From 2370d983b155f3f639588cf186ea86a8c217d355 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 27 Jul 2017 22:16:57 -0500 Subject: [PATCH 159/318] Update sum_str.R --- R/sum_str.R | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index aa8d86b..d5f2bdd 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -588,10 +588,11 @@ for (j in 1:length(infolist)){ } AssociationNUM=which(tempclass==AssociationsLib$ChildClass[which(parentclass==AssociationsLib$ParentClass)]) - + print (AssociationNUM) if (length(AssociationNUM)>0){ property=as.character(AssociationsLib$Property[AssociationNUM]) if (AssociationsLib$Ways[AssociationNUM]==2){ + print ("2") nodesfrom=paste0(nodesfrom,infolist[[as.numeric(parentindex)]][2]," ") nodesto=paste0(nodesto,infolist[[j]][2]," ") From 32f79d94a68c96c9587cb0559349b1c6f3b570bc Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 27 Jul 2017 22:19:06 -0500 Subject: [PATCH 160/318] Update sum_str.R --- R/sum_str.R | 1 + 1 file changed, 1 insertion(+) diff --git a/R/sum_str.R b/R/sum_str.R index d5f2bdd..c3bdcb6 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -588,6 +588,7 @@ for (j in 1:length(infolist)){ } AssociationNUM=which(tempclass==AssociationsLib$ChildClass[which(parentclass==AssociationsLib$ParentClass)]) + print (infolist[[j]]) print (AssociationNUM) if (length(AssociationNUM)>0){ property=as.character(AssociationsLib$Property[AssociationNUM]) From 7c94c07e7daaeae1d94a095ea71c6fb7ab04fa7d Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 27 Jul 2017 22:22:04 -0500 Subject: [PATCH 161/318] Update sum_str.R --- R/sum_str.R | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/R/sum_str.R b/R/sum_str.R index c3bdcb6..9d730e1 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -588,6 +588,10 @@ for (j in 1:length(infolist)){ } AssociationNUM=which(tempclass==AssociationsLib$ChildClass[which(parentclass==AssociationsLib$ParentClass)]) + print ("p") + print (parentclass) + print ("c") + print (tempclass) print (infolist[[j]]) print (AssociationNUM) if (length(AssociationNUM)>0){ From 8ad3326954e25240bc98a3098355168aaf8d8bc5 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 27 Jul 2017 22:24:54 -0500 Subject: [PATCH 162/318] Update sum_str.R --- R/sum_str.R | 1 + 1 file changed, 1 insertion(+) diff --git a/R/sum_str.R b/R/sum_str.R index 9d730e1..88927e0 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -524,6 +524,7 @@ templevel=parentlevel=parentindex=0 levelvector=rep(0,7) for (j in 1:length(infolist)){ + AssociationNUM=0 line_rdf="" title0=infolist[[j]][2] ID=infolist[[j]][3] From 46bcc40fb70aa72d04f1814ef84c2cda71205e18 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 27 Jul 2017 22:27:38 -0500 Subject: [PATCH 163/318] Update sum_str.R --- R/sum_str.R | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 88927e0..413d7d0 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -587,13 +587,11 @@ for (j in 1:length(infolist)){ else if (UserAL==TRUE) { AssociationsLib=read.table("AssociationsLibrary.txt",sep=",",header=TRUE) } - + + print (AssociationNUM) AssociationNUM=which(tempclass==AssociationsLib$ChildClass[which(parentclass==AssociationsLib$ParentClass)]) - print ("p") - print (parentclass) - print ("c") - print (tempclass) - print (infolist[[j]]) + print (which(parentclass==AssociationsLib$ParentClass)) + print (which(tempclass==AssociationsLib$ChildClass[which(parentclass==AssociationsLib$ParentClass)])) print (AssociationNUM) if (length(AssociationNUM)>0){ property=as.character(AssociationsLib$Property[AssociationNUM]) From e4ad0bf9244985e96235b24312444763fbe97c1b Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 27 Jul 2017 22:29:28 -0500 Subject: [PATCH 164/318] Update sum_str.R --- R/sum_str.R | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 413d7d0..2b422a4 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -587,17 +587,17 @@ for (j in 1:length(infolist)){ else if (UserAL==TRUE) { AssociationsLib=read.table("AssociationsLibrary.txt",sep=",",header=TRUE) } - + print ("first:") print (AssociationNUM) AssociationNUM=which(tempclass==AssociationsLib$ChildClass[which(parentclass==AssociationsLib$ParentClass)]) print (which(parentclass==AssociationsLib$ParentClass)) print (which(tempclass==AssociationsLib$ChildClass[which(parentclass==AssociationsLib$ParentClass)])) + print ("second:") print (AssociationNUM) if (length(AssociationNUM)>0){ property=as.character(AssociationsLib$Property[AssociationNUM]) if (AssociationsLib$Ways[AssociationNUM]==2){ - - print ("2") + print ("!!2") nodesfrom=paste0(nodesfrom,infolist[[as.numeric(parentindex)]][2]," ") nodesto=paste0(nodesto,infolist[[j]][2]," ") nodesproperty=paste0(nodesproperty,property," ") @@ -606,7 +606,7 @@ for (j in 1:length(infolist)){ nodesproperty=paste0(nodesproperty,AssociationsLib$ReverseProperty," ") } else if (AssociationsLib$Ways[AssociationNUM]==1){ - print ("1") + print ("!!1") nodesfrom=paste0(nodesfrom,infolist[[as.numeric(parentindex)]][2]," ") nodesto=paste0(nodesto,infolist[[j]][2]," ") nodesproperty=paste0(nodesproperty,property," ") From 09c325691b0a90a36e3aec9f31243e35bf802e75 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 27 Jul 2017 22:33:38 -0500 Subject: [PATCH 165/318] Update sum_str.R --- R/sum_str.R | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 2b422a4..4ad5664 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -587,17 +587,17 @@ for (j in 1:length(infolist)){ else if (UserAL==TRUE) { AssociationsLib=read.table("AssociationsLibrary.txt",sep=",",header=TRUE) } - print ("first:") - print (AssociationNUM) - AssociationNUM=which(tempclass==AssociationsLib$ChildClass[which(parentclass==AssociationsLib$ParentClass)]) - print (which(parentclass==AssociationsLib$ParentClass)) - print (which(tempclass==AssociationsLib$ChildClass[which(parentclass==AssociationsLib$ParentClass)])) - print ("second:") - print (AssociationNUM) + #print ("first:") + #print (AssociationNUM) + AssociationNUM=min(which(parentclass==AssociationsLib$ParentClass)[which(tempclass==AssociationsLib$ChildClass[which(parentclass==AssociationsLib$ParentClass)])]) + #print (which(parentclass==AssociationsLib$ParentClass)) + #print (which(tempclass==AssociationsLib$ChildClass[which(parentclass==AssociationsLib$ParentClass)])) + #print ("second:") + #print (AssociationNUM) if (length(AssociationNUM)>0){ property=as.character(AssociationsLib$Property[AssociationNUM]) if (AssociationsLib$Ways[AssociationNUM]==2){ - print ("!!2") + # print ("!!2") nodesfrom=paste0(nodesfrom,infolist[[as.numeric(parentindex)]][2]," ") nodesto=paste0(nodesto,infolist[[j]][2]," ") nodesproperty=paste0(nodesproperty,property," ") @@ -605,12 +605,12 @@ for (j in 1:length(infolist)){ nodesto=paste0(nodesto,infolist[[as.numeric(parentindex)]][2]," ") nodesproperty=paste0(nodesproperty,AssociationsLib$ReverseProperty," ") } - else if (AssociationsLib$Ways[AssociationNUM]==1){ - print ("!!1") - nodesfrom=paste0(nodesfrom,infolist[[as.numeric(parentindex)]][2]," ") - nodesto=paste0(nodesto,infolist[[j]][2]," ") - nodesproperty=paste0(nodesproperty,property," ") - } + else if (AssociationsLib$Ways[AssociationNUM]==1){ + #print ("!!1") + nodesfrom=paste0(nodesfrom,infolist[[as.numeric(parentindex)]][2]," ") + nodesto=paste0(nodesto,infolist[[j]][2]," ") + nodesproperty=paste0(nodesproperty,property," ") + } } else if ((fillAssociation==TRUE)&(as.numeric(parentlevel)!=0)){ From b3494710691ff329321a24e967fa14063d4f4d30 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 27 Jul 2017 22:35:54 -0500 Subject: [PATCH 166/318] Update sum_str.R --- R/sum_str.R | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/R/sum_str.R b/R/sum_str.R index 4ad5664..546cb88 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -589,7 +589,12 @@ for (j in 1:length(infolist)){ } #print ("first:") #print (AssociationNUM) + if (length(which(parentclass==AssociationsLib$ParentClass))>1){ AssociationNUM=min(which(parentclass==AssociationsLib$ParentClass)[which(tempclass==AssociationsLib$ChildClass[which(parentclass==AssociationsLib$ParentClass)])]) + } + else if (length(which(parentclass==AssociationsLib$ParentClass))==1){ + AssociationNUM=which(parentclass==AssociationsLib$ParentClass)[which(tempclass==AssociationsLib$ChildClass[which(parentclass==AssociationsLib$ParentClass)])] + } #print (which(parentclass==AssociationsLib$ParentClass)) #print (which(tempclass==AssociationsLib$ChildClass[which(parentclass==AssociationsLib$ParentClass)])) #print ("second:") From 32e9d6e4bd8bd0e9abad24c131ba90b4fc62617a Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 27 Jul 2017 22:44:24 -0500 Subject: [PATCH 167/318] Update sum_str.R --- R/sum_str.R | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 546cb88..5b50fdb 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -520,7 +520,7 @@ DefaultAL=paste0("ParentClass,","ChildClass,","Ways,","Property,","ReverseProper write(DefaultAL,file="DefaultAssociationLibrary.txt") nodesnames=nodesclasses=nodesfrom=nodesto=nodesproperty=parentclass=property=line_rdf_vector="" -templevel=parentlevel=parentindex=0 +templevel=parentlevel=parentindex=tempwordlist=0 levelvector=rep(0,7) for (j in 1:length(infolist)){ @@ -587,18 +587,26 @@ for (j in 1:length(infolist)){ else if (UserAL==TRUE) { AssociationsLib=read.table("AssociationsLibrary.txt",sep=",",header=TRUE) } - #print ("first:") - #print (AssociationNUM) - if (length(which(parentclass==AssociationsLib$ParentClass))>1){ - AssociationNUM=min(which(parentclass==AssociationsLib$ParentClass)[which(tempclass==AssociationsLib$ChildClass[which(parentclass==AssociationsLib$ParentClass)])]) - } - else if (length(which(parentclass==AssociationsLib$ParentClass))==1){ - AssociationNUM=which(parentclass==AssociationsLib$ParentClass)[which(tempclass==AssociationsLib$ChildClass[which(parentclass==AssociationsLib$ParentClass)])] + print ("first:") + print (AssociationNUM) + tempwordlist=which(parentclass==AssociationsLib$ParentClass) + print ("tempwordlist") + print (tempwordlist) + tempPwordlist=which(tempclass==AssociationsLib$ChildClass[tempwordlist]) + print ("tempPwordlist") + print (tempPwordlist) + if (length(tempPwordlist)>1){ + print (">1") + AssociationNUM=tempwordlist[min(tempPwordlist)] } + else if (lenth(tempwordlist)==1){ + print ("==1") + AssociationNUM=tempwordlist[tempPwordlist] + } #print (which(parentclass==AssociationsLib$ParentClass)) #print (which(tempclass==AssociationsLib$ChildClass[which(parentclass==AssociationsLib$ParentClass)])) - #print ("second:") - #print (AssociationNUM) + print ("second:") + print (AssociationNUM) if (length(AssociationNUM)>0){ property=as.character(AssociationsLib$Property[AssociationNUM]) if (AssociationsLib$Ways[AssociationNUM]==2){ From 63c9d4447073bb8cafe07da8580dbbc59211d06c Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 27 Jul 2017 22:45:14 -0500 Subject: [PATCH 168/318] Update sum_str.R --- R/sum_str.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index 5b50fdb..9eb2ad5 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -599,7 +599,7 @@ for (j in 1:length(infolist)){ print (">1") AssociationNUM=tempwordlist[min(tempPwordlist)] } - else if (lenth(tempwordlist)==1){ + else if (length(tempwordlist)==1){ print ("==1") AssociationNUM=tempwordlist[tempPwordlist] } From fb1c8fe2c349e44f6fc9998697e41e7a8c6c31d1 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 27 Jul 2017 22:47:29 -0500 Subject: [PATCH 169/318] Update sum_str.R --- R/sum_str.R | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index 9eb2ad5..4e99029 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -607,7 +607,8 @@ for (j in 1:length(infolist)){ #print (which(tempclass==AssociationsLib$ChildClass[which(parentclass==AssociationsLib$ParentClass)])) print ("second:") print (AssociationNUM) - if (length(AssociationNUM)>0){ + #if (length(AssociationNUM)>0){ + if (AssociationNUM>0){ property=as.character(AssociationsLib$Property[AssociationNUM]) if (AssociationsLib$Ways[AssociationNUM]==2){ # print ("!!2") From 401216ee6085845c2e0de8d47a054ff5dd824741 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 27 Jul 2017 22:51:26 -0500 Subject: [PATCH 170/318] Update sum_str.R --- R/sum_str.R | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 4e99029..d87cc8f 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -743,7 +743,9 @@ nodesnames2=strsplit(nodesnames," ") nodesclasses2=strsplit(nodesclasses," ") nodes <- data.frame(name = nodesnames2[[1]], class = nodesclasses2[[1]]) -#print (nodes) + +print (nodes) + nodesfrom2=strsplit(nodesfrom," ") nodesto2=strsplit(nodesto," ") nodesproperty2=strsplit(nodesproperty," ") @@ -751,10 +753,13 @@ nodesproperty2=strsplit(nodesproperty," ") exceptnum=except=nodesfrom3=nodesto3=nodesproperty3=nodesnm=0 exceptwords=c("str:has","str:belongTo") #diagonal matrix +print (nodesfrom2) +print (nodesto2) +print (nodesproperty2) for (i in 1:(length(nodesfrom2[[1]])-1)){ - #print (i) + print (i) for (j in ((i+1):length(nodesfrom2[[1]]))){ - #print (j) + print (j) if (i!=j){ if((nodesfrom2[[1]][i]==nodesfrom2[[1]][j])&(nodesto2[[1]][i]==nodesto2[[1]][j])){ exceptnum=exceptnum+1 @@ -766,10 +771,10 @@ for (i in 1:(length(nodesfrom2[[1]])-1)){ } } } -#print (nodesfrom2) -#print (nodesto2) -#print (nodesproperty2) -#print (except) +print (nodesfrom2) +print (nodesto2) +print (nodesproperty2) +print (except) for (i in 1:length(nodesfrom2[[1]])){ if (i %in% except){} else { From aa099245c31630a08e2a2732daae1c6e681ebc14 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 27 Jul 2017 22:55:09 -0500 Subject: [PATCH 171/318] Update sum_str.R --- R/sum_str.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index d87cc8f..b86f536 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -760,7 +760,7 @@ for (i in 1:(length(nodesfrom2[[1]])-1)){ print (i) for (j in ((i+1):length(nodesfrom2[[1]]))){ print (j) - if (i!=j){ + if ((i!=j)&(length(nodesfrom2[[1]])>=j)){ if((nodesfrom2[[1]][i]==nodesfrom2[[1]][j])&(nodesto2[[1]][i]==nodesto2[[1]][j])){ exceptnum=exceptnum+1 if (nodesproperty2[[1]][i] %in% exceptwords){ From 0731ee8429971c5b7704070d24d896127b63f8fe Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 27 Jul 2017 22:57:22 -0500 Subject: [PATCH 172/318] Update sum_str.R --- R/sum_str.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index b86f536..49e7e18 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -760,7 +760,7 @@ for (i in 1:(length(nodesfrom2[[1]])-1)){ print (i) for (j in ((i+1):length(nodesfrom2[[1]]))){ print (j) - if ((i!=j)&(length(nodesfrom2[[1]])>=j)){ + if ((i!=j)&(length(nodesfrom2[[1]])>=j)&(length(nodesto2[[1]])>=j)){ if((nodesfrom2[[1]][i]==nodesfrom2[[1]][j])&(nodesto2[[1]][i]==nodesto2[[1]][j])){ exceptnum=exceptnum+1 if (nodesproperty2[[1]][i] %in% exceptwords){ From 953aa47239605701e901bb5e8cb4f98d5ed2d477 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 27 Jul 2017 22:59:24 -0500 Subject: [PATCH 173/318] Update sum_str.R --- R/sum_str.R | 2 ++ 1 file changed, 2 insertions(+) diff --git a/R/sum_str.R b/R/sum_str.R index 49e7e18..9d48339 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -757,8 +757,10 @@ print (nodesfrom2) print (nodesto2) print (nodesproperty2) for (i in 1:(length(nodesfrom2[[1]])-1)){ + print ("this is i:") print (i) for (j in ((i+1):length(nodesfrom2[[1]]))){ + print ("this is j:") print (j) if ((i!=j)&(length(nodesfrom2[[1]])>=j)&(length(nodesto2[[1]])>=j)){ if((nodesfrom2[[1]][i]==nodesfrom2[[1]][j])&(nodesto2[[1]][i]==nodesto2[[1]][j])){ From 5a5492904ce64d2218e1eea7b39a433243295e2a Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 27 Jul 2017 23:01:29 -0500 Subject: [PATCH 174/318] Update sum_str.R --- R/sum_str.R | 2 ++ 1 file changed, 2 insertions(+) diff --git a/R/sum_str.R b/R/sum_str.R index 9d48339..1e8692f 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -756,6 +756,7 @@ exceptwords=c("str:has","str:belongTo") print (nodesfrom2) print (nodesto2) print (nodesproperty2) +if ((length(nodesfrom2[[1]])-1)>=1){ for (i in 1:(length(nodesfrom2[[1]])-1)){ print ("this is i:") print (i) @@ -773,6 +774,7 @@ for (i in 1:(length(nodesfrom2[[1]])-1)){ } } } + } print (nodesfrom2) print (nodesto2) print (nodesproperty2) From 0c98f5dd802972e3027c1fed19c8c949c6fdca1d Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 27 Jul 2017 23:21:24 -0500 Subject: [PATCH 175/318] Update sum_str.R --- R/sum_str.R | 2 ++ 1 file changed, 2 insertions(+) diff --git a/R/sum_str.R b/R/sum_str.R index 1e8692f..c8ab59a 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -741,6 +741,8 @@ for (j in 1:length(infolist)){ library(igraph) nodesnames2=strsplit(nodesnames," ") nodesclasses2=strsplit(nodesclasses," ") +print (nodesnames2) +print (nodesclasses2) nodes <- data.frame(name = nodesnames2[[1]], class = nodesclasses2[[1]]) From f920e2db274e210a9bdac38c3ceffb1f6ac0b9a5 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 27 Jul 2017 23:28:23 -0500 Subject: [PATCH 176/318] Update sum_str.R --- R/sum_str.R | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index c8ab59a..f091235 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -464,7 +464,7 @@ for (j in 1:length(infolist)){ infolist=infolist1 for (i in 1:length(infolist)){ - for (j in 1:length(infolist[[i]])){ + for (j in 3:length(infolist[[i]])){ infolist[[i]][j]=return_space(infolist[[i]][j]) } } @@ -785,8 +785,8 @@ for (i in 1:length(nodesfrom2[[1]])){ if (i %in% except){} else { nodesnm=nodesnm+1 - nodesfrom3[nodesnm]=nodesfrom2[[1]][i] - nodesto3[nodesnm]=nodesto2[[1]][i] + nodesfrom3[nodesnm]=return_space(nodesfrom2[[1]][i]) + nodesto3[nodesnm]=return_space(nodesto2[[1]][i]) nodesproperty3[nodesnm]=nodesproperty2[[1]][i] } } @@ -819,6 +819,7 @@ for (i in 1:length(line_rdf_vector)){ } for (i in 1:length(line_rdf_vector)){ + line_rdf_vector[i]=return_space(line_rdf_vector[i]) lines_rdf=paste(lines_rdf,line_rdf_vector[i]) } From 2f037a566b57cc5ba5b6dc641b9270aa1bb710b0 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 27 Jul 2017 23:31:03 -0500 Subject: [PATCH 177/318] Update sum_str.R --- R/sum_str.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index f091235..98ace99 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -743,7 +743,7 @@ nodesnames2=strsplit(nodesnames," ") nodesclasses2=strsplit(nodesclasses," ") print (nodesnames2) print (nodesclasses2) -nodes <- data.frame(name = nodesnames2[[1]], +nodes <- data.frame(name = return_space(nodesnames2[[1]]), class = nodesclasses2[[1]]) print (nodes) From d47fb1168be7751eeddd99687660795bb5562234 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 28 Jul 2017 00:06:05 -0500 Subject: [PATCH 178/318] Update sum_str.R --- R/sum_str.R | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 98ace99..27f120f 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -802,19 +802,20 @@ E(g3)$label <- E(g3)$property titles=IDs=0 for (i in 1:length(infolist)){ - titles[i]=infolist[[i]][2] + titles[i]=return_space(infolist[[i]][2]) IDs[i]=infolist[[i]][3] } for (i in 1:length(line_rdf_vector)){ tempnumber=which(nesting$from==titles[i]) + if (length(tempnumber)>0){ for (j in 1:length(tempnumber)){ #entityname2=paste0("<",FullURI,IDs[which(titles==nesting$to[tempnumber[j]])],">") entityname2=paste0(prefix,":",IDs[which(titles==nesting$to[tempnumber[j]])]) if (j==length(tempnumber)){ line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nesting$property[tempnumber[j]],entityname2,".","\n")} else{line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nesting$property[tempnumber[j]],entityname2,";","\n")} - + } } } From 02e2e1d5a00a75cf9e2a6399e3629fe8b0de9fdc Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 28 Jul 2017 01:05:35 -0500 Subject: [PATCH 179/318] Update sum_str.R --- R/sum_str.R | 110 ++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 76 insertions(+), 34 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 27f120f..bcbc5fb 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -524,8 +524,8 @@ templevel=parentlevel=parentindex=tempwordlist=0 levelvector=rep(0,7) for (j in 1:length(infolist)){ - AssociationNUM=0 - line_rdf="" + AssociationNUM=firstmeet=0 + line_rdf=classeswords="" title0=infolist[[j]][2] ID=infolist[[j]][3] parentlevel=templevel @@ -567,18 +567,18 @@ for (j in 1:length(infolist)){ } } if (as.numeric(parentlevel)!=0){ - if (as.numeric(templevel)>as.numeric(parentlevel)){ - parentindex=j-1 - parentclass=infolist[[j-1]][4] - } - else if (templevel==parentlevel){ - parentindex=levelvector[as.numeric(templevel)-1] - parentclass=infolist[[as.numeric(parentindex)]][4] - } - else { - levelvector[templevel]=j - parentindex=levelvector[as.numeric(templevel)-1] - } + if (as.numeric(templevel)>as.numeric(parentlevel)){ + parentindex=j-1 + parentclass=infolist[[j-1]][4] + } + else if (templevel==parentlevel){ + parentindex=levelvector[as.numeric(templevel)-1] + parentclass=infolist[[as.numeric(parentindex)]][4] + } + else { + levelvector[templevel]=j + parentindex=levelvector[as.numeric(templevel)-1] + } } # judge association: if (UserAL==FALSE){ @@ -597,8 +597,8 @@ for (j in 1:length(infolist)){ print (tempPwordlist) if (length(tempPwordlist)>1){ print (">1") - AssociationNUM=tempwordlist[min(tempPwordlist)] - } + AssociationNUM=tempwordlist[min(tempPwordlist)] + } else if (length(tempwordlist)==1){ print ("==1") AssociationNUM=tempwordlist[tempPwordlist] @@ -619,7 +619,7 @@ for (j in 1:length(infolist)){ nodesto=paste0(nodesto,infolist[[as.numeric(parentindex)]][2]," ") nodesproperty=paste0(nodesproperty,AssociationsLib$ReverseProperty," ") } - else if (AssociationsLib$Ways[AssociationNUM]==1){ + else if (AssociationsLib$Ways[AssociationNUM]==1){ #print ("!!1") nodesfrom=paste0(nodesfrom,infolist[[as.numeric(parentindex)]][2]," ") nodesto=paste0(nodesto,infolist[[j]][2]," ") @@ -636,7 +636,7 @@ for (j in 1:length(infolist)){ nodesto=paste0(nodesto,infolist[[as.numeric(parentindex)]][2]," ") nodesproperty=paste0(nodesproperty,"str:belongTo"," ") } - + #if (parentclass=="provone:Process"&tempclass=="provone:Process"){ # property="provone:hasSubProcess" #} @@ -671,7 +671,7 @@ for (j in 1:length(infolist)){ # nodesto=paste0(nodesto,infolist[[as.numeric(parentindex)]][2]," ") # nodesproperty=paste0(nodesproperty,"str:belongTo"," ") #} - + for (i in 4:length(infolist[[j]])){ tempword="" tempentity="" @@ -679,13 +679,14 @@ for (j in 1:length(infolist)){ if (i==4){ tempword=infolist[[j]][4] nodesnames=paste0(nodesnames,title0," ") - nodesclasses=paste0(nodesclasses,tempword," ") + classeswords=paste0(tempword) + #nodesclasses=paste0(nodesclasses,tempword," ") #entityname=paste0(FullURI,ID) #title=paste0("<",entityname,">") entityname=paste0(prefix,":",ID) title=paste0(entityname) - line_rdf=paste("\n",title,"a",tempword) + line_rdf=paste0("\n ",title," a ",tempword) if (i==length(infolist[[j]])){ line_rdf=paste(line_rdf,";","\n") @@ -694,7 +695,21 @@ for (j in 1:length(infolist)){ line_rdf=paste(line_rdf,"\t","rdfs:label",title0,";","\n")#,".","\n") } else{ - line_rdf=paste(line_rdf,";","\n") + line_rdf=paste(line_rdf)#,";","\n") + } + if (i==length(infolist[[j]])){ + nodesclasses=paste0(nodesclasses,classeswords," ") + if (nchar(temp_line)>0){ + temp_line=paste("\t",temp_line,";","\n") + } + #temp_line=paste(temp_line,"\t","rdfs:label",title0,".","\n") + title0=paste0("\"",title0,"\"") + temp_line=paste(temp_line,"\t","rdfs:label",title0,";","\n")#,".","\n") + } + else { + #if (nchar(temp_line)>0){ + # temp_line=paste("\t",temp_line,";","\n") + #} } }# out of if i==4 @@ -702,6 +717,13 @@ for (j in 1:length(infolist)){ tempword=infolist[[j]][i] # old association if (grepl("=",tempword)){ + firstmeet=firstmeet+1 + if (firstmeet==1){ + line_rdf=paste0(line_rdf,";","\n") + + } + + tempwordlist=strsplit(tempword,"=") #tempentity=paste0("<",tempwordlist[[1]][2],">") @@ -712,24 +734,44 @@ for (j in 1:length(infolist)){ nodesproperty=paste0(nodesproperty,tempwordlist[[1]][1]," ") } else{ - temp_line=paste(tempwordlist[[1]][1],tempwordlist[[1]][2]) + temp_line=paste(tempwordlist[[1]][1],tempwordlist[[1]][2]) } - } - #end session - - if (i==length(infolist[[j]])){ - if (nchar(temp_line)>0){ - temp_line=paste("\t",temp_line,";","\n") + if (i==length(infolist[[j]])){ + nodesclasses=paste0(nodesclasses,classeswords," ") + if (nchar(temp_line)>0){ + temp_line=paste("\t",temp_line,";","\n") } - #temp_line=paste(temp_line,"\t","rdfs:label",title0,".","\n") - title0=paste0("\"",title0,"\"") - temp_line=paste(temp_line,"\t","rdfs:label",title0,";","\n")#,".","\n") + #temp_line=paste(temp_line,"\t","rdfs:label",title0,".","\n") + title0=paste0("\"",title0,"\"") + temp_line=paste(temp_line,"\t","rdfs:label",title0,";","\n")#,".","\n") + } + else { + if (nchar(temp_line)>0){ + temp_line=paste("\t",temp_line,";","\n") + } + } } else { - if (nchar(temp_line)>0){ - temp_line=paste("\t",temp_line,";","\n") + classeswords=paste0(classeswords,",",tempword) + line_rdf=paste0(line_rdf,", ",tempword) + if (i==length(infolist[[j]])){ + nodesclasses=paste0(nodesclasses,classeswords," ") + if (nchar(temp_line)>0){ + temp_line=paste("\t",temp_line,";","\n") } + #temp_line=paste(temp_line,"\t","rdfs:label",title0,".","\n") + title0=paste0("\"",title0,"\"") + temp_line=paste(temp_line,";\n","\t","rdfs:label",title0,";","\n")#,".","\n") + } + else { + #if (nchar(temp_line)>0){ + # temp_line=paste("\t",temp_line,";","\n") + #} + } } + #end session + + } line_rdf=paste(line_rdf,temp_line) From 416ae4645400a8d48e19e2116c60bcc951321d3e Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 28 Jul 2017 01:12:59 -0500 Subject: [PATCH 180/318] Update insert_breaks.R --- R/insert_breaks.R | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 6bc8cae..0c4165a 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -372,7 +372,8 @@ find_title <- function(level) { # "wasAttributedTo","wasDerivedFrom","ProcessExec","dataOnLink","used","wasGeneratedBy","wasAssociatedWith", # "wasInformedBy","isPartOf","Data","Collection","wasDerivedFrom","hadMember")) class_choices <- paste(c("provone:Process","provone:InputPort","provone:OutputPort","provone:DataLink","provone:SeqCtrlLink", - "provone:Workflow","provone:User","provone:ProcessExec","provone:Data","provone:Collection","provone:Visualization")) + "provone:Workflow","provone:User","provone:ProcessExec","provone:Data","provone:Collection", + "provone:Visualization","provone:Program","prov:Plan")) ui <- miniPage( miniContentPanel( fillCol( From 8853ba394d5de60fb8fbec9e66360256cb0fe640 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 28 Jul 2017 01:21:50 -0500 Subject: [PATCH 181/318] Update sum_str.R --- R/sum_str.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index bcbc5fb..cf6f287 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -511,7 +511,7 @@ Associationlist=c("provone:hasSubProcess","provone:sourcePToCL","provone:CLtoDes "provone:DLToOutPort","provone:wasAttributedTo","provone:wasDerivedFrom", "provone:dataOnLink","provone:used","provone:wasGeneratedBy", "provone:wasAssociatedWith","provone:wasInformedBy","provone:isPartOf", - "provone:hadMember") + "provone:hadMember","cwfo:hasOutData") # Association library: DefaultAL=paste0("ParentClass,","ChildClass,","Ways,","Property,","ReverseProperty\n", "\"provone:Process\",","\"provone:Process\",","2,","\"provone:hasSubProcess\",","\"provone:wasDerivedFrom\"\n", From 952ae940952d459fb4ba88156898fd6c1eba666c Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 28 Jul 2017 01:29:01 -0500 Subject: [PATCH 182/318] Update sum_str.R --- R/sum_str.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index cf6f287..75ecc9d 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -599,7 +599,7 @@ for (j in 1:length(infolist)){ print (">1") AssociationNUM=tempwordlist[min(tempPwordlist)] } - else if (length(tempwordlist)==1){ + else if (length(tempPwordlist)==1){ print ("==1") AssociationNUM=tempwordlist[tempPwordlist] } From e42504229ad156ec0ad5e9c90e5f6bb4b5b8bb5b Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 28 Jul 2017 01:34:19 -0500 Subject: [PATCH 183/318] Update sum_str.R --- R/sum_str.R | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 75ecc9d..0537d26 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -832,13 +832,15 @@ for (i in 1:length(nodesfrom2[[1]])){ nodesproperty3[nodesnm]=nodesproperty2[[1]][i] } } - +print (nodesfrom3) +print (nodesto3) +print (nodesproperty3) nesting <- data.frame(from = nodesfrom3, to = nodesto3, property = nodesproperty3) -#print (nesting) +print (nesting) g3 <- graph_from_data_frame(nesting, directed=TRUE, vertices=nodes) E(g3)$label <- E(g3)$property From 72653f42ec3a3f1fa4f70c9f1c7cddc56c8cb376 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 28 Jul 2017 01:37:52 -0500 Subject: [PATCH 184/318] Update sum_str.R --- R/sum_str.R | 1 + 1 file changed, 1 insertion(+) diff --git a/R/sum_str.R b/R/sum_str.R index 0537d26..9a0d5a9 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -841,6 +841,7 @@ nesting <- data.frame(from = nodesfrom3, property = nodesproperty3) print (nesting) + print (nodes) g3 <- graph_from_data_frame(nesting, directed=TRUE, vertices=nodes) E(g3)$label <- E(g3)$property From 8db2709aa323f22776bc30066330c05afe202f42 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 28 Jul 2017 01:46:12 -0500 Subject: [PATCH 185/318] Update sum_str.R --- R/sum_str.R | 3 +++ 1 file changed, 3 insertions(+) diff --git a/R/sum_str.R b/R/sum_str.R index 9a0d5a9..3552c69 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -606,6 +606,9 @@ for (j in 1:length(infolist)){ #print (which(parentclass==AssociationsLib$ParentClass)) #print (which(tempclass==AssociationsLib$ChildClass[which(parentclass==AssociationsLib$ParentClass)])) print ("second:") + print (j) + print (tempclass) + print (parentclass) print (AssociationNUM) #if (length(AssociationNUM)>0){ if (AssociationNUM>0){ From 4185a6c915c73514f9534d0c22006bedaf160750 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 28 Jul 2017 01:55:23 -0500 Subject: [PATCH 186/318] Update sum_str.R --- R/sum_str.R | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 3552c69..a259652 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -589,19 +589,19 @@ for (j in 1:length(infolist)){ } print ("first:") print (AssociationNUM) - tempwordlist=which(parentclass==AssociationsLib$ParentClass) - print ("tempwordlist") - print (tempwordlist) - tempPwordlist=which(tempclass==AssociationsLib$ChildClass[tempwordlist]) + tempPwordlist=which(parentclass==AssociationsLib$ParentClass) print ("tempPwordlist") print (tempPwordlist) - if (length(tempPwordlist)>1){ + tempwordlist=which(tempclass==AssociationsLib$ChildClass[tempPwordlist]) + print ("tempwordlist") + print (tempwordlist) + if (length(tempwordlist)>1){ print (">1") - AssociationNUM=tempwordlist[min(tempPwordlist)] + AssociationNUM=tempPwordlist[min(tempwordlist)] } - else if (length(tempPwordlist)==1){ + else if (length(tempwordlist)==1){ print ("==1") - AssociationNUM=tempwordlist[tempPwordlist] + AssociationNUM=tempPwordlist[tempwordlist] } #print (which(parentclass==AssociationsLib$ParentClass)) #print (which(tempclass==AssociationsLib$ChildClass[which(parentclass==AssociationsLib$ParentClass)])) From 5f77b1cf737950599a1a9a852b4180146def1e93 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 28 Jul 2017 01:56:55 -0500 Subject: [PATCH 187/318] Update sum_str.R --- R/sum_str.R | 1 + 1 file changed, 1 insertion(+) diff --git a/R/sum_str.R b/R/sum_str.R index a259652..e851040 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -607,6 +607,7 @@ for (j in 1:length(infolist)){ #print (which(tempclass==AssociationsLib$ChildClass[which(parentclass==AssociationsLib$ParentClass)])) print ("second:") print (j) + print (title0) print (tempclass) print (parentclass) print (AssociationNUM) From e3158149644e236bd7c977d4e4aea7d4b98ec52b Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 28 Jul 2017 02:03:46 -0500 Subject: [PATCH 188/318] Update sum_str.R --- R/sum_str.R | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index e851040..870d6ad 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -587,12 +587,16 @@ for (j in 1:length(infolist)){ else if (UserAL==TRUE) { AssociationsLib=read.table("AssociationsLibrary.txt",sep=",",header=TRUE) } + print (j) + print (title0) + print (tempclass) + print (parentclass) print ("first:") print (AssociationNUM) - tempPwordlist=which(parentclass==AssociationsLib$ParentClass) + tempPwordlist=which(AssociationsLib$ParentClass==parentclass) print ("tempPwordlist") print (tempPwordlist) - tempwordlist=which(tempclass==AssociationsLib$ChildClass[tempPwordlist]) + tempwordlist=which(AssociationsLib$ChildClass[tempPwordlist]==tempclass) print ("tempwordlist") print (tempwordlist) if (length(tempwordlist)>1){ @@ -606,10 +610,7 @@ for (j in 1:length(infolist)){ #print (which(parentclass==AssociationsLib$ParentClass)) #print (which(tempclass==AssociationsLib$ChildClass[which(parentclass==AssociationsLib$ParentClass)])) print ("second:") - print (j) - print (title0) - print (tempclass) - print (parentclass) + print (AssociationNUM) #if (length(AssociationNUM)>0){ if (AssociationNUM>0){ From 12ae4dd9a245e78320faaf763fd68614fbe1f7a2 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 28 Jul 2017 02:06:06 -0500 Subject: [PATCH 189/318] Update sum_str.R --- R/sum_str.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index 870d6ad..cf69d93 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -519,7 +519,7 @@ DefaultAL=paste0("ParentClass,","ChildClass,","Ways,","Property,","ReverseProper "\"provone:Process\",","\"provone:Visualization\",","2,","\"provone:wasDerivedFrom\",","\"provone:hasMember\"\n") write(DefaultAL,file="DefaultAssociationLibrary.txt") -nodesnames=nodesclasses=nodesfrom=nodesto=nodesproperty=parentclass=property=line_rdf_vector="" +nodesnames=nodesclasses=nodesfrom=nodesto=nodesproperty=parentclass=property=line_rdf_vector=AssociationsLib="" templevel=parentlevel=parentindex=tempwordlist=0 levelvector=rep(0,7) From b285f04d7914a54dfc7f31980d8b6669f95b9a20 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 28 Jul 2017 02:07:00 -0500 Subject: [PATCH 190/318] Update sum_str.R --- R/sum_str.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index cf69d93..870d6ad 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -519,7 +519,7 @@ DefaultAL=paste0("ParentClass,","ChildClass,","Ways,","Property,","ReverseProper "\"provone:Process\",","\"provone:Visualization\",","2,","\"provone:wasDerivedFrom\",","\"provone:hasMember\"\n") write(DefaultAL,file="DefaultAssociationLibrary.txt") -nodesnames=nodesclasses=nodesfrom=nodesto=nodesproperty=parentclass=property=line_rdf_vector=AssociationsLib="" +nodesnames=nodesclasses=nodesfrom=nodesto=nodesproperty=parentclass=property=line_rdf_vector="" templevel=parentlevel=parentindex=tempwordlist=0 levelvector=rep(0,7) From 90df403d734f12acc30ad0fb0cc1eb0d0388183d Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 28 Jul 2017 02:16:08 -0500 Subject: [PATCH 191/318] Update sum_str.R --- R/sum_str.R | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 870d6ad..b7083ab 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -447,8 +447,10 @@ infolist infolist1=infolist for (i in grep("\":",infolist)){ infolist[[i]][2]=gsub(",","",infolist1[[i]][4]) - infolist[[i]][3]=gsub("#","",gsub(",","",infolist1[[i]][2])) - infolist[[i]][4]=gsub("\\.","",gsub(",","",infolist1[[i]][3])) + #infolist[[i]][3]=gsub("#","",gsub(",","",infolist1[[i]][2])) + infolist[[i]][3]=gsub(",","",infolist1[[i]][2]) + #infolist[[i]][4]=gsub("\\.","",gsub(",","",infolist1[[i]][3])) + infolist[[i]][4]=gsub(",","",infolist1[[i]][3]) } infolist From 387622547b8976d93f22f4daa6e30c21bfba8851 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 28 Jul 2017 02:18:49 -0500 Subject: [PATCH 192/318] Update sum_str.R --- R/sum_str.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index b7083ab..481bf08 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -439,7 +439,7 @@ for (i in 1:length(infolist)){ } for (i in 1:length(infolist)){ infolist[[i]][length(infolist[[i]])]=gsub("\\}","",infolist[[i]][length(infolist[[i]])]) - infolist[[i]][length(infolist[[i]])]=gsub("\\.","",infolist[[i]][length(infolist[[i]])]) + #infolist[[i]][length(infolist[[i]])]=gsub("\\.","",infolist[[i]][length(infolist[[i]])]) #infodf$level[i]=lines_split[[i]][1] } infolist From 0a3f0f1f4fac0f9aa88b2fede71f558afa528ea7 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 28 Jul 2017 02:34:40 -0500 Subject: [PATCH 193/318] Update sum_str.R --- R/sum_str.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index 481bf08..e04ada9 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -513,7 +513,7 @@ Associationlist=c("provone:hasSubProcess","provone:sourcePToCL","provone:CLtoDes "provone:DLToOutPort","provone:wasAttributedTo","provone:wasDerivedFrom", "provone:dataOnLink","provone:used","provone:wasGeneratedBy", "provone:wasAssociatedWith","provone:wasInformedBy","provone:isPartOf", - "provone:hadMember","cwfo:hasOutData") + "provone:hadMember","cwfo:hasOutData","cwfo:hasInData") # Association library: DefaultAL=paste0("ParentClass,","ChildClass,","Ways,","Property,","ReverseProperty\n", "\"provone:Process\",","\"provone:Process\",","2,","\"provone:hasSubProcess\",","\"provone:wasDerivedFrom\"\n", From d402a23cadfb8a3d2a6955be90be045f21cd2262 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 28 Jul 2017 02:54:31 -0500 Subject: [PATCH 194/318] Update sum_str.R --- R/sum_str.R | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index e04ada9..dc846b0 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -786,6 +786,11 @@ for (j in 1:length(infolist)){ } #lines_rdf=paste(lines_rdf,line_rdf) } +titles=IDs=0 +for (i in 1:length(infolist)){ + titles[i]=return_space(infolist[[i]][2]) + IDs[i]=infolist[[i]][3] +} library(igraph) nodesnames2=strsplit(nodesnames," ") @@ -834,6 +839,16 @@ for (i in 1:length(nodesfrom2[[1]])){ if (i %in% except){} else { nodesnm=nodesnm+1 + # + for (j in 1:length(IDs)){ + if (nodesfrom2[[1]][i]==IDs[j]){ + nodesfrom2[[1]][i]=titles[j] + } + else if (nodesto2[[1]][i]==IDs[j]){ + nodesto2[[1]][i]=titles[j] + } + } + # nodesfrom3[nodesnm]=return_space(nodesfrom2[[1]][i]) nodesto3[nodesnm]=return_space(nodesto2[[1]][i]) nodesproperty3[nodesnm]=nodesproperty2[[1]][i] @@ -852,11 +867,6 @@ print (nesting) g3 <- graph_from_data_frame(nesting, directed=TRUE, vertices=nodes) E(g3)$label <- E(g3)$property -titles=IDs=0 -for (i in 1:length(infolist)){ - titles[i]=return_space(infolist[[i]][2]) - IDs[i]=infolist[[i]][3] -} for (i in 1:length(line_rdf_vector)){ tempnumber=which(nesting$from==titles[i]) From 477dcde9a118f142077bf946301f3c230cef6500 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 28 Jul 2017 02:55:59 -0500 Subject: [PATCH 195/318] Update sum_str.R --- R/sum_str.R | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index dc846b0..b1523d3 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -834,7 +834,9 @@ for (i in 1:(length(nodesfrom2[[1]])-1)){ print (nodesfrom2) print (nodesto2) print (nodesproperty2) -print (except) +print (except) +print (IDs) +print (titles) for (i in 1:length(nodesfrom2[[1]])){ if (i %in% except){} else { From d9ec617a3eb35ca3a094d697e1856ed1ba4c45df Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 28 Jul 2017 03:07:16 -0500 Subject: [PATCH 196/318] Update sum_str.R --- R/sum_str.R | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index b1523d3..6f599d3 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -793,14 +793,7 @@ for (i in 1:length(infolist)){ } library(igraph) -nodesnames2=strsplit(nodesnames," ") -nodesclasses2=strsplit(nodesclasses," ") -print (nodesnames2) -print (nodesclasses2) -nodes <- data.frame(name = return_space(nodesnames2[[1]]), - class = nodesclasses2[[1]]) - -print (nodes) +#### nodesfrom2=strsplit(nodesfrom," ") nodesto2=strsplit(nodesto," ") @@ -850,6 +843,11 @@ for (i in 1:length(nodesfrom2[[1]])){ nodesto2[[1]][i]=titles[j] } } + if (nodesfrom2[[1]][i] %in% nodesnames){} + else { + nodesnames=paste0(nodesnames," ",nodesfrom2[[1]][i]) + nodesclasses=paste0(nodesclasses," ",autoadded) + } # nodesfrom3[nodesnm]=return_space(nodesfrom2[[1]][i]) nodesto3[nodesnm]=return_space(nodesto2[[1]][i]) @@ -859,7 +857,16 @@ for (i in 1:length(nodesfrom2[[1]])){ print (nodesfrom3) print (nodesto3) print (nodesproperty3) - +#### + +nodesnames2=strsplit(nodesnames," ") +nodesclasses2=strsplit(nodesclasses," ") +print (nodesnames2) +print (nodesclasses2) +nodes <- data.frame(name = return_space(nodesnames2[[1]]), + class = nodesclasses2[[1]]) + +print (nodes) nesting <- data.frame(from = nodesfrom3, to = nodesto3, property = nodesproperty3) From 699a5688f6df45868a65c4a50df7a5299e7b0c64 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 28 Jul 2017 03:08:38 -0500 Subject: [PATCH 197/318] Update sum_str.R --- R/sum_str.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index 6f599d3..15a406c 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -846,7 +846,7 @@ for (i in 1:length(nodesfrom2[[1]])){ if (nodesfrom2[[1]][i] %in% nodesnames){} else { nodesnames=paste0(nodesnames," ",nodesfrom2[[1]][i]) - nodesclasses=paste0(nodesclasses," ",autoadded) + nodesclasses=paste0(nodesclasses," ","AutoAdded") } # nodesfrom3[nodesnm]=return_space(nodesfrom2[[1]][i]) From 8badb7b13206b4942794d012ff466652afcbfc1d Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 28 Jul 2017 03:12:45 -0500 Subject: [PATCH 198/318] Update sum_str.R --- R/sum_str.R | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index 15a406c..e930a00 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -830,6 +830,9 @@ print (nodesproperty2) print (except) print (IDs) print (titles) + +nodesnames2=strsplit(nodesnames," ") + for (i in 1:length(nodesfrom2[[1]])){ if (i %in% except){} else { @@ -843,11 +846,16 @@ for (i in 1:length(nodesfrom2[[1]])){ nodesto2[[1]][i]=titles[j] } } - if (nodesfrom2[[1]][i] %in% nodesnames){} + if (nodesfrom2[[1]][i] %in% nodesnames2){} else { nodesnames=paste0(nodesnames," ",nodesfrom2[[1]][i]) nodesclasses=paste0(nodesclasses," ","AutoAdded") } + if (nodesto2[[1]][i] %in% nodesnames2){} + else { + nodesnames=paste0(nodesnames," ",nodesto2[[1]][i]) + nodesclasses=paste0(nodesclasses," ","AutoAdded") + } # nodesfrom3[nodesnm]=return_space(nodesfrom2[[1]][i]) nodesto3[nodesnm]=return_space(nodesto2[[1]][i]) From 2d30e5a12149d13fddeeaa439f19afeb4bb58782 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 28 Jul 2017 03:17:33 -0500 Subject: [PATCH 199/318] Update sum_str.R --- R/sum_str.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index e930a00..da91cee 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -832,7 +832,7 @@ print (IDs) print (titles) nodesnames2=strsplit(nodesnames," ") - +print (nodesnames2) for (i in 1:length(nodesfrom2[[1]])){ if (i %in% except){} else { From afa2a6aa823e48adffa847f35cb28b2c4b647602 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 28 Jul 2017 03:18:39 -0500 Subject: [PATCH 200/318] Update sum_str.R --- R/sum_str.R | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index da91cee..02efefb 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -465,11 +465,11 @@ for (j in 1:length(infolist)){ } infolist=infolist1 -for (i in 1:length(infolist)){ - for (j in 3:length(infolist[[i]])){ - infolist[[i]][j]=return_space(infolist[[i]][j]) - } -} +#for (i in 1:length(infolist)){ +# for (j in 3:length(infolist[[i]])){ +# infolist[[i]][j]=return_space(infolist[[i]][j]) +# } +#} schemahad=0 lines_rdf="" From 509bb2ed54b51abe9c2acff15da9b0f874de2658 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 28 Jul 2017 03:20:28 -0500 Subject: [PATCH 201/318] Update sum_str.R --- R/sum_str.R | 1 + 1 file changed, 1 insertion(+) diff --git a/R/sum_str.R b/R/sum_str.R index 02efefb..62984b7 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -832,6 +832,7 @@ print (IDs) print (titles) nodesnames2=strsplit(nodesnames," ") +print ("nodesnames2:") print (nodesnames2) for (i in 1:length(nodesfrom2[[1]])){ if (i %in% except){} From 8a8e89fe052d9f53c555e0a91a66986218e406dd Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 28 Jul 2017 03:23:52 -0500 Subject: [PATCH 202/318] Update sum_str.R --- R/sum_str.R | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 62984b7..472f565 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -788,7 +788,8 @@ for (j in 1:length(infolist)){ } titles=IDs=0 for (i in 1:length(infolist)){ - titles[i]=return_space(infolist[[i]][2]) + #titles[i]=return_space(infolist[[i]][2]) + titles[i]=infolist[[i]][2] IDs[i]=infolist[[i]][3] } @@ -858,8 +859,11 @@ for (i in 1:length(nodesfrom2[[1]])){ nodesclasses=paste0(nodesclasses," ","AutoAdded") } # - nodesfrom3[nodesnm]=return_space(nodesfrom2[[1]][i]) - nodesto3[nodesnm]=return_space(nodesto2[[1]][i]) + #nodesfrom3[nodesnm]=return_space(nodesfrom2[[1]][i]) + #nodesto3[nodesnm]=return_space(nodesto2[[1]][i]) + #nodesproperty3[nodesnm]=nodesproperty2[[1]][i] + nodesfrom3[nodesnm]=nodesfrom2[[1]][i] + nodesto3[nodesnm]=nodesto2[[1]][i] nodesproperty3[nodesnm]=nodesproperty2[[1]][i] } } From f7cee05ac40499bac6c4fed55d31e87113fc6ebe Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 28 Jul 2017 03:28:31 -0500 Subject: [PATCH 203/318] Update sum_str.R --- R/sum_str.R | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 472f565..1b2f7f3 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -825,15 +825,19 @@ for (i in 1:(length(nodesfrom2[[1]])-1)){ } } } +print ("from before") print (nodesfrom2) + print ("to before") print (nodesto2) + print ("property before") print (nodesproperty2) print (except) print (IDs) +print ("title before") print (titles) nodesnames2=strsplit(nodesnames," ") -print ("nodesnames2:") +print ("nodesnames2 before") print (nodesnames2) for (i in 1:length(nodesfrom2[[1]])){ if (i %in% except){} @@ -867,14 +871,19 @@ for (i in 1:length(nodesfrom2[[1]])){ nodesproperty3[nodesnm]=nodesproperty2[[1]][i] } } -print (nodesfrom3) +print ("form") +print (nodesfrom3) +print ("to") print (nodesto3) +print ("property") print (nodesproperty3) #### nodesnames2=strsplit(nodesnames," ") nodesclasses2=strsplit(nodesclasses," ") +print ("name") print (nodesnames2) +print ("name") print (nodesclasses2) nodes <- data.frame(name = return_space(nodesnames2[[1]]), class = nodesclasses2[[1]]) From 203e75ed8779e4d162f0d8901960d7f55fb61f0d Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 28 Jul 2017 03:30:57 -0500 Subject: [PATCH 204/318] Update sum_str.R --- R/sum_str.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 1b2f7f3..cabd036 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -852,12 +852,12 @@ for (i in 1:length(nodesfrom2[[1]])){ nodesto2[[1]][i]=titles[j] } } - if (nodesfrom2[[1]][i] %in% nodesnames2){} + if (nodesfrom2[[1]][i] %in% nodesnames2[[1]]){} else { nodesnames=paste0(nodesnames," ",nodesfrom2[[1]][i]) nodesclasses=paste0(nodesclasses," ","AutoAdded") } - if (nodesto2[[1]][i] %in% nodesnames2){} + if (nodesto2[[1]][i] %in% nodesnames2[[1]]){} else { nodesnames=paste0(nodesnames," ",nodesto2[[1]][i]) nodesclasses=paste0(nodesclasses," ","AutoAdded") From 05493135f88946856d9316ed3cd1467fb80ea18c Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 28 Jul 2017 03:34:06 -0500 Subject: [PATCH 205/318] Update sum_str.R --- R/sum_str.R | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index cabd036..2b22ad3 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -854,12 +854,12 @@ for (i in 1:length(nodesfrom2[[1]])){ } if (nodesfrom2[[1]][i] %in% nodesnames2[[1]]){} else { - nodesnames=paste0(nodesnames," ",nodesfrom2[[1]][i]) + nodesnames=paste0(nodesnames,nodesfrom2[[1]][i]," ") nodesclasses=paste0(nodesclasses," ","AutoAdded") } if (nodesto2[[1]][i] %in% nodesnames2[[1]]){} else { - nodesnames=paste0(nodesnames," ",nodesto2[[1]][i]) + nodesnames=paste0(nodesnames,nodesto2[[1]][i]," ") nodesclasses=paste0(nodesclasses," ","AutoAdded") } # @@ -889,8 +889,8 @@ nodes <- data.frame(name = return_space(nodesnames2[[1]]), class = nodesclasses2[[1]]) print (nodes) -nesting <- data.frame(from = nodesfrom3, - to = nodesto3, +nesting <- data.frame(from = return_space(nodesfrom3), + to = return_space(nodesto3), property = nodesproperty3) print (nesting) From bb0853514783d25e9150fbc5a2b61d761b3a8aff Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 28 Jul 2017 03:35:45 -0500 Subject: [PATCH 206/318] Update sum_str.R --- R/sum_str.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 2b22ad3..a8a7be0 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -855,12 +855,12 @@ for (i in 1:length(nodesfrom2[[1]])){ if (nodesfrom2[[1]][i] %in% nodesnames2[[1]]){} else { nodesnames=paste0(nodesnames,nodesfrom2[[1]][i]," ") - nodesclasses=paste0(nodesclasses," ","AutoAdded") + nodesclasses=paste0(nodesclasses,"AutoAdded"," ") } if (nodesto2[[1]][i] %in% nodesnames2[[1]]){} else { nodesnames=paste0(nodesnames,nodesto2[[1]][i]," ") - nodesclasses=paste0(nodesclasses," ","AutoAdded") + nodesclasses=paste0(nodesclasses,"AutoAdded"," ") } # #nodesfrom3[nodesnm]=return_space(nodesfrom2[[1]][i]) From d51edf06832de15afddcda31be42ce39ab4c3ce7 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 28 Jul 2017 03:42:27 -0500 Subject: [PATCH 207/318] Update sum_str.R --- R/sum_str.R | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index a8a7be0..ed7fed7 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -900,14 +900,14 @@ E(g3)$label <- E(g3)$property for (i in 1:length(line_rdf_vector)){ - tempnumber=which(nesting$from==titles[i]) + tempnumber=which(nodesfrom3==titles[i]) if (length(tempnumber)>0){ for (j in 1:length(tempnumber)){ #entityname2=paste0("<",FullURI,IDs[which(titles==nesting$to[tempnumber[j]])],">") - entityname2=paste0(prefix,":",IDs[which(titles==nesting$to[tempnumber[j]])]) + entityname2=paste0(prefix,":",IDs[which(titles==nodesto3[tempnumber[j]])]) if (j==length(tempnumber)){ - line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nesting$property[tempnumber[j]],entityname2,".","\n")} - else{line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nesting$property[tempnumber[j]],entityname2,";","\n")} + line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nodesproperty3[tempnumber[j]],entityname2,".","\n")} + else{line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nodesproperty3[tempnumber[j]],entityname2,";","\n")} } } } From 1c91ceca92df979df1839799d44cb85e0a9719d3 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 28 Jul 2017 03:57:28 -0500 Subject: [PATCH 208/318] Update sum_str.R --- R/sum_str.R | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index ed7fed7..d79ceab 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -593,8 +593,8 @@ for (j in 1:length(infolist)){ print (title0) print (tempclass) print (parentclass) - print ("first:") - print (AssociationNUM) + #print ("first:") + #print (AssociationNUM) tempPwordlist=which(AssociationsLib$ParentClass==parentclass) print ("tempPwordlist") print (tempPwordlist) @@ -614,6 +614,7 @@ for (j in 1:length(infolist)){ print ("second:") print (AssociationNUM) + print (levelvector) #if (length(AssociationNUM)>0){ if (AssociationNUM>0){ property=as.character(AssociationsLib$Property[AssociationNUM]) @@ -904,7 +905,12 @@ for (i in 1:length(line_rdf_vector)){ if (length(tempnumber)>0){ for (j in 1:length(tempnumber)){ #entityname2=paste0("<",FullURI,IDs[which(titles==nesting$to[tempnumber[j]])],">") - entityname2=paste0(prefix,":",IDs[which(titles==nodesto3[tempnumber[j]])]) + if (nchar(IDs[which(titles==nodesto3[tempnumber[j]])])>0){ + entityname2=paste0(prefix,":",IDs[which(titles==nodesto3[tempnumber[j]])]) + } + else { + entityname2=paste0(prefix,":",nodesto3[tempnumber[j]) + } if (j==length(tempnumber)){ line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nodesproperty3[tempnumber[j]],entityname2,".","\n")} else{line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nodesproperty3[tempnumber[j]],entityname2,";","\n")} From 52cff92e01ddf518bfa860e9293a5b1fa489400d Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 28 Jul 2017 03:58:12 -0500 Subject: [PATCH 209/318] Update sum_str.R --- R/sum_str.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index d79ceab..581a592 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -909,7 +909,7 @@ for (i in 1:length(line_rdf_vector)){ entityname2=paste0(prefix,":",IDs[which(titles==nodesto3[tempnumber[j]])]) } else { - entityname2=paste0(prefix,":",nodesto3[tempnumber[j]) + entityname2=paste0(prefix,":",nodesto3[tempnumber[j]]) } if (j==length(tempnumber)){ line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nodesproperty3[tempnumber[j]],entityname2,".","\n")} From 3baef5d2b04b7adfee8f02fc66ade7dc8beaa9da Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 28 Jul 2017 03:59:35 -0500 Subject: [PATCH 210/318] Update sum_str.R --- R/sum_str.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index 581a592..1a9e2de 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -905,7 +905,7 @@ for (i in 1:length(line_rdf_vector)){ if (length(tempnumber)>0){ for (j in 1:length(tempnumber)){ #entityname2=paste0("<",FullURI,IDs[which(titles==nesting$to[tempnumber[j]])],">") - if (nchar(IDs[which(titles==nodesto3[tempnumber[j]])])>0){ + if (length(IDs[which(titles==nodesto3[tempnumber[j]])])>0){ entityname2=paste0(prefix,":",IDs[which(titles==nodesto3[tempnumber[j]])]) } else { From 337025a9d30ebb7d49789fff1aca26306545f0ee Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 28 Jul 2017 04:02:51 -0500 Subject: [PATCH 211/318] Update sum_str.R --- R/sum_str.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index 1a9e2de..8df0214 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -578,7 +578,7 @@ for (j in 1:length(infolist)){ parentclass=infolist[[as.numeric(parentindex)]][4] } else { - levelvector[templevel]=j + levelvector[as.numeric(templevel)]=j parentindex=levelvector[as.numeric(templevel)-1] } } From 9700034fd3ee46a8915feaf7378d2870f04d4328 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 3 Aug 2017 01:55:56 -0500 Subject: [PATCH 212/318] Update sum_str.R --- R/sum_str.R | 41 ++++++++++++++++++++++++++++++++--------- 1 file changed, 32 insertions(+), 9 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 8df0214..8deb780 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -111,6 +111,7 @@ sum_str <- function(path_in = getSourceEditorContext()$path, prefix="user", UserAL=FALSE, fillAssociation=TRUE, + UserANM=FALSE, ...) { ## ............................................................................ @@ -170,7 +171,8 @@ assert_number(granularity, lower = 1, upper = 3) UserID=UserID, prefix=prefix, UserAL=UserAL, - fillAssociation=fillAssociation) + fillAssociation=fillAssociation, + UserANM=UserANM) }) if (dir_out == "" && !is.null(file_out) && file_out == "object") { @@ -217,7 +219,8 @@ sum_str_helper <- function(path_in, UserID, prefix, UserAL, - fillAssociation) { + fillAssociation, + UserANM) { ## ............................................................................ ## argument interaction #### @@ -507,13 +510,33 @@ ProvONElist=c("provone:Process","provone:InputPort","provone:OutputPort", "provone:User","provone:ProcessExec","provone:Data", "provone:Collection","provone:Visualization","provone:Program") # Association word list: -Associationlist=c("provone:hasSubProcess","provone:sourcePToCL","provone:CLtoDestP", - "provone:hasInPort","provone:hasOutPort","provone:hasDefaultParam", - "provone:DLToInPort","provone:outPortToDL","provone:inPortToDL", - "provone:DLToOutPort","provone:wasAttributedTo","provone:wasDerivedFrom", - "provone:dataOnLink","provone:used","provone:wasGeneratedBy", - "provone:wasAssociatedWith","provone:wasInformedBy","provone:isPartOf", - "provone:hadMember","cwfo:hasOutData","cwfo:hasInData") +#Associationlist=c("provone:hasSubProcess","provone:sourcePToCL","provone:CLtoDestP", +# "provone:hasInPort","provone:hasOutPort","provone:hasDefaultParam", +# "provone:DLToInPort","provone:outPortToDL","provone:inPortToDL", +# "provone:DLToOutPort","provone:wasAttributedTo","provone:wasDerivedFrom", +# "provone:dataOnLink","provone:used","provone:wasGeneratedBy", +# "provone:wasAssociatedWith","provone:wasInformedBy","provone:isPartOf", +# "provone:hadMember","cwfo:hasOutData","cwfo:hasInData") +DefaultAssociationlist=paste0("AssociationName\n","provone:hasSubProcess\n","provone:sourcePToCL\n","provone:CLtoDestP\n", + "provone:hasInPort\n","provone:hasOutPort\n","provone:hasDefaultParam\n", + "provone:DLToInPort\n","provone:outPortToDL\n","provone:inPortToDL\n", + "provone:DLToOutPort\n","provone:wasAttributedTo\n","provone:wasDerivedFrom\n", + "provone:dataOnLink\n","provone:used\n","provone:wasGeneratedBy\n", + "provone:wasAssociatedWith\n","provone:wasInformedBy\n","provone:isPartOf\n", + "provone:hadMember\n","cwfo:hasOutData\n","cwfo:hasInData\n") +write(DefaultAssociationlist,file="DefaultAssociationNames.txt") + +Associationlist.df=read.table("DefaultAssociationNames.txt",sep=",",header=TRUE) + +if (UserANM==FALSE){ + Associationlist.df=read.table("DefaultAssociationNames.txt",sep=",",header=TRUE) + } +else if (UserANM==TRUE) { + Associationlist.df=read.table("AssociationNames.txt",sep=",",header=TRUE) + } + +Associationlist=Associationlist.df$AssociationName + # Association library: DefaultAL=paste0("ParentClass,","ChildClass,","Ways,","Property,","ReverseProperty\n", "\"provone:Process\",","\"provone:Process\",","2,","\"provone:hasSubProcess\",","\"provone:wasDerivedFrom\"\n", From 7b4e7ce71be194951ca718b52269c96dbf5d15d1 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 3 Aug 2017 02:12:23 -0500 Subject: [PATCH 213/318] Update insert_breaks.R --- R/insert_breaks.R | 47 +++-------------------------------------------- 1 file changed, 3 insertions(+), 44 deletions(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 0c4165a..43de7dc 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -131,23 +131,15 @@ insert_break <- function(level, # create fill creators <- setNames(Map(create_creators, start = c("", "", "", "")), - #start = c("", "", "", "")), c("get_title", "get_id", "get_class","get_attribute")) - #c("get_id", "get_class", "get_title", "get_attribute")) - tempstring=ret_value$id - + tempstring=ret_value$id fill <- create_fill(id = ret_value$id, classes = ret_value$classes, title = ret_value$text1, attributes = ret_value$keyvaluepairs, json_ld = ret_value$json_ld, function_container = creators) - #fill <- create_fill(id = paste0("\"@id\":",ret_value$id,"\,"), - # classes = paste0("\"@type\":",ret_value$classes,"\,"), - # title = paste0("\"label\":",ret_value$text1,"\,"), - # attributes = ret_value$keyvaluepairs, - # function_container = creators) - + } else { fill <- ret_value$text1 } @@ -158,7 +150,6 @@ insert_break <- function(level, op$anchor_in_sep <- anchor_in_sep options(strcode = op) level <- as.numeric(unlist(strsplit(ret_value$level, ""))[nchar(ret_value$level)]) - #level=as.numeric(gsub("level ","",ret_value$level,)) } else { fill <- "" @@ -169,11 +160,6 @@ insert_break <- function(level, start <- paste0(rep("#", level), collapse = "") break_char = give_breakchar(level) sep = paste(rep(" ", 8 - level), collapse = "") - #start <- paste0(rep("#", 3), collapse = "") - #break_char = give_breakchar(3) - #sep = paste(rep(" ", 4 - 3), collapse = "") - - # ____________________________________________________________________________ @@ -281,11 +267,6 @@ help_create_title <- function(start = "##", if (fill == "") return(NULL) text <- paste0(start, sep, fill) - #text <- paste0(start, sep, paste0("\"@id\":",ret_value$id), - # paste0("\"@type\":",ret_value$classes), - # paste0("\"label\":",ret_value$text1),ret_value$keyvaluepairs) - - extension <- paste0(rep(" ", max(0, length - nchar(end) - nchar(text))), @@ -365,12 +346,7 @@ find_title <- function(level) { #XJ Original codes: #styles_input <- paste(c("Default","JSON-LD")) choices_input <- paste("level", 1:7) - #class_choices <- paste("class", 1:10) - #choices_input <- paste(c("Workflow","Trace","Data Structure")) - #class_choices <- paste(c("Process","InputPort","OutputPort","DataLink","SeqCtrlLink","Workflow","User","hasSubProcess","sourcePToCL", - # "CLtoDestP","hasInPort","hasOutPort","hasDefaultParam","DLToInPort","outPortToDL","inPortToDL","DLToOutPort", - # "wasAttributedTo","wasDerivedFrom","ProcessExec","dataOnLink","used","wasGeneratedBy","wasAssociatedWith", - # "wasInformedBy","isPartOf","Data","Collection","wasDerivedFrom","hadMember")) + class_choices <- paste(c("provone:Process","provone:InputPort","provone:OutputPort","provone:DataLink","provone:SeqCtrlLink", "provone:Workflow","provone:User","provone:ProcessExec","provone:Data","provone:Collection", "provone:Visualization","provone:Program","prov:Plan")) @@ -412,26 +388,12 @@ find_title <- function(level) { choices = "", multiple = TRUE, options = list(create = TRUE, persist = FALSE, - #createFilter = "^[a-zA-Z0-9:]+\\s*=\\s*[a-zA-Z0-9]+$")), createFilter = "^.+\\s*=\\s*.+$")), checkboxInput("json_ld", "JSON-LD",width = "80px") ) ) ,flex = c(0.8, 0.5, 3) ) - #, - #fillRow( - # selectInput("style", " ", width = "200px", - # choices = styles_input, - # selected = styles_input[level]) - #checkboxInput("jsonld_style", "JSON-LD style", - # value = FALSE, - # width = "150px"), - #checkboxInput("default_style", "Default style", - # value = TRUE, - # width = "150px"), - #flex = c(1, 1.5) - #), ) ) @@ -445,9 +407,6 @@ find_title <- function(level) { classes = input$classes, keyvaluepairs = input$keyvaluepairs, json_ld = input$json_ld - #style=input$style - #,jsonld_style=input$jsonld_style, - #default_style=input$default_style )) observeEvent(input$done, { From d800c20d3a93f406726973ce2bcd92add60b1ee6 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 3 Aug 2017 02:23:18 -0500 Subject: [PATCH 214/318] Update sum_str.R --- R/sum_str.R | 595 ++++++++++++++++++++-------------------------------- 1 file changed, 225 insertions(+), 370 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 8deb780..770cdec 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -363,17 +363,17 @@ if (rm_break_anchors) { outputfile2 <- paste("RDF_output_file_",datetime,fileformat,sep="") write(lines,file=outputfile2) templines=readLines(outputfile2) -lines_content=templines[4:length(templines)] -lines_split=strsplit(lines_content, " ") + lines_content=templines[4:length(templines)] + lines_split=strsplit(lines_content, " ") -baseURI=baseURI -UserID=UserID -FullURI=paste0(baseURI,UserID,"/") -prefix=prefix + baseURI=baseURI + UserID=UserID + FullURI=paste0(baseURI,UserID,"/") + prefix=prefix -schemalist=list() + schemalist=list() -schemas=c(rdfs="@prefix rdfs: .", + schemas=c(rdfs="@prefix rdfs: .", xsd="@prefix xsd: .", owl="@prefix owl: .", dcterms="@prefix dcterms: .", @@ -385,324 +385,236 @@ schemas=c(rdfs="@prefix rdfs: .", yw="@prefix yw: .", cwfo="@prefix cwfo: .", cwf="@prefix cwf: .") -# Using ":" to find class -for (i in 1:length(lines_split)){ - schemalist[[i]]=grep(":",lines_split[[i]]) -} -tempcount0=0 -schemalist1=list() -for (i in 1:length(schemalist)){ - if (length(schemalist[[i]])>0){ - tempcount0=tempcount0+1 - schemalist1[[tempcount0]]=schemalist[[i]] - } -} -schemalist1 - -tempcount0=0 -lines_split1=list() -for (i in 1:length(schemalist)){ - if (length(schemalist[[i]])>0){ - tempcount0=tempcount0+1 - lines_split1[[tempcount0]]=lines_split[[i]] - } -} -lines_split1 - -lines_split=lines_split1 -schemalist=schemalist1 -lines_split1=schemalist -for (i in 1:length(lines_split)){ - tempcount0=0 - for (j in 1:length(lines_split[[i]])){ - if (nchar(lines_split[[i]][j])>0){ - tempcount0=tempcount0+1 - lines_split1[[i]][tempcount0]=lines_split[[i]][j] + # Using ":" to find class + for (i in 1:length(lines_split)){ + schemalist[[i]]=grep(":",lines_split[[i]]) + } + tempcount0=0 + schemalist1=list() + for (i in 1:length(schemalist)){ + if (length(schemalist[[i]])>0){ + tempcount0=tempcount0+1 + schemalist1[[tempcount0]]=schemalist[[i]] + } } - } -} -lines_split1 -for (i in 1:length(lines_split1)){ - schemalist[[i]]=grep(":",lines_split1[[i]]) -} -schemalist -lines_split=lines_split1 + tempcount0=0 + lines_split1=list() + for (i in 1:length(schemalist)){ + if (length(schemalist[[i]])>0){ + tempcount0=tempcount0+1 + lines_split1[[tempcount0]]=lines_split[[i]] + } + } -infolist=lines_split -for (i in 1:length(infolist)){ - templevel=strsplit(infolist[[i]][1],"\\t") - infolist[[i]][1]=nchar(templevel[[1]][2]) - #infodf$level[i]=lines_split[[i]][1] -} -for (i in 1:length(infolist)){ - infolist[[i]][3]=gsub("\\{","",infolist[[i]][3]) - infolist[[i]][3]=gsub("\\#","",infolist[[i]][3]) - #infodf$level[i]=lines_split[[i]][1] -} -for (i in 1:length(infolist)){ - infolist[[i]][length(infolist[[i]])]=gsub("\\}","",infolist[[i]][length(infolist[[i]])]) - #infolist[[i]][length(infolist[[i]])]=gsub("\\.","",infolist[[i]][length(infolist[[i]])]) - #infodf$level[i]=lines_split[[i]][1] -} -infolist - -infolist1=infolist -for (i in grep("\":",infolist)){ - infolist[[i]][2]=gsub(",","",infolist1[[i]][4]) - #infolist[[i]][3]=gsub("#","",gsub(",","",infolist1[[i]][2])) - infolist[[i]][3]=gsub(",","",infolist1[[i]][2]) - #infolist[[i]][4]=gsub("\\.","",gsub(",","",infolist1[[i]][3])) - infolist[[i]][4]=gsub(",","",infolist1[[i]][3]) -} -infolist - -#strsplit(infolist[[4]][2], "\":")[[1]][2] -for (j in 1:length(infolist)){ -#for (j in 4:4){ - for (i in 1:length(strsplit(infolist[[j]], "\":"))){ - if (length(strsplit(infolist[[j]], "\":")[[i]])>1){ - infolist1[[j]][i]=strsplit(infolist[[j]], "\":")[[i]][2] - } -} -} -infolist=infolist1 + lines_split=lines_split1 + schemalist=schemalist1 + lines_split1=schemalist + for (i in 1:length(lines_split)){ + tempcount0=0 + for (j in 1:length(lines_split[[i]])){ + if (nchar(lines_split[[i]][j])>0){ + tempcount0=tempcount0+1 + lines_split1[[i]][tempcount0]=lines_split[[i]][j] + } + } + } + + for (i in 1:length(lines_split1)){ + schemalist[[i]]=grep(":",lines_split1[[i]]) + } + lines_split=lines_split1 + infolist=lines_split + for (i in 1:length(infolist)){ + templevel=strsplit(infolist[[i]][1],"\\t") + infolist[[i]][1]=nchar(templevel[[1]][2]) + } + for (i in 1:length(infolist)){ + infolist[[i]][3]=gsub("\\{","",infolist[[i]][3]) + infolist[[i]][3]=gsub("\\#","",infolist[[i]][3]) + } + for (i in 1:length(infolist)){ + infolist[[i]][length(infolist[[i]])]=gsub("\\}","",infolist[[i]][length(infolist[[i]])]) + } + infolist1=infolist + for (i in grep("\":",infolist)){ + infolist[[i]][2]=gsub(",","",infolist1[[i]][4]) + infolist[[i]][3]=gsub(",","",infolist1[[i]][2]) + infolist[[i]][4]=gsub(",","",infolist1[[i]][3]) + } + + for (j in 1:length(infolist)){ + for (i in 1:length(strsplit(infolist[[j]], "\":"))){ + if (length(strsplit(infolist[[j]], "\":")[[i]])>1){ + infolist1[[j]][i]=strsplit(infolist[[j]], "\":")[[i]][2] + } + } + } + infolist=infolist1 -#for (i in 1:length(infolist)){ -# for (j in 3:length(infolist[[i]])){ -# infolist[[i]][j]=return_space(infolist[[i]][j]) -# } -#} - -schemahad=0 -lines_rdf="" -count0=1 + schemahad=0 + lines_rdf="" + count0=1 -schemalist1=list() -for (i in 1:length(infolist)){ - schemalist1[[i]]=grep(":",infolist[[i]]) -} -schemalist=schemalist1 -# add prefix -for (i in 1:length(schemalist)){ - #print (i) - for (j in 1:length(schemalist[[i]])){ - #print (j) - tempstr=infolist[[i]][(schemalist[[i]])[j]] - #print(tempstr) - tempschemastr=gsub("\\.","",strsplit(tempstr,'\\:')[[1]][1]) - schemas[tempschemastr] - if (tempschemastr %in% schemahad) {#print("!") + schemalist1=list() + for (i in 1:length(infolist)){ + schemalist1[[i]]=grep(":",infolist[[i]]) } - else{schemahad[count0]=tempschemastr - count0=count0+1} - } -} -# adding headers: -lines_rdf=paste0(" @prefix ",prefix,": ","<",FullURI,"> .\n") -for (i in 1:length(schemahad)){ - lines_rdf=paste(lines_rdf,schemas[schemahad[i]],"\n") -} + schemalist=schemalist1 + # add prefix + for (i in 1:length(schemalist)){ + for (j in 1:length(schemalist[[i]])){ + tempstr=infolist[[i]][(schemalist[[i]])[j]] + tempschemastr=gsub("\\.","",strsplit(tempstr,'\\:')[[1]][1]) + schemas[tempschemastr] + if (tempschemastr %in% schemahad) { + } + else{schemahad[count0]=tempschemastr + count0=count0+1} + } + } + # adding headers: + lines_rdf=paste0(" @prefix ",prefix,": ","<",FullURI,"> .\n") + for (i in 1:length(schemahad)){ + lines_rdf=paste(lines_rdf,schemas[schemahad[i]],"\n") + } + + # RDF word list: + ProvONElist=c("provone:Process","provone:InputPort","provone:OutputPort", + "provone:DataLink","provone:SeqCtrlLink","provone:Workflow", + "provone:User","provone:ProcessExec","provone:Data", + "provone:Collection","provone:Visualization","provone:Program") -# RDF word list: -ProvONElist=c("provone:Process","provone:InputPort","provone:OutputPort", - "provone:DataLink","provone:SeqCtrlLink","provone:Workflow", - "provone:User","provone:ProcessExec","provone:Data", - "provone:Collection","provone:Visualization","provone:Program") -# Association word list: -#Associationlist=c("provone:hasSubProcess","provone:sourcePToCL","provone:CLtoDestP", -# "provone:hasInPort","provone:hasOutPort","provone:hasDefaultParam", -# "provone:DLToInPort","provone:outPortToDL","provone:inPortToDL", -# "provone:DLToOutPort","provone:wasAttributedTo","provone:wasDerivedFrom", -# "provone:dataOnLink","provone:used","provone:wasGeneratedBy", -# "provone:wasAssociatedWith","provone:wasInformedBy","provone:isPartOf", -# "provone:hadMember","cwfo:hasOutData","cwfo:hasInData") -DefaultAssociationlist=paste0("AssociationName\n","provone:hasSubProcess\n","provone:sourcePToCL\n","provone:CLtoDestP\n", + DefaultAssociationlist=paste0("AssociationName\n","provone:hasSubProcess\n","provone:sourcePToCL\n","provone:CLtoDestP\n", "provone:hasInPort\n","provone:hasOutPort\n","provone:hasDefaultParam\n", "provone:DLToInPort\n","provone:outPortToDL\n","provone:inPortToDL\n", "provone:DLToOutPort\n","provone:wasAttributedTo\n","provone:wasDerivedFrom\n", "provone:dataOnLink\n","provone:used\n","provone:wasGeneratedBy\n", "provone:wasAssociatedWith\n","provone:wasInformedBy\n","provone:isPartOf\n", "provone:hadMember\n","cwfo:hasOutData\n","cwfo:hasInData\n") -write(DefaultAssociationlist,file="DefaultAssociationNames.txt") + write(DefaultAssociationlist,file="DefaultAssociationNames.txt") -Associationlist.df=read.table("DefaultAssociationNames.txt",sep=",",header=TRUE) - -if (UserANM==FALSE){ Associationlist.df=read.table("DefaultAssociationNames.txt",sep=",",header=TRUE) - } -else if (UserANM==TRUE) { - Associationlist.df=read.table("AssociationNames.txt",sep=",",header=TRUE) - } + + if (UserANM==FALSE){ + Associationlist.df=read.table("DefaultAssociationNames.txt",sep=",",header=TRUE) + } + else if (UserANM==TRUE) { + Associationlist.df=read.table("AssociationNames.txt",sep=",",header=TRUE) + } -Associationlist=Associationlist.df$AssociationName + Associationlist=Associationlist.df$AssociationName -# Association library: -DefaultAL=paste0("ParentClass,","ChildClass,","Ways,","Property,","ReverseProperty\n", + # Association library: + DefaultAL=paste0("ParentClass,","ChildClass,","Ways,","Property,","ReverseProperty\n", "\"provone:Process\",","\"provone:Process\",","2,","\"provone:hasSubProcess\",","\"provone:wasDerivedFrom\"\n", "\"provone:Process\",","\"provone:Data\",","2,","\"provone:wasDerivedFrom\",","\"provone:hasMember\"\n", "\"provone:Process\",","\"provone:Visualization\",","2,","\"provone:wasDerivedFrom\",","\"provone:hasMember\"\n") -write(DefaultAL,file="DefaultAssociationLibrary.txt") - -nodesnames=nodesclasses=nodesfrom=nodesto=nodesproperty=parentclass=property=line_rdf_vector="" -templevel=parentlevel=parentindex=tempwordlist=0 -levelvector=rep(0,7) - -for (j in 1:length(infolist)){ - AssociationNUM=firstmeet=0 - line_rdf=classeswords="" - title0=infolist[[j]][2] - ID=infolist[[j]][3] - parentlevel=templevel - templevel=infolist[[j]][1] - tempclass=infolist[[j]][4] - if (infolist[[j]][1]==1){ - if (levelvector[1]==0){ - levelvector[1]=j - } - } - if (infolist[[j]][1]==2){ - if (levelvector[2]==0){ - levelvector[2]=j - } - } - if (infolist[[j]][1]==3){ - if (levelvector[3]==0){ - levelvector[3]=j - } - } - if (infolist[[j]][1]==4){ - if (levelvector[4]==0){ - levelvector[4]=j - } - } - if (infolist[[j]][1]==5){ - if (levelvector[5]==0){ - levelvector[5]=j - } - } - if (infolist[[j]][1]==6){ - if (levelvector[6]==0){ - levelvector[6]=j - } - } - if (infolist[[j]][1]==7){ - if (levelvector[7]==0){ - levelvector[7]=j - } - } - if (as.numeric(parentlevel)!=0){ - if (as.numeric(templevel)>as.numeric(parentlevel)){ - parentindex=j-1 - parentclass=infolist[[j-1]][4] - } - else if (templevel==parentlevel){ - parentindex=levelvector[as.numeric(templevel)-1] - parentclass=infolist[[as.numeric(parentindex)]][4] - } - else { - levelvector[as.numeric(templevel)]=j - parentindex=levelvector[as.numeric(templevel)-1] - } - } - # judge association: - if (UserAL==FALSE){ - AssociationsLib=read.table("DefaultAssociationLibrary.txt",sep=",",header=TRUE) - } - else if (UserAL==TRUE) { - AssociationsLib=read.table("AssociationsLibrary.txt",sep=",",header=TRUE) - } - print (j) - print (title0) - print (tempclass) - print (parentclass) - #print ("first:") - #print (AssociationNUM) - tempPwordlist=which(AssociationsLib$ParentClass==parentclass) - print ("tempPwordlist") - print (tempPwordlist) - tempwordlist=which(AssociationsLib$ChildClass[tempPwordlist]==tempclass) - print ("tempwordlist") - print (tempwordlist) - if (length(tempwordlist)>1){ - print (">1") - AssociationNUM=tempPwordlist[min(tempwordlist)] - } - else if (length(tempwordlist)==1){ - print ("==1") - AssociationNUM=tempPwordlist[tempwordlist] - } - #print (which(parentclass==AssociationsLib$ParentClass)) - #print (which(tempclass==AssociationsLib$ChildClass[which(parentclass==AssociationsLib$ParentClass)])) - print ("second:") - - print (AssociationNUM) - print (levelvector) - #if (length(AssociationNUM)>0){ - if (AssociationNUM>0){ - property=as.character(AssociationsLib$Property[AssociationNUM]) - if (AssociationsLib$Ways[AssociationNUM]==2){ - # print ("!!2") - nodesfrom=paste0(nodesfrom,infolist[[as.numeric(parentindex)]][2]," ") - nodesto=paste0(nodesto,infolist[[j]][2]," ") - nodesproperty=paste0(nodesproperty,property," ") - nodesfrom=paste0(nodesfrom,infolist[[j]][2]," ") - nodesto=paste0(nodesto,infolist[[as.numeric(parentindex)]][2]," ") - nodesproperty=paste0(nodesproperty,AssociationsLib$ReverseProperty," ") - } - else if (AssociationsLib$Ways[AssociationNUM]==1){ - #print ("!!1") - nodesfrom=paste0(nodesfrom,infolist[[as.numeric(parentindex)]][2]," ") - nodesto=paste0(nodesto,infolist[[j]][2]," ") - nodesproperty=paste0(nodesproperty,property," ") - } - } - - else if ((fillAssociation==TRUE)&(as.numeric(parentlevel)!=0)){ - property="str:has" - nodesfrom=paste0(nodesfrom,infolist[[as.numeric(parentindex)]][2]," ") - nodesto=paste0(nodesto,infolist[[j]][2]," ") - nodesproperty=paste0(nodesproperty,property," ") - nodesfrom=paste0(nodesfrom,infolist[[j]][2]," ") - nodesto=paste0(nodesto,infolist[[as.numeric(parentindex)]][2]," ") - nodesproperty=paste0(nodesproperty,"str:belongTo"," ") - } - - #if (parentclass=="provone:Process"&tempclass=="provone:Process"){ - # property="provone:hasSubProcess" - #} - #else if (parentclass=="provone:Process"&(tempclass=="provone:Data"|tempclass=="provone:Visualization")){ - # property="provone:wasDerivedFrom" - #} - #else if (as.numeric(parentlevel)!=0){ - # property="str:has" - #} - - #if (property=="provone:hasSubProcess"){ - # nodesfrom=paste0(nodesfrom,infolist[[as.numeric(parentindex)]][2]," ") - # nodesto=paste0(nodesto,infolist[[j]][2]," ") - # nodesproperty=paste0(nodesproperty,property," ") - # nodesfrom=paste0(nodesfrom,infolist[[j]][2]," ") - # nodesto=paste0(nodesto,infolist[[as.numeric(parentindex)]][2]," ") - # nodesproperty=paste0(nodesproperty,"provone:wasDerivedFrom"," ") - #} - #else if(property=="provone:wasDerivedFrom"){ - # nodesfrom=paste0(nodesfrom,infolist[[as.numeric(parentindex)]][2]," ") - # nodesto=paste0(nodesto,infolist[[j]][2]," ") - # nodesproperty=paste0(nodesproperty,property," ") - # nodesfrom=paste0(nodesfrom,infolist[[j]][2]," ") - # nodesto=paste0(nodesto,infolist[[as.numeric(parentindex)]][2]," ") - # nodesproperty=paste0(nodesproperty,"provone:hasMember"," ") - #} - #else if (as.numeric(parentlevel)!=0){ - # nodesfrom=paste0(nodesfrom,infolist[[as.numeric(parentindex)]][2]," ") - # nodesto=paste0(nodesto,infolist[[j]][2]," ") - # nodesproperty=paste0(nodesproperty,property," ") - # nodesfrom=paste0(nodesfrom,infolist[[j]][2]," ") - # nodesto=paste0(nodesto,infolist[[as.numeric(parentindex)]][2]," ") - # nodesproperty=paste0(nodesproperty,"str:belongTo"," ") - #} + write(DefaultAL,file="DefaultAssociationLibrary.txt") + + nodesnames=nodesclasses=nodesfrom=nodesto=nodesproperty=parentclass=property=line_rdf_vector="" + templevel=parentlevel=parentindex=tempwordlist=0 + levelvector=rep(0,7) + + for (j in 1:length(infolist)){ + AssociationNUM=firstmeet=0 + line_rdf=classeswords="" + title0=infolist[[j]][2] + ID=infolist[[j]][3] + parentlevel=templevel + templevel=infolist[[j]][1] + tempclass=infolist[[j]][4] + if (infolist[[j]][1]==1){ + if (levelvector[1]==0){ + levelvector[1]=j + } + } + if (infolist[[j]][1]==2){ + if (levelvector[2]==0){ + levelvector[2]=j + } + } + if (infolist[[j]][1]==3){ + if (levelvector[3]==0){ + levelvector[3]=j + } + } + if (infolist[[j]][1]==4){ + if (levelvector[4]==0){ + levelvector[4]=j + } + } + if (infolist[[j]][1]==5){ + if (levelvector[5]==0){ + levelvector[5]=j + } + } + if (infolist[[j]][1]==6){ + if (levelvector[6]==0){ + levelvector[6]=j + } + } + if (infolist[[j]][1]==7){ + if (levelvector[7]==0){ + levelvector[7]=j + } + } + if (as.numeric(parentlevel)!=0){ + if (as.numeric(templevel)>as.numeric(parentlevel)){ + parentindex=j-1 + parentclass=infolist[[j-1]][4] + } + else if (templevel==parentlevel){ + parentindex=levelvector[as.numeric(templevel)-1] + parentclass=infolist[[as.numeric(parentindex)]][4] + } + else { + levelvector[as.numeric(templevel)]=j + parentindex=levelvector[as.numeric(templevel)-1] + } + } + # judge association: + if (UserAL==FALSE){ + AssociationsLib=read.table("DefaultAssociationLibrary.txt",sep=",",header=TRUE) + } + else if (UserAL==TRUE) { + AssociationsLib=read.table("AssociationsLibrary.txt",sep=",",header=TRUE) + } + tempPwordlist=which(AssociationsLib$ParentClass==parentclass) + tempwordlist=which(AssociationsLib$ChildClass[tempPwordlist]==tempclass) + if (length(tempwordlist)>1){ + AssociationNUM=tempPwordlist[min(tempwordlist)] + } + else if (length(tempwordlist)==1){ + AssociationNUM=tempPwordlist[tempwordlist] + } + if (AssociationNUM>0){ + property=as.character(AssociationsLib$Property[AssociationNUM]) + if (AssociationsLib$Ways[AssociationNUM]==2){ + nodesfrom=paste0(nodesfrom,infolist[[as.numeric(parentindex)]][2]," ") + nodesto=paste0(nodesto,infolist[[j]][2]," ") + nodesproperty=paste0(nodesproperty,property," ") + nodesfrom=paste0(nodesfrom,infolist[[j]][2]," ") + nodesto=paste0(nodesto,infolist[[as.numeric(parentindex)]][2]," ") + nodesproperty=paste0(nodesproperty,AssociationsLib$ReverseProperty," ") + } + else if (AssociationsLib$Ways[AssociationNUM]==1){ + nodesfrom=paste0(nodesfrom,infolist[[as.numeric(parentindex)]][2]," ") + nodesto=paste0(nodesto,infolist[[j]][2]," ") + nodesproperty=paste0(nodesproperty,property," ") + } + } + else if ((fillAssociation==TRUE)&(as.numeric(parentlevel)!=0)){ + property="str:has" + nodesfrom=paste0(nodesfrom,infolist[[as.numeric(parentindex)]][2]," ") + nodesto=paste0(nodesto,infolist[[j]][2]," ") + nodesproperty=paste0(nodesproperty,property," ") + nodesfrom=paste0(nodesfrom,infolist[[j]][2]," ") + nodesto=paste0(nodesto,infolist[[as.numeric(parentindex)]][2]," ") + nodesproperty=paste0(nodesproperty,"str:belongTo"," ") + } + for (i in 4:length(infolist[[j]])){ tempword="" tempentity="" @@ -711,17 +623,13 @@ for (j in 1:length(infolist)){ tempword=infolist[[j]][4] nodesnames=paste0(nodesnames,title0," ") classeswords=paste0(tempword) - #nodesclasses=paste0(nodesclasses,tempword," ") - #entityname=paste0(FullURI,ID) - #title=paste0("<",entityname,">") entityname=paste0(prefix,":",ID) title=paste0(entityname) line_rdf=paste0("\n ",title," a ",tempword) if (i==length(infolist[[j]])){ line_rdf=paste(line_rdf,";","\n") - #line_rdf=paste(line_rdf,"\t","rdfs:label",title0,".","\n") title0=paste0("\"",title0,"\"") line_rdf=paste(line_rdf,"\t","rdfs:label",title0,";","\n")#,".","\n") } @@ -733,14 +641,10 @@ for (j in 1:length(infolist)){ if (nchar(temp_line)>0){ temp_line=paste("\t",temp_line,";","\n") } - #temp_line=paste(temp_line,"\t","rdfs:label",title0,".","\n") title0=paste0("\"",title0,"\"") - temp_line=paste(temp_line,"\t","rdfs:label",title0,";","\n")#,".","\n") + temp_line=paste(temp_line,"\t","rdfs:label",title0,";","\n") } else { - #if (nchar(temp_line)>0){ - # temp_line=paste("\t",temp_line,";","\n") - #} } }# out of if i==4 @@ -756,7 +660,6 @@ for (j in 1:length(infolist)){ tempwordlist=strsplit(tempword,"=") - #tempentity=paste0("<",tempwordlist[[1]][2],">") if (tempwordlist[[1]][1] %in% Associationlist) { @@ -772,7 +675,6 @@ for (j in 1:length(infolist)){ if (nchar(temp_line)>0){ temp_line=paste("\t",temp_line,";","\n") } - #temp_line=paste(temp_line,"\t","rdfs:label",title0,".","\n") title0=paste0("\"",title0,"\"") temp_line=paste(temp_line,"\t","rdfs:label",title0,";","\n")#,".","\n") } @@ -790,53 +692,35 @@ for (j in 1:length(infolist)){ if (nchar(temp_line)>0){ temp_line=paste("\t",temp_line,";","\n") } - #temp_line=paste(temp_line,"\t","rdfs:label",title0,".","\n") title0=paste0("\"",title0,"\"") temp_line=paste(temp_line,";\n","\t","rdfs:label",title0,";","\n")#,".","\n") } else { - #if (nchar(temp_line)>0){ - # temp_line=paste("\t",temp_line,";","\n") - #} } } - #end session - - - } line_rdf=paste(line_rdf,temp_line) line_rdf_vector[j]=line_rdf } - #lines_rdf=paste(lines_rdf,line_rdf) } titles=IDs=0 for (i in 1:length(infolist)){ - #titles[i]=return_space(infolist[[i]][2]) titles[i]=infolist[[i]][2] IDs[i]=infolist[[i]][3] } library(igraph) -#### nodesfrom2=strsplit(nodesfrom," ") nodesto2=strsplit(nodesto," ") nodesproperty2=strsplit(nodesproperty," ") -#nodesdf=data.frame(from=nodesfrom2[[1]],to=nodesto2[[1]],property=nodesproperty2[[1]]) exceptnum=except=nodesfrom3=nodesto3=nodesproperty3=nodesnm=0 exceptwords=c("str:has","str:belongTo") #diagonal matrix -print (nodesfrom2) -print (nodesto2) -print (nodesproperty2) + if ((length(nodesfrom2[[1]])-1)>=1){ for (i in 1:(length(nodesfrom2[[1]])-1)){ - print ("this is i:") - print (i) for (j in ((i+1):length(nodesfrom2[[1]]))){ - print ("this is j:") - print (j) if ((i!=j)&(length(nodesfrom2[[1]])>=j)&(length(nodesto2[[1]])>=j)){ if((nodesfrom2[[1]][i]==nodesfrom2[[1]][j])&(nodesto2[[1]][i]==nodesto2[[1]][j])){ exceptnum=exceptnum+1 @@ -849,25 +733,13 @@ for (i in 1:(length(nodesfrom2[[1]])-1)){ } } } -print ("from before") -print (nodesfrom2) - print ("to before") -print (nodesto2) - print ("property before") -print (nodesproperty2) -print (except) -print (IDs) -print ("title before") -print (titles) - + nodesnames2=strsplit(nodesnames," ") -print ("nodesnames2 before") -print (nodesnames2) + for (i in 1:length(nodesfrom2[[1]])){ if (i %in% except){} else { nodesnm=nodesnm+1 - # for (j in 1:length(IDs)){ if (nodesfrom2[[1]][i]==IDs[j]){ nodesfrom2[[1]][i]=titles[j] @@ -886,39 +758,23 @@ for (i in 1:length(nodesfrom2[[1]])){ nodesnames=paste0(nodesnames,nodesto2[[1]][i]," ") nodesclasses=paste0(nodesclasses,"AutoAdded"," ") } - # - #nodesfrom3[nodesnm]=return_space(nodesfrom2[[1]][i]) - #nodesto3[nodesnm]=return_space(nodesto2[[1]][i]) - #nodesproperty3[nodesnm]=nodesproperty2[[1]][i] nodesfrom3[nodesnm]=nodesfrom2[[1]][i] nodesto3[nodesnm]=nodesto2[[1]][i] nodesproperty3[nodesnm]=nodesproperty2[[1]][i] } } -print ("form") -print (nodesfrom3) -print ("to") -print (nodesto3) -print ("property") -print (nodesproperty3) -#### + nodesnames2=strsplit(nodesnames," ") nodesclasses2=strsplit(nodesclasses," ") -print ("name") -print (nodesnames2) -print ("name") -print (nodesclasses2) + nodes <- data.frame(name = return_space(nodesnames2[[1]]), class = nodesclasses2[[1]]) - -print (nodes) + nesting <- data.frame(from = return_space(nodesfrom3), to = return_space(nodesto3), property = nodesproperty3) - -print (nesting) - print (nodes) + g3 <- graph_from_data_frame(nesting, directed=TRUE, vertices=nodes) E(g3)$label <- E(g3)$property @@ -927,7 +783,6 @@ for (i in 1:length(line_rdf_vector)){ tempnumber=which(nodesfrom3==titles[i]) if (length(tempnumber)>0){ for (j in 1:length(tempnumber)){ - #entityname2=paste0("<",FullURI,IDs[which(titles==nesting$to[tempnumber[j]])],">") if (length(IDs[which(titles==nodesto3[tempnumber[j]])])>0){ entityname2=paste0(prefix,":",IDs[which(titles==nodesto3[tempnumber[j]])]) } From 9e140b85475a11289fb5e9f51290235d384b70de Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 3 Aug 2017 03:28:01 -0500 Subject: [PATCH 215/318] Update sum_str.R --- R/sum_str.R | 64 +++++++++++++++++++++++++++++++++++------------------ 1 file changed, 43 insertions(+), 21 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 770cdec..58d5aa0 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -39,8 +39,22 @@ #' contain a title or not. #' @param header A boolean value indicating whether a column header should #' indicate the name of the columns (line, level, section). +#' @param rdf A boolean value indicating whether a rdf file should be generated. +#' @param graph A boolean value indicating whether a rdf graph should be generated. +#' @param domain A boolean value indicating whether use user's working domain as +#' a prefix header in generated rdf file. +#' @param baseURI A character string naming the URI for user's working domain. +#' @param UserID A character string naming the user name in the working domain. +#' @param prefix A character string naming the abbreviation for user's domain. +#' @param UserAL A boolean value indicating whether use default association +#' library. +#' @param fillAssociation A boolean value indicating whether use a pair of default +#' associations to name unlisted associations in User default association library. +#' @param UserANM A boolean value indicating whether use defaut association list. +#' Only associations in this list could serve as an relationship in output rdf graph. #' @param ... futher arguments to be passed from and to other methods, in #' particular \code{\link{list.files}} for reading in multiple files. + #' @details To create the summary, \code{sum_str} uses regular expressions. #' Hence it is crucial that the code separators and the separator titles #' match the regular expression pattern. We recommend inserting @@ -50,10 +64,10 @@ #' as well. #' \itemize{ #' \item A code separator is defined as a line that starts with n hashes, -#' followed by 4-n spaces where 0 < n < 4. This sequence is followed by one +#' followed by 8-n spaces where 0 < n < 8. This sequence is followed by one #' or more either \code{.} or \code{_}. #' \item A title associated with a code separator is defined as a line -#' that starts with n hashes, followed by 4-n spaces where 0 < n < 4. This +#' that starts with n hashes, followed by 8-n spaces where 0 < n < 8. This #' sequence is \emph{not} followed by \code{.} or \code{_}. #' } #' Lines that do not satisfy these requirements (e.g. do not start with #s, @@ -73,11 +87,20 @@ #' # the following separator is an example of a valid #' # separator and associated title #' -#' # __________________________________________________ -#' # this is a level 1 title #### +#' # __________________________________________________ +#' # this is a level 1 title #### #' ## . . . . . . . . . . . . . . . . . . . . . . . . . #' ## note that the title or the separator character (_, .) -#' ## always starts at indention 4. +#' ## always starts at indention 8. +#' # to create separators which is valid for generating rdf file, +#' # users should fill out at least title and class, and put the entities into +#' # correct levels to create associations automatically by function. +#' +#' # the following separator is an example of a valid +#' # separator and associated title for generating rdf file +#' +#' # ________________________________________________________________________ +#' # YourWorkflow {YourID provone:Workflow} #### #' #' \dontrun{ #' # Open a new .R file in RStudio, insert some code breaks @@ -357,11 +380,14 @@ if (rm_break_anchors) { ## ............................................................................ ## output the pattern - if (rdf=="ttl"|graph){ + + if (rdf=="ttl"|graph){ # if users want to generate rdf file or rdf graph + # use system time to generate a base file datetime <- format(Sys.time(), "%Y_%m_%d_%H_%M_%S") fileformat=".ttl" #".txt" outputfile2 <- paste("RDF_output_file_",datetime,fileformat,sep="") write(lines,file=outputfile2) + templines=readLines(outputfile2) lines_content=templines[4:length(templines)] lines_split=strsplit(lines_content, " ") @@ -372,7 +398,7 @@ if (rm_break_anchors) { prefix=prefix schemalist=list() - + # a schemas library to create headers by using keywords in content schemas=c(rdfs="@prefix rdfs: .", xsd="@prefix xsd: .", owl="@prefix owl: .", @@ -397,7 +423,7 @@ if (rm_break_anchors) { schemalist1[[tempcount0]]=schemalist[[i]] } } - + # delete the seperator line and get useful information only tempcount0=0 lines_split1=list() for (i in 1:length(schemalist)){ @@ -419,7 +445,7 @@ if (rm_break_anchors) { } } } - + # delete the symbols which is used in seperator line for (i in 1:length(lines_split1)){ schemalist[[i]]=grep(":",lines_split1[[i]]) } @@ -437,6 +463,7 @@ if (rm_break_anchors) { infolist[[i]][length(infolist[[i]])]=gsub("\\}","",infolist[[i]][length(infolist[[i]])]) } infolist1=infolist + # delete JSON-LD style structure and only leave the useful information for (i in grep("\":",infolist)){ infolist[[i]][2]=gsub(",","",infolist1[[i]][4]) infolist[[i]][3]=gsub(",","",infolist1[[i]][2]) @@ -461,6 +488,7 @@ if (rm_break_anchors) { schemalist1[[i]]=grep(":",infolist[[i]]) } schemalist=schemalist1 + # add prefix for (i in 1:length(schemalist)){ for (j in 1:length(schemalist[[i]])){ @@ -477,14 +505,8 @@ if (rm_break_anchors) { lines_rdf=paste0(" @prefix ",prefix,": ","<",FullURI,"> .\n") for (i in 1:length(schemahad)){ lines_rdf=paste(lines_rdf,schemas[schemahad[i]],"\n") - } - - # RDF word list: - ProvONElist=c("provone:Process","provone:InputPort","provone:OutputPort", - "provone:DataLink","provone:SeqCtrlLink","provone:Workflow", - "provone:User","provone:ProcessExec","provone:Data", - "provone:Collection","provone:Visualization","provone:Program") - + } + # creating a default association list DefaultAssociationlist=paste0("AssociationName\n","provone:hasSubProcess\n","provone:sourcePToCL\n","provone:CLtoDestP\n", "provone:hasInPort\n","provone:hasOutPort\n","provone:hasDefaultParam\n", "provone:DLToInPort\n","provone:outPortToDL\n","provone:inPortToDL\n", @@ -495,17 +517,17 @@ if (rm_break_anchors) { write(DefaultAssociationlist,file="DefaultAssociationNames.txt") Associationlist.df=read.table("DefaultAssociationNames.txt",sep=",",header=TRUE) - + + # whether use default association list or not if (UserANM==FALSE){ Associationlist.df=read.table("DefaultAssociationNames.txt",sep=",",header=TRUE) } else if (UserANM==TRUE) { Associationlist.df=read.table("AssociationNames.txt",sep=",",header=TRUE) - } - + } Associationlist=Associationlist.df$AssociationName - # Association library: + # creating a default association library: DefaultAL=paste0("ParentClass,","ChildClass,","Ways,","Property,","ReverseProperty\n", "\"provone:Process\",","\"provone:Process\",","2,","\"provone:hasSubProcess\",","\"provone:wasDerivedFrom\"\n", "\"provone:Process\",","\"provone:Data\",","2,","\"provone:wasDerivedFrom\",","\"provone:hasMember\"\n", From 16700daf7d04b5305e0fa6ab4d09c4893df9cbfb Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 3 Aug 2017 04:14:02 -0500 Subject: [PATCH 216/318] Update sum_str.R --- R/sum_str.R | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 58d5aa0..133d3ce 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -537,7 +537,8 @@ if (rm_break_anchors) { nodesnames=nodesclasses=nodesfrom=nodesto=nodesproperty=parentclass=property=line_rdf_vector="" templevel=parentlevel=parentindex=tempwordlist=0 levelvector=rep(0,7) - + + # get property of association by using parent entity class and child entity class automatically for (j in 1:length(infolist)){ AssociationNUM=firstmeet=0 line_rdf=classeswords="" @@ -546,6 +547,7 @@ if (rm_break_anchors) { parentlevel=templevel templevel=infolist[[j]][1] tempclass=infolist[[j]][4] + # levelvector saves existing levels if (infolist[[j]][1]==1){ if (levelvector[1]==0){ levelvector[1]=j @@ -581,6 +583,7 @@ if (rm_break_anchors) { levelvector[7]=j } } + # replace existing levels when found a new one if (as.numeric(parentlevel)!=0){ if (as.numeric(templevel)>as.numeric(parentlevel)){ parentindex=j-1 @@ -604,14 +607,17 @@ if (rm_break_anchors) { } tempPwordlist=which(AssociationsLib$ParentClass==parentclass) tempwordlist=which(AssociationsLib$ChildClass[tempPwordlist]==tempclass) + # whether the relationship between parent and child classes are in association library if (length(tempwordlist)>1){ AssociationNUM=tempPwordlist[min(tempwordlist)] } else if (length(tempwordlist)==1){ AssociationNUM=tempPwordlist[tempwordlist] } + # get association property and other information if it is in association library if (AssociationNUM>0){ property=as.character(AssociationsLib$Property[AssociationNUM]) + # two ways association if (AssociationsLib$Ways[AssociationNUM]==2){ nodesfrom=paste0(nodesfrom,infolist[[as.numeric(parentindex)]][2]," ") nodesto=paste0(nodesto,infolist[[j]][2]," ") @@ -620,13 +626,14 @@ if (rm_break_anchors) { nodesto=paste0(nodesto,infolist[[as.numeric(parentindex)]][2]," ") nodesproperty=paste0(nodesproperty,AssociationsLib$ReverseProperty," ") } + # one way association else if (AssociationsLib$Ways[AssociationNUM]==1){ nodesfrom=paste0(nodesfrom,infolist[[as.numeric(parentindex)]][2]," ") nodesto=paste0(nodesto,infolist[[j]][2]," ") nodesproperty=paste0(nodesproperty,property," ") } } - + # if using default association to fill the nonexistent association in the library else if ((fillAssociation==TRUE)&(as.numeric(parentlevel)!=0)){ property="str:has" nodesfrom=paste0(nodesfrom,infolist[[as.numeric(parentindex)]][2]," ") @@ -636,7 +643,8 @@ if (rm_break_anchors) { nodesto=paste0(nodesto,infolist[[as.numeric(parentindex)]][2]," ") nodesproperty=paste0(nodesproperty,"str:belongTo"," ") } - + + # deal with other information besides title, id and class for (i in 4:length(infolist[[j]])){ tempword="" tempentity="" @@ -650,13 +658,15 @@ if (rm_break_anchors) { title=paste0(entityname) line_rdf=paste0("\n ",title," a ",tempword) + # print content depends on whether it is the last one or not if (i==length(infolist[[j]])){ line_rdf=paste(line_rdf,";","\n") title0=paste0("\"",title0,"\"") + # add title as rdfs:label in the output file line_rdf=paste(line_rdf,"\t","rdfs:label",title0,";","\n")#,".","\n") } else{ - line_rdf=paste(line_rdf)#,";","\n") + line_rdf=paste(line_rdf) } if (i==length(infolist[[j]])){ nodesclasses=paste0(nodesclasses,classeswords," ") @@ -672,17 +682,16 @@ if (rm_break_anchors) { }# out of if i==4 else { # i>4 tempword=infolist[[j]][i] - # old association + # find manually input values if (grepl("=",tempword)){ + # print founded class or classes in output file firstmeet=firstmeet+1 if (firstmeet==1){ line_rdf=paste0(line_rdf,";","\n") - } - - + tempwordlist=strsplit(tempword,"=") - + # if the manually typed input is an association, add this relation into nodes data frame if (tempwordlist[[1]][1] %in% Associationlist) { nodesfrom=paste0(nodesfrom,title0," ") @@ -706,7 +715,7 @@ if (rm_break_anchors) { } } } - else { + else { # for multiple classes classeswords=paste0(classeswords,",",tempword) line_rdf=paste0(line_rdf,", ",tempword) if (i==length(infolist[[j]])){ From cbf2fa429363b48524512fd6ffe9a0c4069b5a6f Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 3 Aug 2017 04:15:35 -0500 Subject: [PATCH 217/318] Update sum_str.R From c5b6019d05461b31023426d28f7d595d4033321b Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 3 Aug 2017 15:16:15 -0500 Subject: [PATCH 218/318] Update sum_str.R --- R/sum_str.R | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 133d3ce..8d78129 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -715,7 +715,8 @@ if (rm_break_anchors) { } } } - else { # for multiple classes + # for multiple classes, paste each one after first class, seperate by comma + else { classeswords=paste0(classeswords,",",tempword) line_rdf=paste0(line_rdf,", ",tempword) if (i==length(infolist[[j]])){ @@ -724,16 +725,18 @@ if (rm_break_anchors) { temp_line=paste("\t",temp_line,";","\n") } title0=paste0("\"",title0,"\"") - temp_line=paste(temp_line,";\n","\t","rdfs:label",title0,";","\n")#,".","\n") + temp_line=paste(temp_line,";\n","\t","rdfs:label",title0,";","\n") } else { } } } line_rdf=paste(line_rdf,temp_line) + # save entities in a character sting variable line_rdf_vector[j]=line_rdf } } +# get titles and IDs titles=IDs=0 for (i in 1:length(infolist)){ titles[i]=infolist[[i]][2] @@ -747,8 +750,9 @@ nodesto2=strsplit(nodesto," ") nodesproperty2=strsplit(nodesproperty," ") exceptnum=except=nodesfrom3=nodesto3=nodesproperty3=nodesnm=0 exceptwords=c("str:has","str:belongTo") -#diagonal matrix +# use a diagonal matrix to find duplicate nodes when users manually typed in associations, and replace the +# default associations "str:has" and "str:belongTo" by user-defined associations if ((length(nodesfrom2[[1]])-1)>=1){ for (i in 1:(length(nodesfrom2[[1]])-1)){ for (j in ((i+1):length(nodesfrom2[[1]]))){ @@ -767,6 +771,7 @@ for (i in 1:(length(nodesfrom2[[1]])-1)){ nodesnames2=strsplit(nodesnames," ") +# add nonexisting nodes to graph, even if they are not inserted as an entity for (i in 1:length(nodesfrom2[[1]])){ if (i %in% except){} else { @@ -779,6 +784,8 @@ for (i in 1:length(nodesfrom2[[1]])){ nodesto2[[1]][i]=titles[j] } } + # add nonexisting nodes to graph, set class as AutoAdded + if (nodesfrom2[[1]][i] %in% nodesnames2[[1]]){} else { nodesnames=paste0(nodesnames,nodesfrom2[[1]][i]," ") @@ -799,6 +806,7 @@ for (i in 1:length(nodesfrom2[[1]])){ nodesnames2=strsplit(nodesnames," ") nodesclasses2=strsplit(nodesclasses," ") +# add nodes and nesting information into a data frame nodes <- data.frame(name = return_space(nodesnames2[[1]]), class = nodesclasses2[[1]]) @@ -809,7 +817,7 @@ nesting <- data.frame(from = return_space(nodesfrom3), g3 <- graph_from_data_frame(nesting, directed=TRUE, vertices=nodes) E(g3)$label <- E(g3)$property - +# append manually type-in information to each entity for (i in 1:length(line_rdf_vector)){ tempnumber=which(nodesfrom3==titles[i]) if (length(tempnumber)>0){ @@ -827,11 +835,12 @@ for (i in 1:length(line_rdf_vector)){ } } +# convert %20 to space for (i in 1:length(line_rdf_vector)){ line_rdf_vector[i]=return_space(line_rdf_vector[i]) lines_rdf=paste(lines_rdf,line_rdf_vector[i]) } - +# generate RDF file if (rdf=="ttl"){ write(lines_rdf,file=outputfile2) print("Create a RDF file successfully. Please find the output file in:") From aa7d90b9548dedd9ae8d9a60f7c83576723ae12e Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 3 Aug 2017 16:42:07 -0500 Subject: [PATCH 219/318] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 66d684c..27f2572 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ You can install the package from GitHub. ``` r # install.packages("devtools") -devtools::install_github("lorenzwalthert/strcode") +devtools::install_github("XiaoliangJiang/strcode",ref="semantics") ``` Structuring code From 64d547aaae5b08a5c131b06568bfa3a2966aea52 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 3 Aug 2017 20:13:23 -0500 Subject: [PATCH 220/318] Update README.md --- README.md | 68 +++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 58 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 27f2572..1df3d36 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ The `strcode` (short for structuring code) package contains tools to organize an - An [RStudio Add-in](https://rstudio.github.io/rstudioaddins/) that lets you quickly add code block separators and titles (possibly with unique identifiers) to divide your work into sections. The titles are recognized as sections by RStudio, which enhances the coding experience further. - A function `sum_str` that summarizes the code structure based on the separators and their comments added with the Add-in. For one or more files, it can cat the structure to the console or a file. -- An [RStudio Add-in](https://rstudio.github.io/rstudioaddins/) that lets you insert a code anchor, that is, a hash sequence which can be used to uniquely identify a line in a large code base. +-   An [RStudio Add-in](https://rstudio.github.io/rstudioaddins/) that lets you insert a code anchor, that is, a hash sequence which can be used to uniquely identify a line in a large code base. @@ -26,33 +26,36 @@ devtools::install_github("XiaoliangJiang/strcode",ref="semantics") Structuring code ================ +For basic use +------------- We suggest three levels of granularity for code structuring, whereas higher-level blocks can contain lower-level blocks. -- level 1 sections, which are high-level blocks that can be separated as follows: +-   level 1 sections, which are high-level blocks that can be separated as follows: ``` r -# ____________________________________________________________________________ -# A title #### +# ________________________________________________________________________ +# A title #### ``` - level 2 sections, which are medium-level blocks that can be separated as follows: + ``` r -## ............................................................................ -## A subtitle #### +## ........................................................................ +## A subtitle #### ``` - level 3 sections, which are low-level blocks that can be separated as follows: ``` r -### .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -### One more #### +### .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ... +### One more #### ``` You can notice from the above that -- The number of `#` used in front of the break character (`___`, `...`, `. .`) corresponds to the level of granularity that is separated. -- The breaks characters `___`, `...`, `. .` were chosen such that they reflect the level of granularity, namely `___` has a much higher visual density than `. .`. +- The number of `#` used in front of the break character (`___`, `...`, `.. ..`) corresponds to the level of granularity that is separated. +- The breaks characters `___`, `...`, `.. ..` were chosen such that they reflect the level of granularity, namely `___` has a much higher visual density than `.. ..`. - Each block has an (optional) short title on what that block is about. - Every title ends with `####`. Therefore, the titles are recognized by RStudio as [sections](https://support.rstudio.com/hc/en-us/articles/200484568-Code-Folding-and-Sections). This has the advantages that you can get a quick summary of your code in Rstudio's code pane and you can fold sections as you can fold code or function declarations or if statements. See the pictures below for details. @@ -60,6 +63,51 @@ The separators all have length 80. The value is looked up in the global option ` By default, breaks and titles are inserted via a Shiny Gadget, but this default can be overridden by setting the option `strcode$insert_with_shiny` to `FALSE` and hence only inserting the break. +For semantic use +---------------- +Firstly, click check box `Add semantics` to show more options for semantic use. We suggest seven levels of granularity for code structuring, whereas higher-level blocks can contain lower-level blocks. + +-   level 1 sections, which are highest-level blocks that usually represents user's workflow domain and can be separated as follows: + +``` r +# ________________________________________________________________________ +# YourWorkflow {WorkID provone:Workflow} #### +``` + +- level 2 sections, which are second-highest-level blocks that are the highest level for detailed entities can be separated as follows: + +``` r +## ........................................................................ +## YourProcess {ProcessID provone:Process} #### +``` + +- level 3 sections, which are lower-level blocks that can be separated as follows: + +``` r +#### .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ... +### YourProcess02 {ProcessID02 provone:Process} #### +``` + +- level 4 sections, which are lower-level blocks that can be separated as follows: + +``` r +#### ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .... +#### YourData {DataID provone:Data} #### +``` + +You can notice from the above that + +- The breaks characters `___`, `...`, `.. ..`,`... ...` were chosen such that they reflect the level of granularity, namely `___` means highest level (or domain level), and the number of dots between spaces represents different lower levels, for example, `.. ..` means second level of entities level (third level in total). + +- The first argument which is outside of brace is title. The first argument in the pair of braces is ID and second argument is class. And if you add more manully inputs, they will appear in the pair of braces after class, like: + +``` r +### .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ... +### YourData {DataID provone:Data manuallyinput=value} #### +``` + +- Manually input values should follow the structure: property=value. The user interface only accept manually input values in correct structure. + Anchoring sections ================== From e4572207062fee616f89082db9e47f25cda8df5a Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 3 Aug 2017 20:19:41 -0500 Subject: [PATCH 221/318] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 1df3d36..26792f0 100644 --- a/README.md +++ b/README.md @@ -84,7 +84,7 @@ Firstly, click check box `Add semantics` to show more options for semantic use. - level 3 sections, which are lower-level blocks that can be separated as follows: ``` r -#### .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ... +### .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ... ### YourProcess02 {ProcessID02 provone:Process} #### ``` @@ -107,6 +107,7 @@ You can notice from the above that ``` - Manually input values should follow the structure: property=value. The user interface only accept manually input values in correct structure. +- Anchoring sections ================== From dd8cfc8b283aec18391789e2c9c6b7a99649b078 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 3 Aug 2017 20:34:38 -0500 Subject: [PATCH 222/318] Update sum_str.R --- R/sum_str.R | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 8d78129..030a645 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -668,16 +668,16 @@ if (rm_break_anchors) { else{ line_rdf=paste(line_rdf) } - if (i==length(infolist[[j]])){ - nodesclasses=paste0(nodesclasses,classeswords," ") - if (nchar(temp_line)>0){ - temp_line=paste("\t",temp_line,";","\n") - } - title0=paste0("\"",title0,"\"") - temp_line=paste(temp_line,"\t","rdfs:label",title0,";","\n") - } - else { - } + #if (i==length(infolist[[j]])){ + # nodesclasses=paste0(nodesclasses,classeswords," ") + # if (nchar(temp_line)>0){ + # temp_line=paste("\t",temp_line,";","\n") + # } + # title0=paste0("\"",title0,"\"") + # temp_line=paste(temp_line,"\t","rdfs:label",title0,";","\n") + #} + #else { + #} }# out of if i==4 else { # i>4 From 7903d68135a22a04cbda6c1e3ea8472013b8f5b6 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 3 Aug 2017 20:36:05 -0500 Subject: [PATCH 223/318] Update sum_str.R --- R/sum_str.R | 1 + 1 file changed, 1 insertion(+) diff --git a/R/sum_str.R b/R/sum_str.R index 030a645..a5866f1 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -660,6 +660,7 @@ if (rm_break_anchors) { # print content depends on whether it is the last one or not if (i==length(infolist[[j]])){ + nodesclasses=paste0(nodesclasses,classeswords," ") line_rdf=paste(line_rdf,";","\n") title0=paste0("\"",title0,"\"") # add title as rdfs:label in the output file From 55614713f788b16876dc0666783a9a70663668b6 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 3 Aug 2017 20:37:41 -0500 Subject: [PATCH 224/318] Update sum_str.R --- R/sum_str.R | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index a5866f1..a7ac9c0 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -669,17 +669,7 @@ if (rm_break_anchors) { else{ line_rdf=paste(line_rdf) } - #if (i==length(infolist[[j]])){ - # nodesclasses=paste0(nodesclasses,classeswords," ") - # if (nchar(temp_line)>0){ - # temp_line=paste("\t",temp_line,";","\n") - # } - # title0=paste0("\"",title0,"\"") - # temp_line=paste(temp_line,"\t","rdfs:label",title0,";","\n") - #} - #else { - #} - + }# out of if i==4 else { # i>4 tempword=infolist[[j]][i] From 0674e154a56b9937c9d7fbce959a2b587c959220 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 3 Aug 2017 20:38:55 -0500 Subject: [PATCH 225/318] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 26792f0..5f0186d 100644 --- a/README.md +++ b/README.md @@ -102,8 +102,8 @@ You can notice from the above that - The first argument which is outside of brace is title. The first argument in the pair of braces is ID and second argument is class. And if you add more manully inputs, they will appear in the pair of braces after class, like: ``` r -### .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ... -### YourData {DataID provone:Data manuallyinput=value} #### +#### ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .... +#### YourData {DataID provone:Data manuallyinput=value} #### ``` - Manually input values should follow the structure: property=value. The user interface only accept manually input values in correct structure. From 86ed465871438bda5d2d869cf9caa2b559a9efb0 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Thu, 3 Aug 2017 20:43:58 -0500 Subject: [PATCH 226/318] Update README.md --- README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5f0186d..96d5c67 100644 --- a/README.md +++ b/README.md @@ -107,7 +107,12 @@ You can notice from the above that ``` - Manually input values should follow the structure: property=value. The user interface only accept manually input values in correct structure. -- +- A JSON-LD structure style also could be generated by the function with click the check box `JSON-LD` to enable it. With same input above, the result of using JSON-LD style is like: + +``` r +#### .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ... +#### {"@id":DataID, "@type":provone:Data, "label":YourData} #### +``` Anchoring sections ================== From 80b4b3d457725284d0a8d9b6b816ad07caec569a Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 4 Aug 2017 00:14:34 -0500 Subject: [PATCH 227/318] Add files via upload --- ...\346\210\252\345\233\276_20170804001419.png" | Bin 0 -> 36038 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 "demos/\345\276\256\344\277\241\346\210\252\345\233\276_20170804001419.png" diff --git "a/demos/\345\276\256\344\277\241\346\210\252\345\233\276_20170804001419.png" "b/demos/\345\276\256\344\277\241\346\210\252\345\233\276_20170804001419.png" new file mode 100644 index 0000000000000000000000000000000000000000..0f3d4032e5a525345ceb92d1009e7773abee0fbb GIT binary patch literal 36038 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 literal 0 HcmV?d00001 From b41afd16e90ba1f544c8ff7afc659ba504efeb97 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 4 Aug 2017 00:14:47 -0500 Subject: [PATCH 228/318] =?UTF-8?q?Delete=20=E5=BE=AE=E4=BF=A1=E6=88=AA?= =?UTF-8?q?=E5=9B=BE=5F20170804001419.png?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\346\210\252\345\233\276_20170804001419.png" | Bin 36038 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 "demos/\345\276\256\344\277\241\346\210\252\345\233\276_20170804001419.png" diff --git "a/demos/\345\276\256\344\277\241\346\210\252\345\233\276_20170804001419.png" "b/demos/\345\276\256\344\277\241\346\210\252\345\233\276_20170804001419.png" deleted file mode 100644 index 0f3d4032e5a525345ceb92d1009e7773abee0fbb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36038 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 From 1e17defb74045280db4fad01f6091aac560893ed Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 4 Aug 2017 00:17:06 -0500 Subject: [PATCH 229/318] Add files via upload --- demos/Multiple Child entities.png | Bin 0 -> 36038 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 demos/Multiple Child entities.png diff --git a/demos/Multiple Child entities.png b/demos/Multiple Child entities.png new file mode 100644 index 0000000000000000000000000000000000000000..0f3d4032e5a525345ceb92d1009e7773abee0fbb GIT binary patch literal 36038 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 literal 0 HcmV?d00001 From 3dff336331e45ffd24f98875d003ccb47cce560f Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 4 Aug 2017 00:17:59 -0500 Subject: [PATCH 230/318] Update README.md --- README.md | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 96d5c67..bce1a0a 100644 --- a/README.md +++ b/README.md @@ -107,13 +107,30 @@ You can notice from the above that ``` - Manually input values should follow the structure: property=value. The user interface only accept manually input values in correct structure. -- A JSON-LD structure style also could be generated by the function with click the check box `JSON-LD` to enable it. With same input above, the result of using JSON-LD style is like: +- A JSON-LD structure style also could be generated by the function with click the check box `JSON-LD` to enable it. With same input above, the result of using JSON-LD style let users understand arguments easier and it is like: ``` r #### .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ... #### {"@id":DataID, "@type":provone:Data, "label":YourData} #### ``` +- Since the function uses levels to generat associations between entities, for semantics use, the child entity must be under its parent entity. +- If a parent entity has multiple child entities, put these child entities under the parent entity level, and the function will generat correct relationship automatically. For example, if your inputs are as follows: + +``` r +# ________________________________________________________________________ +# YourWorkflow {WorkID provone:Workflow} #### + +## ........................................................................ +## YourProcess {ProcessID provone:Process} #### + +## ........................................................................ +## YourProcess02 {ProcessID02 provone:Process} #### +``` + +The RDF diagram of this one will be: + + Anchoring sections ================== From 2452dc5b48d2873464176de4a430b9b14d307901 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 4 Aug 2017 00:18:29 -0500 Subject: [PATCH 231/318] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bce1a0a..b0d01b5 100644 --- a/README.md +++ b/README.md @@ -129,7 +129,7 @@ You can notice from the above that ``` The RDF diagram of this one will be: - + Anchoring sections ================== From 404a7e8f28557fe1393c9b6f693d446fe1b0777e Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 4 Aug 2017 00:25:16 -0500 Subject: [PATCH 232/318] Add files via upload --- demos/Multiple Parent entities.png | Bin 0 -> 62185 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 demos/Multiple Parent entities.png diff --git a/demos/Multiple Parent entities.png b/demos/Multiple Parent entities.png new file mode 100644 index 0000000000000000000000000000000000000000..99b7915b52606bf9ad6adbc1a84fe112d620ca6f GIT binary patch literal 62185 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 I@cXa-06sbr2><{9 literal 0 HcmV?d00001 From 4f23223becf79ab9d20c655b0318ead14396788f Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 4 Aug 2017 00:30:29 -0500 Subject: [PATCH 233/318] Add files via upload --- demos/AssociationNames.txt | 23 +++++++++++++++++++++++ demos/AssociationsLibrary.txt | 9 +++++++++ 2 files changed, 32 insertions(+) create mode 100644 demos/AssociationNames.txt create mode 100644 demos/AssociationsLibrary.txt diff --git a/demos/AssociationNames.txt b/demos/AssociationNames.txt new file mode 100644 index 0000000..b20d6c9 --- /dev/null +++ b/demos/AssociationNames.txt @@ -0,0 +1,23 @@ +AssociationName +provone:hasSubProcess +provone:sourcePToCL +provone:CLtoDestP +provone:hasInPort +provone:hasOutPort +provone:hasDefaultParam +provone:DLToInPort +provone:outPortToDL +provone:inPortToDL +provone:DLToOutPort +provone:wasAttributedTo +provone:wasDerivedFrom +provone:dataOnLink +provone:used +provone:wasGeneratedBy +provone:wasAssociatedWith +provone:wasInformedBy +provone:isPartOf +provone:hadMember +cwfo:hasOutData +cwfo:hasInData + diff --git a/demos/AssociationsLibrary.txt b/demos/AssociationsLibrary.txt new file mode 100644 index 0000000..35a2465 --- /dev/null +++ b/demos/AssociationsLibrary.txt @@ -0,0 +1,9 @@ +ParentClass,ChildClass,Ways,Property,ReverseProperty +"provone:Process","provone:Process",2,"provone:hasSubProcess","provone:wasDerivedFrom" +"provone:Process","provone:Data",2,"provone:wasDerivedFrom","provone:hasMember" +"provone:Process","provone:Visualization",2,"provone:wasDerivedFrom","provone:hasMember" +"provone:Workflow","prov:Plan",1,"prov:hadPlan"," " +"provone:Program","provone:Program",1,"provone:hasSubProgram","provone:wasDerivedFrom" +"provone:Workflow","provone:Program",1,"provone:hasSubProgram"," " +"provone:Program","provone:Data",1,"cwfo:hasOutData"," " +"provone:Workflow","provone:Process",1,"provone:hasSubProcess"," " From 43c2fb8ba59ffe24f0c18386ce330a3159ed0318 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 4 Aug 2017 01:09:14 -0500 Subject: [PATCH 234/318] Update README.md --- README.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/README.md b/README.md index b0d01b5..0efdcd2 100644 --- a/README.md +++ b/README.md @@ -115,6 +115,8 @@ You can notice from the above that ``` - Since the function uses levels to generat associations between entities, for semantics use, the child entity must be under its parent entity. +- Notice that only given classes exist in AssociationsLibrary.txt file (in semantics branch, demos folder) can serve as associations and automatically generated by the function. You could added new associations into this library by yourself. This file have five columns: "ParentClass" , "ChildClass", "Ways", "Property", and "ReverseProperty". You need to follow this structure and add five values (seperate by comma ",") for your user-defined associations. The first value in ParentClass column is the class of parent entity; the second value in ChildClass is the calss of child entity; the third value in Ways column can be only 1 or 2 which indicate this association is one-way or two-ways; the fourth value in Property column represent the property of the association from parent entity to child entity, which also will be shown in RDF diagram; the last value in ReverseProperty column represent the property in reverse way, which is from child entity to parent entity, and this value could be " " in onw-way associations. + - If a parent entity has multiple child entities, put these child entities under the parent entity level, and the function will generat correct relationship automatically. For example, if your inputs are as follows: ``` r @@ -129,8 +131,27 @@ You can notice from the above that ``` The RDF diagram of this one will be: + +- If a child entity has multiple parent entities, please manually input associations in this structure: associations=ID. for example, if your breaks are as follows: + +``` r +# ________________________________________________________________________ +# YourWorkflow {WorkID provone:Workflow provone:hasSubProcess=ProcessID02}#### + +## ........................................................................ +## YourProcess {ProcessID provone:Process} #### + +### .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ... +### YourProcess02 {ProcessID02 provone:Process provone:wasDerivedFrom=WorkID}#### +``` +The RDF diagram of this one will be: + + + +Notice that if you want to generate two-ways association, you need to manually added associations both in parent and child entities. In addition, only given words which exist in AssociationNames.txt file (in semantics branch, demos folder) can serve as associations between two entities and be manually added in. You can download this file, and add associations by yourself. For more information about how to add associations into the list, please read Summarizing code part. + Anchoring sections ================== From 6bc8062d8780c3fb660397c66c44f59d7d5ba2ee Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 4 Aug 2017 03:12:07 -0500 Subject: [PATCH 235/318] Update README.md --- README.md | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 88 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 0efdcd2..d0cc05d 100644 --- a/README.md +++ b/README.md @@ -115,7 +115,7 @@ You can notice from the above that ``` - Since the function uses levels to generat associations between entities, for semantics use, the child entity must be under its parent entity. -- Notice that only given classes exist in AssociationsLibrary.txt file (in semantics branch, demos folder) can serve as associations and automatically generated by the function. You could added new associations into this library by yourself. This file have five columns: "ParentClass" , "ChildClass", "Ways", "Property", and "ReverseProperty". You need to follow this structure and add five values (seperate by comma ",") for your user-defined associations. The first value in ParentClass column is the class of parent entity; the second value in ChildClass is the calss of child entity; the third value in Ways column can be only 1 or 2 which indicate this association is one-way or two-ways; the fourth value in Property column represent the property of the association from parent entity to child entity, which also will be shown in RDF diagram; the last value in ReverseProperty column represent the property in reverse way, which is from child entity to parent entity, and this value could be " " in onw-way associations. +-   Notice that only given classes exist in AssociationsLibrary.txt file (in semantics branch, demos folder) can serve as associations and automatically generated by the function. After download and paste it into your current working directory (use getwd() to show your working directory in R), you could added new associations into this library by yourself. This file have five columns: "ParentClass" , "ChildClass", "Ways", "Property", and "ReverseProperty". You need to follow this structure and add five values (seperate by comma ",") for your user-defined associations. The first value in ParentClass column is the class of parent entity; the second value in ChildClass is the calss of child entity; the third value in Ways column can be only 1 or 2 which indicate this association is one-way or two-ways; the fourth value in Property column represent the property of the association from parent entity to child entity, which also will be shown in RDF diagram; the last value in ReverseProperty column represent the property in reverse way, which is from child entity to parent entity, and this value could be " " in onw-way associations. - If a parent entity has multiple child entities, put these child entities under the parent entity level, and the function will generat correct relationship automatically. For example, if your inputs are as follows: @@ -150,7 +150,7 @@ The RDF diagram of this one will be: -Notice that if you want to generate two-ways association, you need to manually added associations both in parent and child entities. In addition, only given words which exist in AssociationNames.txt file (in semantics branch, demos folder) can serve as associations between two entities and be manually added in. You can download this file, and add associations by yourself. For more information about how to add associations into the list, please read Summarizing code part. +Notice that if you want to generate two-ways association, you need to manually added associations both in parent and child entities. In addition, only given words which exist in AssociationNames.txt file (in semantics branch, demos folder) can serve as associations between two entities and be manually added in. After download and paste this file into your current working directory, you could add associations by yourself. For more information about how to add associations into the list, please read Summarizing code part. Anchoring sections ================== @@ -177,6 +177,8 @@ The hash sequences in strcode are produced with the R package [digest](https://g Summarizing code ================ +For basic use +------------- Once code has been structured by adding sections (as above), it can easily be summarized or represented in a compact and abstract form. This is particularly handy when the codebase is large, when a lot of people work on the code or when new people join a project. The function `sum_str` is designed for the purpose of extracting separators and respective comments, in order to provide high level code summaries. It is highly customizable and flexible, with a host of options. Thanks to RStudio's API, you can even create summaries of the file you are working on, simply by typing `sum_str()` in the console. The file presented in the example section below can be summarized as follows: ``` r @@ -207,9 +209,24 @@ sum_str(path_in = "placeholder_code/example.R", - Similarly, we use `lowest_sep = FALSE` to indicate that we want lowest separators (given `granularity`) to be omitted between the titles of the sections. - `header` was set to `TRUE`, so the column names were reported as well. Note that they are slightly off since knitr uses a different tab length. In the R console and more imporantly in the outputed file, they are aliged. +For semantic use +---------------- +For semantic use, some new arguments are needed. +- `rdf` specifies a type of output rdf file. Only "ttl" has been added into function right now. +- `graph` indicates whether to generate a RDF graph or not. The default value is FALSE. +- `domain` indicates whether to use User-defined working domain. If `domain=TRUE`, the value of baseURI, UserID and prefix values are needed +- `baseURI` specifies a working URI, the default value is "http://example.org/base/". +- `UserID` specifies a lower level of working URI, the default value is "UserID". Combine with baseURI the full URI with default value will be "http://example.org/base/UserID". +- `prefix` specifies an abbreviate name of user domain. The default value is "user". The prefix and full URI will become prefix header of output RDF file as follows: ` @prefix cwf: .` +- `UserAL` indicates whether to use User-defined association library, and the default value is FALSE. +- `UserANM` indicates whether to use User-defined association names, and the default value is FALSE. +-   `fillAssociation` indicates whether to use default associations `str:has` and `str:belongTo` to supplement vacancy association. The default value is TRUE. Since the function could only use associations which exist in associations, if set this value to FALSE and no association belongs to some given pairs of parent and child entities, the output file and RDF diagram may be incorrect. If you see `str:has` and `str:belongTo` in your output file or RDF diagram, you need to add that associations in AssociationsLibrary.txt and regenerate your output file. + +You can find an example of how those arguments work in Example of improved legibility part. + Example of improved legibility ------------------------------ - +For basic use: To demonstrate the improvement in legibility, we give an extended example with some placeholder code. ``` r @@ -376,3 +393,71 @@ test2 <- function(x) { ## ............................................................................ } ``` + +For semantic use: +By using input breaks as follows: +``` r +# ________________________________________________________________________ +# YourWorkflow {WorkID provone:Workflow} #### + +## ........................................................................ +## YourProcess {ProcessID provone:Process} #### + +### .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ... +### YourProcess02 {ProcessID02 provone:Process} #### +``` +And `sum_str` function with following arguments: +``` r +sum_str(rdf="ttl") +``` +You can get an out put file like this: +``` + @prefix user: . + @prefix provone: . + + user:WorkID a provone:Workflow ; + rdfs:label "YourWorkflow" ; + str:has user:ProcessID . + + user:ProcessID a provone:Process ; + rdfs:label "YourProcess" ; + str:belongTo user:WorkID ; + provone:hasSubProcess user:ProcessID02 . + + user:ProcessID02 a provone:Process ; + rdfs:label "YourProcess02" ; + provone:wasDerivedFrom user:ProcessID . +``` + + + +``` r + +# ________________________________________________________________________ +# CPP_Workflow {workflow_cpp provone:Workflow skos:altLabel="CPP%20Workflow:%20Workflow%20top%20level"}#### + +## ........................................................................ +## Recipe%20for%20CPP%20Data {gates_recipe prov:Plan skos:altLabel="Recipe%20document:%20Documentation%20on%20Recipe%20for%20CPP%20Data" rdfs:seeAlso= rdfs:seeAlso= cwfo:hasCode="MATLAB:%20TensorExplorationPARAFAC.m,%20YenerTensor.m"}#### + +## ........................................................................ +## Data%20Gathering {data_gathering provone:Program skos:altLabel="Workflow%20Phase%200"}#### + +### .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ... +### Load%20Test%20Dataset {load_test_dataset provone:Program skos:altLabel="ANTHAyenerfinalmine.xlsx" rdfs:comment="Loading%20of%20initial%20matrix%20(output%20of%20YenerTensor.m)"}#### + +#### ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .... +#### Test%20Dataset%20(TENSOR) {test_dataset_data provone:Data rdfs:comment="Test%20Dataset" cwfo:hasCode="MATLAB:%20YenerTensor.m"}#### + +## ........................................................................ +## Data%20Processing {data_processing provone:Program skos:altLabel="Workflow%20Phase%201"}#### + +### .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ... +### Adjust%20APGAR%20Scores {adjust_apgar_scores provone:Program skos:altLabel="Ensure%20APGAR%20scores%20are%20between%200-10" rdfs:comment="MATLAB%20code:%20YenerTensor.m,%20Section%201" dcterms:conformsTo= cwfo:hasInData=test_dataset_data}#### + +#### ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .... +#### Adjusted%20APGAR%20Data {adjusted_apgar_data provone:Data rdfs:comment="Adjusted%20APGAR%20Data"}#### + +### .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ... +### Choose%20Subjects {choose_subjects provone:Program skos:altLabel="Choose%20only%20subjects%20with%20all%20five%20time%20points" rdfs:comment="MATLAB%20code:%20YenerTensor.m,%20Section%201" dcterms:conformsTo= cwfo:hasInData=adjusted_apgar_data cwfo:hasOutData=growth_data}#### + +``` From c4aa893264361567897410f0fa11b1c7232ab083 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 4 Aug 2017 03:18:17 -0500 Subject: [PATCH 236/318] Rename AssociationsLibrary.txt to AssociationLibrary.txt --- demos/{AssociationsLibrary.txt => AssociationLibrary.txt} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename demos/{AssociationsLibrary.txt => AssociationLibrary.txt} (100%) diff --git a/demos/AssociationsLibrary.txt b/demos/AssociationLibrary.txt similarity index 100% rename from demos/AssociationsLibrary.txt rename to demos/AssociationLibrary.txt From c516c6fde20e968293921f2b792743022b7b832c Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 4 Aug 2017 03:19:27 -0500 Subject: [PATCH 237/318] Update sum_str.R --- R/sum_str.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index a7ac9c0..62086bd 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -603,7 +603,7 @@ if (rm_break_anchors) { AssociationsLib=read.table("DefaultAssociationLibrary.txt",sep=",",header=TRUE) } else if (UserAL==TRUE) { - AssociationsLib=read.table("AssociationsLibrary.txt",sep=",",header=TRUE) + AssociationsLib=read.table("AssociationLibrary.txt",sep=",",header=TRUE) } tempPwordlist=which(AssociationsLib$ParentClass==parentclass) tempwordlist=which(AssociationsLib$ChildClass[tempPwordlist]==tempclass) From c22a04c98c9c5ced310b13a59eaa407926f2caf9 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 4 Aug 2017 03:32:17 -0500 Subject: [PATCH 238/318] Add files via upload --- demos/example RDF diagram.png | Bin 0 -> 9590 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 demos/example RDF diagram.png diff --git a/demos/example RDF diagram.png b/demos/example RDF diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..d723f15b924751ef768d7584aa89f5ad7e40bc93 GIT binary patch literal 9590 zcma)ic|4TS_y1tRlwD=t!cd8^6vn<}$)G6NP1&=r*@iJhlBHCJEJ-CLM3(H6B8jnO zvhUf+IyGbY-RZY{KYx5*zu)fd{bU_w|x{%Ut!9^fI-E~ZLAdvTI$M$X<0W!?r$R-E^;R>ex z(T%%_gh3#Z$BgxLu7)|Tj%lRM7)&cqs@`L8HlJ)+_}n2tg(SqXvTW1k@CqQ6a<;X8 zhH*)yGT{YygA%i%DplhgqfcCudGN^SfyIL;;b)WZ)6tKuuQkhh4zHU*AXywJ2-ce! z4$-~<<%Wm~;9!t+Rst0AH33ZzanVE2K`O-X5XjK~Ma{dr{`NZZ$WQij{9lI;$8YNy z*?bELFs@-3d3l6k=%|i3>nYMbEd9vKIeMFHZlk_aIW4;$RoYgcybYat@Rpx8us%Ju zvEDL#|DX#V#WYv6O^#HQyGg??s>JSjzHI5&IQ1z0RF3xehs%@2y4FSvpKUK9VjDaQ zS}Zjb{vk~t%qEMW+@h~S=;Jh-4s2MauY~W9dK=eZR50Fy=08MGO{)6`K2dwG_kLrD z%S9&$(9M@2^fOIS$j0NblXI(HmD43GQkZ4GkdW$GlG8oXUMOWhE$kz+)Wks;MGCVT z&(+O3YuE`brT!`4{W_69-lWv|QlVU5Q92042EX`sIWh3pi+W!(PL!y*E!;n@tf(gQ z6h}i8^2g8%do$cOmLOb*me#&i33Y3GtE_j~?Kp7Zg)4oHr)FRHxn|VnMr(_qiYfNA zmhWj3W`!U3O&VoaM4r6GZnUQrt-r}{*4np!cR06wolms%NJhba-}-C&sO_z;a622M zqSjdC-Sw@`5voV?7Wr1fAVWV4-qQ6(uA!+xj{efbq#gUhe5`twYf_wPr9IoM)?rVS z--|P1)=HABa8r(AoWY-_jxW(6(tp>A{E(gV{+p)U>e*{$Tk_WwxQ{yp{S8uczMAmB zJVc1)9g`a;3OjP1A!Oa#_ACJOwv(h+Zv-@Borb+Hvl-;+x#`I=; zb%Bwb5)oS8lH3BPEynzU_Q!@Ef9i=qpCmx>lUs{byzwLcoW)w*M(!3%q;`f#LDU<% z#=X1_4+P)e=U&9<9YYOcM7UGTfMxgdfsq(*cNOF}G*?%&y+@fU?3CVeYzLGZjhjMq zxe3&bJSS;M7CmqOX&l?>-O#y=SJPtT7zc(1t6^M*5C`)6U&eNWksEArPJ?JwHm81r7OQX{C8Z@XS)_S_J4IR)ro9 z69gKy?(Ew^#B(_<6aW?k@{X>5ObB$MJ2EJahp=b#W24urn5F;Ox;x6a@v_uVJJuCs z^irT;ZDtdk?#L6cE4}T&lsnE0Lyy;{q3KI*9*f(`CQ0YCsN-PeweMKIc{#aD__Q;mFi0xMr+E2lUWH26tJqm183I(*t19 zG!#k*s38d6bs<;m_YKWE+^Gf#Is+je^!M{%EWtZy`fcPA8o#A+OjeJ4 znarf_ACq3mLemHH{;sxU8b7;hgrKu!tgAeChkIQh@)RC&BF>I9xYSB*cVvcRb$nV* zwkDAuzT-wsPO`YPR@*9%TUMhGu?&h>hnhM6>3!E^D7T7q+@MdjqxradwE-eFZsX~; zQsnEi>#BCA@GY^tIlqQX8p98V=m}7^PtTMl@|H>)c!>0>z$Ao4pFCnG6aoMG7)`I{ z4zX<$Uhb{bNriI%lxH9Y?%HO~VZzP6CIQg3+-5v)d0)0) z$caMFu<)kc9zc>yHkffR??)3i^XI?rtbKI$0aAMG)Zf$t;V?#`k)_6vC1lkw~*i`ORFW_Y@4E@r$z%V8-l5(ZC~ z&y6~0Fw7i)kvUMJmPqpIZ$}3Usqd0_?S$Z^k?H-VB1gO)BKH0xp^x2BPaFL92aZ_+ z8cgUDvw@5#7gzwSWhGe=1`_i;$Z3zQX`xi@=3+wrJSfq zAqdlwo|m=Jibq-B`nFU#BQAaPibmtKKwhg?Lu9g{cC`j|xQ zIy+CX7dqT=uB?3|mv1KbBcM5N+%clG{@l8`pHnu*>RFdiBAT9iQ8epqRA^H}qa5P~ zdy$IP!16ajV|{e?30y}zdsoQC_IHC03F&fvB37($NuPCIC^ufa{i{X-&R8-Yn`vJ3 zxSi}d%$MO7E{a#j?cN4iG-_1zmFr-A;*cbQIx6BsIy7>rcuSaFUR+%rPb=^(5?aeg z(<}Gz?Jn%E=_sMAMwZifyW;{j9qza#Ozs639C|IszK@x({Ua?NVLBfvFotm&ZyJ32 zH0xgGO@9qPIig5uy-XKIvXXzyOZHN5(*c!_9eyK!t6iRfG-_9~LzI*2Uw*IQTgYZK zrXYyAx7D_zzJV$G(0&aVif(PQnTU(tPDDa7l($&BN2 ze)+@5*RAa_g~%kO9jl3%mh(LG%_SpS``1YkRl+doqd-+xxx7_V@!}?J<0@Pq(&p?8~R??AF)5wpWrhD6?jHqrF;$isdrD)_hqO9Rm zmBSW1_OSc-qc@X1Y~Q;e!;a<(YCS4MgwniMspP>qt=DlKiTyDVdG8|Zg4mr&IpbcZ zZIm6;oZD9!vB^Q#sO@EZ+47!GOe)9ggKZG1M+s2Ig+HYW0@&<{(L_cfLi%=S68ZEO z2B(dnpNC6L&T)3(-#t#Euc|X!&C3z5$Q2!K&MFw`$GHa`+?q^dTzikUV9MG0$W->R z$X9Og3(0cKurXq#wlPFKbo3Hu#Pm9T+kV7h-C-h7Phd=n0F7Aq?c1YfJrHMFRq7Xc z{&mWVC9Lvzes}X+X6dTh1^hMYD~6eJ#0ZCGb#W%OR0{d)3wF$?R89DW8qsE}?!xE$ z4na<1jwJ$b+hb>T$Mhmbn@FE2rSCr0bl2HU)HluDt*+C;!6br%m2WX7hh2Ea-_q(g z(->#0Xl=mYeExD#Gl9(Ja(!1w=zBJ1X6yL8hr6dm*Wda|m9gbwhPH6*nhei;bh4w} zpoxl=6QYT!Z}e868N9BvlIbI+6_$v3JdUac<=c zduP)_%a1YGJ5ZR4gY&KbW{0J-CG3J6VaXO*_VUVn%M(&otft6$C;igj;XiwefyI#x znWUTke$mmGWTMlfCHs!Q8GRZtJ-55YLPEycmZy6VSJN=sR%42ox*Tjh+pSo~vQrD5y@>^dH_xiS-4Su9pLdGf`Eg_a@YEZVKga4e zoEC(XDCRR6T7o>8$y(a&=fHS6hQvWZa+b!SP2|S$At;|79m>srKrsA{PqY#O~g)YqwO#bGKfRxa4Z6 zxx|sdfJXeNyV#1QBXN{mVB=f1I9MkWvsRo)*vaBVh2_u^UQH$%o!I z5@P$-=k2w-+OAh;kDqR<{2c7#@iXRdzIm0B z+%0?St50ECX4#K`;^CtDQttnXE8;4<-ty3^4#Er1{ISqM?=u5LLyEmV_0hC@;~&+P zn2?F>sExqz?**|JE`;6>l=ltteCq9Jr$O~mqeM{1%@fL6Oa%_-$qJ#}!FH}Mnkd_X zGqw&^Bki~jYlq!Iy&E1F18By%*TR2(>D&{J>aRNAUsd(al%&vwR!PcFvKlj(nXjvC z47Xw;7b_7Lmy5Q%jTeWT7XMDq-I@p%U6Y^V&E4f%w0Gx39sE$t;1}^)$yuznsFFpl z_k=((?F;tK96wy6FvahE-j4?zPZ)I9Mhx8}B=nXDL@i`6DTj|azVeDxTU|g72a)rF zCiBi1yN})WyTZJn(N{WYU)jsk6%knxVD7RC1J-ha=vOMASZ^ z)OMYJK?-{BSMcU-=fT^Mfct%q>%2>ggYu?T$~H81e#~9gU>P)bgl4>3z`QO@7^rOY zweG;;m72_)&qT9PoyNeEsli@Yadnb%U#QUjzFNYEUgffPj7x_+uRM|yC{Nhhj9W$2 z-0R*cSU6!KQUl(})(c&kwsmORNe^~xTps%H9=*9~QIq-R1%sVs9Wm5HU{Uk^=J~}+ zJN{v1O{ZQnO#|YM5#Kt}fM))+kuxLu^1rJ`sHweUhjUfD_n+oFC1Z$X=PprKNSM}% znC5k@+cSG6m!n202YN9BzU&xXTOQYs9zo;=c4JIPHT!_;=z*V2J|Ds5Y&O#yzn+r8 z9Unh_%B1GwS694)>n=nUz0foWm(!R}Njp!=lww<++}o2#TTJ`wUE{$oAz9;I-rja4 zWWhTHJKlpARTd+E@hbg!zzZre)z25BrsE^G7l(TY_GY9uhVaVLcQr_kcrRGJJ8w$ij2T`bL-v;Q>R$qOH61#matT%BEa$uEhgvkJy4!<&0%E>29p0^7m*gxnTf7A z^2*B&$zA)x0h~WKCGq8aNG{%27*t^sO@JXed5cnLhy*@eBbRB^z%I)GGiQtt^Fp%K z=I$!wB0JO2y4AtFh}=-c6w0^%C8Sl;gk-etli=h2B0dYDOK0S8u%TY#7KINlM~dG@ zF~eOh&Oh8gFor=dT!dj3uqS*7APIaG6UpcV?tVs8@y? znpOj#+$UddeA-}^k}*cykmo-qNa7rB)?AYZ*9!>ru3F{fCT*u0@Z7EUe68(G#NZBm zF*w-mUZYse$W?*u@MUfk-jv};+at_pVJZwWQ3vIA>sN`jTX|R3Lw;w1xN(w|8~=Po zad*IPfq^8BMpRu55#o)N^wFp7*3GvQmpM>) zeLd)ttGlP|Rfll?S#kBJ2f!W^afU#toRti;t{f}NPh3UWx0lU*ezJOqDO}qTZ&O*i zi-+M_g!p6pC(Ex9*P6HU$=s-gp4ZrSXQ}VqcU&nwR2V$i<7$he`q^g-hU>s$A0Dd_ z5j^oqt`TIci8KA~o0SRSAMJ}K0KD9rjuj8Ps@+@EEd_+TSaBP*XA73|+^8Nbww23l zQyedtlfWS8FvMQk%d_M(&xv9)Yo&XAPU!M>*%mXL=~XYpp35xH1fhyxWqjr|q$S&H zxa3~MjbgjxOjo-$j(uL1YlcvjPB}6eN`@ZaUsb|&(0NKgw!SZF?R@M97G6Ane80Y1 zU`gryJzPu`dW;T4@E>VW@Le_66NTLgz;zHjjzc>6jtShbv*ne-3*Kd)R$yduwC$W~%&zSy5k47Kn@#>nRLjHfFtE z?1ju+UG0kzGSG(MUzZULsOLQ+MkVNmj({T8$epNJ`-HbM2$NgTa(a%5FAWf z`2W;`cl8lNss&I{b`!>jA68E1FvHcP@Q_&@#K#nLMGy|wvh|MdlJ1a+3MVQQB~2IB zWElVO@-BxNG((6R1<5-be@98X=i`DE!XL(&+Td7*eA#dNs^rp3A3P@x;yM7cV=;G@qArP z=PH;KHHk+MrGF*kxL=(kB)2a%d}fqExw)}=r+b?ti)5|rp5I;{?OCS()r?`>CQm4% z$5_@yw2rsK3f{4a&HuiVP!{y;7@b>^|0(=RI+~uNnDHmMs79_Uu$V=rm*pG3EYA4K z0i__vVWHHna8v}fWRq{!BfY#a*I)dmEiJ!phtDnP??y z|5;rg6MY~2Q4N1p(NyDxtOHN6rZ6|k2qp>9$W9A>!-t(#K0HYC&xTkwl%82#(N>+Y zC_6^I{ba;Baov7EB*2~(9%V!%+2m*On8T=>FkPSDw8)rpA!nd-^}b0+j(=+4h~JO<2Irl* z{;T@DQ^oc!pC9#bW>gO`#907E>nmO+cR$%?{k+&B%>K=Jgg*oUn<_lLv0|v^+$U3` zBhGf_Vv^H!UlGctx713GNl0_odB>;$g%1a|7zxcLS#mEPT_Fy#3O_aRXE{xg;?6uB zi@Ag-W+Fe3tJ{TUPzv)T@C{{JOQ+qhyjgW7y!d(H&;COW-EUk>51Mv<)QvPbTMRll z<#tQrSK=?z`*(dc;W_FN;x5R3qw%zl9Gi{98#_v#b6TR4=V`{$EKNQq>e zF?H@o(4U3whe}S5Qks9;3eL|jshz$tAwrxIgCL?y$IO!ucga%EqzB91(dBPPvKEuSPe|KUH7G;^S| z8e7V0)-A3H_{EUdsAsf4j37n2P}UQ7m(Q_D^6c7)2Ekh7CsJoZCw^0 zbDhiG*}GpjRo)(0E+_nI2fA--$6eFI~rD;6QuyQGJgr2@h{M7OVvko;DIZ>%y2%i zbE)tXB%FbVhT?b^P>7!NfM%dTOavdGAD$)vG8ak#RFnPnamKG`WFtgJIv`(x!TGoV z`3ylqk4BcnyMUVU&lG78agANUDs)qI?nASy_L z1XuzPLn*wAJ|HhZGw##e&P6|j6+j`-3|e;-gE(~IW!Uf---IVFi0>!CGZgKO!THcQ2uYkQ^1rY zVb&N}u9d*6gK9G*6Ph6fwwK9==uIfFvCWOjqqz}{>)-~C_Lw8WK{Xpf0j9wufI9vx zA)X7u3&*SD0l5{L!33g>#-lgUU_=&flrV@k_6Dwl0Yn>Nh6oo0NHi;z6>d+hl+8jU|yfg}fz+smG4B|3*0T=_G_zMtb>1b*x=uPm9 zgNzy=!XZH2R~%mgo?O@w82l`7Wik}k@r|Yil1zaHO92>IqrqI4AZUJq%SFIO0T!5A ztS2<%1W0HEcp9Dp+Mu~%MT=1|uHzCgf;U6h&|(DE{8<4)wjvqA!>^Wxm zZQvRW76Lh7{RADzM1v*qqdGL>F!*hnaT@^B*#8B82U|zWCNv|9b~z8NkO4y4$>O z84JgCpg>e)%n@1t#(=>U!BPY52Ny%Ln}O>kvUOtkXL92Tn7}4Tw;RA zqQxcz2B#%_xh%njHkpHxcoc2qI%o!rM$SYBiWh*(Quxt-L&4z6H1{#MjuaX^Q4rTb zYumft1v8!&0MYYyFnyd&AiM(li#y0%j>lxeQ@86>PdK6(4?Bzc zP2?fX4HzG*oX2s&6BNlubW>#_-w4etlJk(>n$k0_Dp^98x(kX}`1Ph{qnh*Il8%BU zJhqvCF>3EJ%cp-`j5!NF>*surUS1QKQBo9J{cdDK8GJlPa*`#Pp6(5x#&yj1dkN}i zx6n4c+POI6KOS@7(AEu~3*@?b(&|VCB4eYKeC4jkpk$?Z%>M7r#WIiZz>gX)iaT}*-9;s1hn{0ocrNS{L z$gXoP+Tu0iawho;c9iT&ihyV`J#o`!i(Bov-@2^&;IHZ zS6*;1yV|@X73ZZMmd3iWSgk97x@Uozs>r0gX|Lk@4u@5day%2`PTkKxO!WS>hkn>;Dr0~UKR6@R^2cwj}tJ;Nu?e{N_x4g?^=sI6>n3EBn!zuRBhSWQ!fjmZ9=a zyVcHSW)1t>XeTB}-r{M3M3njS`g0NcUt6NzzYEAa51Tk*+;lzged+10_VZ(Dx0gsx zPvuV&ZJ1JEB6IfjWP_b6KbPmHn?vpvXKLk+-#e8F4jM!ld}=1iGZIyv}Q; z!(Z0dZQ`HTmDNJjlT(S@%*Mq9jT-sA7W-9M7?mOSo3k5WtS6YzkbovdJR zF{2MJ$!eT8u)dcR5bcM3b8|a-=gVu#e7>PoPUBkFbNSLE9H_nB7x^gHRd2j{DZ9aP zsZlnn;o+#C{XH)^J*!4RH>srz!^vfFfWd Date: Fri, 4 Aug 2017 03:49:12 -0500 Subject: [PATCH 239/318] Add files via upload --- demos/new RDF diagram.png | Bin 0 -> 53533 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 demos/new RDF diagram.png diff --git a/demos/new RDF diagram.png b/demos/new RDF diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..e36b01f232e9e7a7473d6d2ee477fae7041f2e7b GIT binary patch literal 53533 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 FO#qE<9LE3v literal 0 HcmV?d00001 From 8d25c1b89cc51d7b773fda2d804bfbf080b5e505 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 4 Aug 2017 04:02:07 -0500 Subject: [PATCH 240/318] Add files via upload --- demos/final example.png | Bin 0 -> 22678 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 demos/final example.png diff --git a/demos/final example.png b/demos/final example.png new file mode 100644 index 0000000000000000000000000000000000000000..e7b7987c0c23463d9a74d4122d00c16c04958e4f GIT binary patch literal 22678 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 Date: Fri, 4 Aug 2017 04:03:10 -0500 Subject: [PATCH 241/318] Update README.md --- README.md | 121 ++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 112 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index d0cc05d..9635a30 100644 --- a/README.md +++ b/README.md @@ -115,7 +115,7 @@ You can notice from the above that ``` - Since the function uses levels to generat associations between entities, for semantics use, the child entity must be under its parent entity. --   Notice that only given classes exist in AssociationsLibrary.txt file (in semantics branch, demos folder) can serve as associations and automatically generated by the function. After download and paste it into your current working directory (use getwd() to show your working directory in R), you could added new associations into this library by yourself. This file have five columns: "ParentClass" , "ChildClass", "Ways", "Property", and "ReverseProperty". You need to follow this structure and add five values (seperate by comma ",") for your user-defined associations. The first value in ParentClass column is the class of parent entity; the second value in ChildClass is the calss of child entity; the third value in Ways column can be only 1 or 2 which indicate this association is one-way or two-ways; the fourth value in Property column represent the property of the association from parent entity to child entity, which also will be shown in RDF diagram; the last value in ReverseProperty column represent the property in reverse way, which is from child entity to parent entity, and this value could be " " in onw-way associations. +-   Notice that only given classes exist in AssociationLibrary.txt file (in semantics branch, demos folder) can serve as associations and automatically generated by the function. After download and paste it into your current working directory (use getwd() to show your working directory in R), you could added new associations into this library by yourself. This file have five columns: "ParentClass" , "ChildClass", "Ways", "Property", and "ReverseProperty". You need to follow this structure and add five values (seperate by comma ",") for your user-defined associations. The first value in ParentClass column is the class of parent entity; the second value in ChildClass is the calss of child entity; the third value in Ways column can be only 1 or 2 which indicate this association is one-way or two-ways; the fourth value in Property column represent the property of the association from parent entity to child entity, which also will be shown in RDF diagram; the last value in ReverseProperty column represent the property in reverse way, which is from child entity to parent entity, and this value could be " " in onw-way associations. - If a parent entity has multiple child entities, put these child entities under the parent entity level, and the function will generat correct relationship automatically. For example, if your inputs are as follows: @@ -218,15 +218,16 @@ For semantic use, some new arguments are needed. - `baseURI` specifies a working URI, the default value is "http://example.org/base/". - `UserID` specifies a lower level of working URI, the default value is "UserID". Combine with baseURI the full URI with default value will be "http://example.org/base/UserID". - `prefix` specifies an abbreviate name of user domain. The default value is "user". The prefix and full URI will become prefix header of output RDF file as follows: ` @prefix cwf: .` -- `UserAL` indicates whether to use User-defined association library, and the default value is FALSE. -- `UserANM` indicates whether to use User-defined association names, and the default value is FALSE. --   `fillAssociation` indicates whether to use default associations `str:has` and `str:belongTo` to supplement vacancy association. The default value is TRUE. Since the function could only use associations which exist in associations, if set this value to FALSE and no association belongs to some given pairs of parent and child entities, the output file and RDF diagram may be incorrect. If you see `str:has` and `str:belongTo` in your output file or RDF diagram, you need to add that associations in AssociationsLibrary.txt and regenerate your output file. +- `UserAL` indicates whether to use User-defined association library, and the default value is FALSE. With default value FALSE, the function will generate a .txt file in your current working directory named DefaultAssociationLibrary.txt. You can rename it as AssociationLibrary.txt to let it serve as your user-defined association library, and add new relations in it. +- `UserANM` indicates whether to use User-defined association names, and the default value is FALSE. With default value FALSE, the function will generate a .txt file in your current working directory named DefaultAssociationNames.txt. You can rename it as AssociationNames.txt to let it serve as your user-defined association names list, and add new associations in it. +-   `fillAssociation` indicates whether to use default associations `str:has` and `str:belongTo` to supplement vacancy association. The default value is TRUE. Since the function could only use associations which exist in associations, if set this value to FALSE and no association belongs to some given pairs of parent and child entities, the output file and RDF diagram may be incorrect. If you see `str:has` and `str:belongTo` in your output file or RDF diagram, you need to add that associations in AssociationLibrary.txt and regenerate your output file. You can find an example of how those arguments work in Example of improved legibility part. Example of improved legibility ------------------------------- -For basic use: +============================== +For basic use +------------- To demonstrate the improvement in legibility, we give an extended example with some placeholder code. ``` r @@ -394,7 +395,8 @@ test2 <- function(x) { } ``` -For semantic use: +For semantic use +---------------- By using input breaks as follows: ``` r # ________________________________________________________________________ @@ -428,11 +430,62 @@ You can get an out put file like this: rdfs:label "YourProcess02" ; provone:wasDerivedFrom user:ProcessID . ``` +Notice that `str:has` and `str:belongTo` are in this output file, which means no such association between a `provone:Workflow` and `provone:Process` exist in default associations library. You can rename the auto-created file DefaultAssociationLibrary.txt in your working directory and add a new line `"provone:Workflow","provone:Process",1,"provone:hasSubProcess"," "` in it. After that, save your file and if you run the function again with a new argument `UserAL=TRUE`, the output file will as follows: +``` + @prefix user: . + @prefix provone: . + + user:WorkID a provone:Workflow ; + rdfs:label "YourWorkflow" ; + provone:hasSubProcess user:ProcessID . + + user:ProcessID a provone:Process ; + rdfs:label "YourProcess" ; + provone:hasSubProcess user:ProcessID02 . + + user:ProcessID02 a provone:Process ; + rdfs:label "YourProcess02" ; + provone:wasDerivedFrom user:ProcessID . +``` +You may found that default associations are disappear in this output file. +You can add another argument `graph=TRUE` into your function. With `sum_str(rdf="ttl", UserAL=TRUE, graph=TRUE)`, you can generate a RDF diagram as follows: + -``` r +If you want to add new associations into existing file, you need to check whether it exists in user-defined AssociationNames.txt file. For example, now we want to let `YourProcess02` be a sub-process of `YourWorkflow`. First, you need to check whether `provone:hasSubProcess` is in AssociationNames.txt. You can rename the DefaultAssociationNames.txt file which automatically generated in your current working directory as AssociationNames.txt. We could find this association in this file apparently. Then, you can add a new argument `UserANM=TRUE` into `sum_str` function, and use manually input bar in UI to type in `provone:hasSubProcess=ProcessID02` and regenerate YourWorkflow entity like this: +```r +# ________________________________________________________________________ +# YourWorkflow {WorkID provone:Workflow provone:hasSubProcess=ProcessID02}#### +``` +Notice that using ID as value here, but not title name. +With `sum_str(rdf="ttl", UserAL=TRUE, graph=TRUE, UserANM=TRUE)`, you can generate a new output file with `provone:hasSubProcess user:ProcessID02`, and a new RDF diagram as follows: + + +If you want to define your domain, you need to add more arguments. For example, with `sum_str(rdf="ttl", UserAL=TRUE, graph=TRUE, UserANM=TRUE,prefix="test",baseURI = "http://testwebsite/",UserID ="testUser")`, you can generate a new output file as follows: +``` + @prefix test: . + @prefix provone: . + + test:WorkID a provone:Workflow ; + rdfs:label "YourWorkflow" ; + provone:hasSubProcess test:ProcessID02 ; + provone:hasSubProcess test:ProcessID . + + test:ProcessID a provone:Process ; + rdfs:label "YourProcess" ; + provone:hasSubProcess test:ProcessID02 . + + test:ProcessID02 a provone:Process ; + rdfs:label "YourProcess02" ; + provone:wasDerivedFrom test:ProcessID . +``` +Notice that all prefixes are set to test, and your user-defined domain appears in the first line. + +Now we could use a part of a real example to generate a sample output file. Notice that all `%20` below means space which automatically generated by the function if you type spaces in your title or manually input bar. They will return as spaces in output file and RDF diagram. +You can try to use these code as your input breaks: +``` r # ________________________________________________________________________ # CPP_Workflow {workflow_cpp provone:Workflow skos:altLabel="CPP%20Workflow:%20Workflow%20top%20level"}#### @@ -459,5 +512,55 @@ You can get an out put file like this: ### .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ... ### Choose%20Subjects {choose_subjects provone:Program skos:altLabel="Choose%20only%20subjects%20with%20all%20five%20time%20points" rdfs:comment="MATLAB%20code:%20YenerTensor.m,%20Section%201" dcterms:conformsTo= cwfo:hasInData=adjusted_apgar_data cwfo:hasOutData=growth_data}#### - ``` +Then download AssociationNames.txt and AssociationLibrary.txt in demos forder, and paste them into your current working directory. With `sum_str(rdf="ttl",graph=TRUE,UserAL=FALSE,UserANM=FALSE,prefix="cwf",baseURI = "http://cwf.tw.rpi.edu/",UserID ="data#" )`, you could negerate a output file as follows: +``` +@prefix test: . + @prefix provone: . + @prefix skos: . + @prefix prov: . + @prefix rdfs: . + @prefix cwfo: . + @prefix dcterms: . + + test:workflow_cpp a provone:Workflow ; + skos:altLabel "CPP Workflow: Workflow top level" ; + rdfs:label "CPP_Workflow" ; + prov:hadPlan test:gates_recipe ; + provone:hasSubProgram test:data_gathering ; + provone:hasSubProgram test:data_processing . + + test:gates_recipe a prov:Plan ; + skos:altLabel "Recipe document: Documentation on Recipe for CPP Data" ; + rdfs:seeAlso ; + rdfs:seeAlso ; + cwfo:hasCode "MATLAB: TensorExplorationPARAFAC.m, YenerTensor.m" ; + rdfs:label "Recipe for CPP Data" ; + + test:data_gathering a provone:Program ; + skos:altLabel "Workflow Phase 0" ; + rdfs:label "Data Gathering" ; + provone:hasSubProgram test:load_test_dataset . + + test:load_test_dataset a provone:Program ; + skos:altLabel "ANTHAyenerfinalmine.xlsx" ; + rdfs:comment "Loading of initial matrix (output of YenerTensor.m)" ; + rdfs:label "Load Test Dataset" ; + cwfo:hasOutData test:test_dataset_data . + + test:test_dataset_data a provone:Data ; + rdfs:comment "Test Dataset" ; + cwfo:hasCode "MATLAB: YenerTensor.m" ; + rdfs:label "Test Dataset (TENSOR)" ; + + test:data_processing a provone:Program ; + skos:altLabel "Workflow Phase 1" ; + rdfs:label "Data Processing" ; + provone:hasSubProgram test:adjust_apgar_scores ; + provone:hasSubProgram test:choose_subjects . +``` + +And a RDF diagram like this: + + + From 0efde88dacc6dc43827ea0aa2baebd23021f722b Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 4 Aug 2017 04:04:24 -0500 Subject: [PATCH 242/318] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9635a30..34e3b9e 100644 --- a/README.md +++ b/README.md @@ -447,7 +447,7 @@ Notice that `str:has` and `str:belongTo` are in this output file, which means no rdfs:label "YourProcess02" ; provone:wasDerivedFrom user:ProcessID . ``` -You may found that default associations are disappear in this output file. +You may find that default associations are disappear in this output file. You can add another argument `graph=TRUE` into your function. With `sum_str(rdf="ttl", UserAL=TRUE, graph=TRUE)`, you can generate a RDF diagram as follows: From db875ccdfdad1505a1aac85a8bbbf837afffa23f Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 4 Aug 2017 04:05:11 -0500 Subject: [PATCH 243/318] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 34e3b9e..366fb53 100644 --- a/README.md +++ b/README.md @@ -515,7 +515,7 @@ You can try to use these code as your input breaks: ``` Then download AssociationNames.txt and AssociationLibrary.txt in demos forder, and paste them into your current working directory. With `sum_str(rdf="ttl",graph=TRUE,UserAL=FALSE,UserANM=FALSE,prefix="cwf",baseURI = "http://cwf.tw.rpi.edu/",UserID ="data#" )`, you could negerate a output file as follows: ``` -@prefix test: . + @prefix test: . @prefix provone: . @prefix skos: . @prefix prov: . From 2cacd656f98e0147545d7277710082b0db7ebbcf Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 4 Aug 2017 04:45:19 -0500 Subject: [PATCH 244/318] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 366fb53..d541005 100644 --- a/README.md +++ b/README.md @@ -215,8 +215,8 @@ For semantic use, some new arguments are needed. - `rdf` specifies a type of output rdf file. Only "ttl" has been added into function right now. - `graph` indicates whether to generate a RDF graph or not. The default value is FALSE. - `domain` indicates whether to use User-defined working domain. If `domain=TRUE`, the value of baseURI, UserID and prefix values are needed -- `baseURI` specifies a working URI, the default value is "http://example.org/base/". -- `UserID` specifies a lower level of working URI, the default value is "UserID". Combine with baseURI the full URI with default value will be "http://example.org/base/UserID". +- `baseURI` specifies a working URI, the default value is `"http://example.org/base/"`. +- `UserID` specifies a lower level of working URI, the default value is "UserID". Combine with baseURI the full URI with default value will be `"http://example.org/base/UserID"`. - `prefix` specifies an abbreviate name of user domain. The default value is "user". The prefix and full URI will become prefix header of output RDF file as follows: ` @prefix cwf: .` - `UserAL` indicates whether to use User-defined association library, and the default value is FALSE. With default value FALSE, the function will generate a .txt file in your current working directory named DefaultAssociationLibrary.txt. You can rename it as AssociationLibrary.txt to let it serve as your user-defined association library, and add new relations in it. - `UserANM` indicates whether to use User-defined association names, and the default value is FALSE. With default value FALSE, the function will generate a .txt file in your current working directory named DefaultAssociationNames.txt. You can rename it as AssociationNames.txt to let it serve as your user-defined association names list, and add new associations in it. From f6f7da7d9e37b2888423ec353894dd2aed46332b Mon Sep 17 00:00:00 2001 From: "John S. Erickson, Ph.D" Date: Fri, 4 Aug 2017 08:52:47 -0400 Subject: [PATCH 245/318] Added comments I'm not sure this is the "real" readme... --- README.Rmd | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.Rmd b/README.Rmd index fbd2055..76ef71b 100644 --- a/README.Rmd +++ b/README.Rmd @@ -16,8 +16,18 @@ library(strcode) [![CRAN_Status_Badge](http://www.r-pkg.org/badges/version/strcode)](https://cran.r-project.org/package=strcode) [![packageversion](https://img.shields.io/badge/Package%20version-0.2.0-orange.svg?style=flat-square)](commits/master) +# Table of Contents +1. Add... +2. Table... + + Of... + + Contents... +3. Here... +# Introduction + +*Be sure to introduce basic **and** semantic functionality* + The `strcode` (short for structuring code) package contains tools to organize and abstract your code better. It consists of From 291010826cb2bd12bd968966a9b90159411bf53d Mon Sep 17 00:00:00 2001 From: "John S. Erickson, Ph.D" Date: Fri, 4 Aug 2017 08:58:01 -0400 Subject: [PATCH 246/318] Added comments Added comments, changed markdown for section headers --- README.md | 55 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 28 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index d541005..f5634ec 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,17 @@ README [![Build Status](https://travis-ci.org/lorenzwalthert/strcode.svg?branch=master)](https://travis-ci.org/lorenzwalthert/strcode) [![Project Status: WIP ? Initial development is in progress, but there has not yet been a stable, usable release suitable for the public.](http://www.repostatus.org/badges/latest/wip.svg)](http://www.repostatus.org/#wip) [![CRAN\_Status\_Badge](http://www.r-pkg.org/badges/version/strcode)](https://cran.r-project.org/package=strcode) [![packageversion](https://img.shields.io/badge/Package%20version-0.2.0-orange.svg?style=flat-square)](commits/master) +# Table of Contents +1. Add... +2. Table... + + Of... + + Contents... +3. Here... + +# Introduction + +*Include discussion of semantic functionality!* + The `strcode` (short for structuring code) package contains tools to organize and abstract your code better. It consists of - An [RStudio Add-in](https://rstudio.github.io/rstudioaddins/) that lets you quickly add code block separators and titles (possibly with unique identifiers) to divide your work into sections. The titles are recognized as sections by RStudio, which enhances the coding experience further. @@ -13,8 +24,7 @@ The `strcode` (short for structuring code) package contains tools to organize an a guide for good practice in R programming. --> -Installation -============ +# Installation You can install the package from GitHub. @@ -23,11 +33,9 @@ You can install the package from GitHub. devtools::install_github("XiaoliangJiang/strcode",ref="semantics") ``` -Structuring code -================ +# Structuring code -For basic use -------------- +## For basic use We suggest three levels of granularity for code structuring, whereas higher-level blocks can contain lower-level blocks. -   level 1 sections, which are high-level blocks that can be separated as follows: @@ -63,8 +71,8 @@ The separators all have length 80. The value is looked up in the global option ` By default, breaks and titles are inserted via a Shiny Gadget, but this default can be overridden by setting the option `strcode$insert_with_shiny` to `FALSE` and hence only inserting the break. -For semantic use ----------------- +## For semantic use + Firstly, click check box `Add semantics` to show more options for semantic use. We suggest seven levels of granularity for code structuring, whereas higher-level blocks can contain lower-level blocks. -   level 1 sections, which are highest-level blocks that usually represents user's workflow domain and can be separated as follows: @@ -152,8 +160,7 @@ The RDF diagram of this one will be: Notice that if you want to generate two-ways association, you need to manually added associations both in parent and child entities. In addition, only given words which exist in AssociationNames.txt file (in semantics branch, demos folder) can serve as associations between two entities and be manually added in. After download and paste this file into your current working directory, you could add associations by yourself. For more information about how to add associations into the list, please read Summarizing code part. -Anchoring sections -================== +## Anchoring sections Sometimes it is required to refer to a code section, which can be done by title. A better way, however, is to use a unique hash sequence - let us call it a code anchor - to create an arguably unique reference to that section. A code anchor in `strcode` is enclosed by `#<` and `>#` so all anchors can be found using regular expressions. You can add section breaks that include a hash. That might look like this: @@ -162,8 +169,7 @@ Sometimes it is required to refer to a code section, which can be done by title. ## An anchored section #### ``` -Insert a code anchor -==================== +## Insert a code anchor Code anchors might prove helpful in other situations where one want to anchor a single line. That is also possible with `strcode`. An example of a code anchor is the following: @@ -174,11 +180,9 @@ this_is_a_super_important_but_hard_to_describe_line_so_let_me_anchor_it The hash sequences in strcode are produced with the R package [digest](https://github.com/eddelbuettel/digest). -Summarizing code -================ +# Summarizing code -For basic use -------------- +## For basic use Once code has been structured by adding sections (as above), it can easily be summarized or represented in a compact and abstract form. This is particularly handy when the codebase is large, when a lot of people work on the code or when new people join a project. The function `sum_str` is designed for the purpose of extracting separators and respective comments, in order to provide high level code summaries. It is highly customizable and flexible, with a host of options. Thanks to RStudio's API, you can even create summaries of the file you are working on, simply by typing `sum_str()` in the console. The file presented in the example section below can be summarized as follows: ``` r @@ -209,8 +213,7 @@ sum_str(path_in = "placeholder_code/example.R", - Similarly, we use `lowest_sep = FALSE` to indicate that we want lowest separators (given `granularity`) to be omitted between the titles of the sections. - `header` was set to `TRUE`, so the column names were reported as well. Note that they are slightly off since knitr uses a different tab length. In the R console and more imporantly in the outputed file, they are aliged. -For semantic use ----------------- +## For semantic use For semantic use, some new arguments are needed. - `rdf` specifies a type of output rdf file. Only "ttl" has been added into function right now. - `graph` indicates whether to generate a RDF graph or not. The default value is FALSE. @@ -224,10 +227,9 @@ For semantic use, some new arguments are needed. You can find an example of how those arguments work in Example of improved legibility part. -Example of improved legibility -============================== -For basic use -------------- +# Example of improved legibility +## For basic use + To demonstrate the improvement in legibility, we give an extended example with some placeholder code. ``` r @@ -395,8 +397,7 @@ test2 <- function(x) { } ``` -For semantic use ----------------- +## For semantic use By using input breaks as follows: ``` r # ________________________________________________________________________ @@ -447,7 +448,7 @@ Notice that `str:has` and `str:belongTo` are in this output file, which means no rdfs:label "YourProcess02" ; provone:wasDerivedFrom user:ProcessID . ``` -You may find that default associations are disappear in this output file. +You may find that default associations are missing in this output file. You can add another argument `graph=TRUE` into your function. With `sum_str(rdf="ttl", UserAL=TRUE, graph=TRUE)`, you can generate a RDF diagram as follows: @@ -513,7 +514,7 @@ You can try to use these code as your input breaks: ### .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ... ### Choose%20Subjects {choose_subjects provone:Program skos:altLabel="Choose%20only%20subjects%20with%20all%20five%20time%20points" rdfs:comment="MATLAB%20code:%20YenerTensor.m,%20Section%201" dcterms:conformsTo= cwfo:hasInData=adjusted_apgar_data cwfo:hasOutData=growth_data}#### ``` -Then download AssociationNames.txt and AssociationLibrary.txt in demos forder, and paste them into your current working directory. With `sum_str(rdf="ttl",graph=TRUE,UserAL=FALSE,UserANM=FALSE,prefix="cwf",baseURI = "http://cwf.tw.rpi.edu/",UserID ="data#" )`, you could negerate a output file as follows: +Then download `AssociationNames.txt` and `AssociationLibrary.txt` in `demos` forder, and paste them into your current working directory. With `sum_str(rdf="ttl",graph=TRUE,UserAL=FALSE,UserANM=FALSE,prefix="cwf",baseURI = "http://cwf.tw.rpi.edu/",UserID ="data#" )`, you could generate a output file as follows: ``` @prefix test: . @prefix provone: . @@ -560,7 +561,7 @@ Then download AssociationNames.txt and AssociationLibrary.txt in demos forder, a provone:hasSubProgram test:choose_subjects . ``` -And a RDF diagram like this: +And a generate RDF diagram like this: From d4867c961f8ccdbf9594fc7feb32ec762d2278e6 Mon Sep 17 00:00:00 2001 From: "John S. Erickson, Ph.D" Date: Fri, 4 Aug 2017 11:20:24 -0400 Subject: [PATCH 247/318] Added more highlighting --- README.md | 51 ++++++++++++++++++++++++++++----------------------- 1 file changed, 28 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index f5634ec..391bc7e 100644 --- a/README.md +++ b/README.md @@ -33,10 +33,10 @@ You can install the package from GitHub. devtools::install_github("XiaoliangJiang/strcode",ref="semantics") ``` -# Structuring code +# Structuring Code -## For basic use -We suggest three levels of granularity for code structuring, whereas higher-level blocks can contain lower-level blocks. +## Basic Code Structuring (no embedded semantics) +We suggest three levels of granularity for 'basic' code structuring, whereas higher-level blocks can contain lower-level blocks. -   level 1 sections, which are high-level blocks that can be separated as follows: @@ -71,51 +71,56 @@ The separators all have length 80. The value is looked up in the global option ` By default, breaks and titles are inserted via a Shiny Gadget, but this default can be overridden by setting the option `strcode$insert_with_shiny` to `FALSE` and hence only inserting the break. -## For semantic use +## Structuring Code with Embedded Semantics -Firstly, click check box `Add semantics` to show more options for semantic use. We suggest seven levels of granularity for code structuring, whereas higher-level blocks can contain lower-level blocks. +After invoking the interface, click check box `Add semantics` to show more options for semantic use. For complicated scripts up to seven levels of granularity might be required. Examples semantic annotation at different levels appear below. --   level 1 sections, which are highest-level blocks that usually represents user's workflow domain and can be separated as follows: +-   **Level 1** sections, which are highest-level blocks that usually represents user's workflow domain and can be separated as follows: ``` r # ________________________________________________________________________ # YourWorkflow {WorkID provone:Workflow} #### ``` -- level 2 sections, which are second-highest-level blocks that are the highest level for detailed entities can be separated as follows: +- **Level 2** sections, which are second-highest-level blocks that are the highest level for detailed entities can be separated as follows: ``` r ## ........................................................................ ## YourProcess {ProcessID provone:Process} #### ``` -- level 3 sections, which are lower-level blocks that can be separated as follows: +- **Level 3** sections, which are lower-level blocks that can be separated as follows: ``` r ### .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ... ### YourProcess02 {ProcessID02 provone:Process} #### ``` -- level 4 sections, which are lower-level blocks that can be separated as follows: +- **Level 4** sections, which are lower-level blocks that can be separated as follows: ``` r #### ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .... #### YourData {DataID provone:Data} #### ``` +or +``` r +#### ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .... +#### YourData {VisualizationID provone:Visualization} #### +``` -You can notice from the above that +Notice from the above that: - The breaks characters `___`, `...`, `.. ..`,`... ...` were chosen such that they reflect the level of granularity, namely `___` means highest level (or domain level), and the number of dots between spaces represents different lower levels, for example, `.. ..` means second level of entities level (third level in total). -- The first argument which is outside of brace is title. The first argument in the pair of braces is ID and second argument is class. And if you add more manully inputs, they will appear in the pair of braces after class, like: +- The first argument which is outside of the brace `{` is the *title*. The first argument in the pair of braces is *ID* and second argument is *class*. If you add more manual inputs, they will appear in the pair of braces after class, like: ``` r #### ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .... #### YourData {DataID provone:Data manuallyinput=value} #### ``` -- Manually input values should follow the structure: property=value. The user interface only accept manually input values in correct structure. -- A JSON-LD structure style also could be generated by the function with click the check box `JSON-LD` to enable it. With same input above, the result of using JSON-LD style let users understand arguments easier and it is like: +- Manually inputted values must follow the structure: `property=value`. The user interface can only accept manually input values following this structure! +- A structure following JSON-LD syntax also can be generated by the function by selecting `JSON-LD`. With same input above, the result of using JSON-LD style let users understand arguments easier and it is like: ``` r #### .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ... @@ -138,7 +143,7 @@ You can notice from the above that ## YourProcess02 {ProcessID02 provone:Process} #### ``` -The RDF diagram of this one will be: +The RDF diagram of this structure based on `igraph` looks like: @@ -160,7 +165,7 @@ The RDF diagram of this one will be: Notice that if you want to generate two-ways association, you need to manually added associations both in parent and child entities. In addition, only given words which exist in AssociationNames.txt file (in semantics branch, demos folder) can serve as associations between two entities and be manually added in. After download and paste this file into your current working directory, you could add associations by yourself. For more information about how to add associations into the list, please read Summarizing code part. -## Anchoring sections +## Anchoring Sections Sometimes it is required to refer to a code section, which can be done by title. A better way, however, is to use a unique hash sequence - let us call it a code anchor - to create an arguably unique reference to that section. A code anchor in `strcode` is enclosed by `#<` and `>#` so all anchors can be found using regular expressions. You can add section breaks that include a hash. That might look like this: @@ -169,7 +174,7 @@ Sometimes it is required to refer to a code section, which can be done by title. ## An anchored section #### ``` -## Insert a code anchor +## Inserting a code anchor Code anchors might prove helpful in other situations where one want to anchor a single line. That is also possible with `strcode`. An example of a code anchor is the following: @@ -180,9 +185,9 @@ this_is_a_super_important_but_hard_to_describe_line_so_let_me_anchor_it The hash sequences in strcode are produced with the R package [digest](https://github.com/eddelbuettel/digest). -# Summarizing code +# Summarizing Code -## For basic use +## Without Embedded Semantics Once code has been structured by adding sections (as above), it can easily be summarized or represented in a compact and abstract form. This is particularly handy when the codebase is large, when a lot of people work on the code or when new people join a project. The function `sum_str` is designed for the purpose of extracting separators and respective comments, in order to provide high level code summaries. It is highly customizable and flexible, with a host of options. Thanks to RStudio's API, you can even create summaries of the file you are working on, simply by typing `sum_str()` in the console. The file presented in the example section below can be summarized as follows: ``` r @@ -213,7 +218,7 @@ sum_str(path_in = "placeholder_code/example.R", - Similarly, we use `lowest_sep = FALSE` to indicate that we want lowest separators (given `granularity`) to be omitted between the titles of the sections. - `header` was set to `TRUE`, so the column names were reported as well. Note that they are slightly off since knitr uses a different tab length. In the R console and more imporantly in the outputed file, they are aliged. -## For semantic use +## Summarizing Embedded Semantics For semantic use, some new arguments are needed. - `rdf` specifies a type of output rdf file. Only "ttl" has been added into function right now. - `graph` indicates whether to generate a RDF graph or not. The default value is FALSE. @@ -227,8 +232,8 @@ For semantic use, some new arguments are needed. You can find an example of how those arguments work in Example of improved legibility part. -# Example of improved legibility -## For basic use +# Improving Legibility through Code Structuring +## Improve Legibility without Embedded Semantics To demonstrate the improvement in legibility, we give an extended example with some placeholder code. @@ -396,8 +401,8 @@ test2 <- function(x) { ## ............................................................................ } ``` +## Improved Legibility with Embedded Semantics -## For semantic use By using input breaks as follows: ``` r # ________________________________________________________________________ @@ -561,7 +566,7 @@ Then download `AssociationNames.txt` and `AssociationLibrary.txt` in `demos` for provone:hasSubProgram test:choose_subjects . ``` -And a generate RDF diagram like this: +The code generates a graph representation of the resulting RDF such as this: From 9d08eaf8896ac5f5bac2194a8c3333645ed08f78 Mon Sep 17 00:00:00 2001 From: "John S. Erickson, Ph.D" Date: Fri, 4 Aug 2017 11:55:04 -0400 Subject: [PATCH 248/318] Filled in the ToC I *think* I got the levels correct... --- README.md | 40 ++++++++++++++++++++++++---------------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 391bc7e..edfb0bd 100644 --- a/README.md +++ b/README.md @@ -4,11 +4,19 @@ README [![Build Status](https://travis-ci.org/lorenzwalthert/strcode.svg?branch=master)](https://travis-ci.org/lorenzwalthert/strcode) [![Project Status: WIP ? Initial development is in progress, but there has not yet been a stable, usable release suitable for the public.](http://www.repostatus.org/badges/latest/wip.svg)](http://www.repostatus.org/#wip) [![CRAN\_Status\_Badge](http://www.r-pkg.org/badges/version/strcode)](https://cran.r-project.org/package=strcode) [![packageversion](https://img.shields.io/badge/Package%20version-0.2.0-orange.svg?style=flat-square)](commits/master) # Table of Contents -1. Add... -2. Table... - + Of... - + Contents... -3. Here... +1. Introduction +2. Installation +3. Structuring Code + + Basic Code Structuring (no embedded semantics) + + Structuring Code with Embedded Semantics + + Anchoring Sections + + Inserting a code anchor +4. Summarizing Code + + Summarizing without Embedded Semantics + + Summarizing with Embedded Semantics +5. Improving Legibility through Code Structuring + + Improve Legibility without Embedded Semantics + + Improved Legibility with Embedded Semantics # Introduction @@ -38,14 +46,14 @@ devtools::install_github("XiaoliangJiang/strcode",ref="semantics") ## Basic Code Structuring (no embedded semantics) We suggest three levels of granularity for 'basic' code structuring, whereas higher-level blocks can contain lower-level blocks. --   level 1 sections, which are high-level blocks that can be separated as follows: +- **Level 1* sections, which are high-level blocks that can be separated as follows: ``` r # ________________________________________________________________________ # A title #### ``` -- level 2 sections, which are medium-level blocks that can be separated as follows: +- **Level 2* sections, which are medium-level blocks that can be separated as follows: ``` r @@ -53,14 +61,14 @@ We suggest three levels of granularity for 'basic' code structuring, whereas hig ## A subtitle #### ``` -- level 3 sections, which are low-level blocks that can be separated as follows: +- **Level 3* sections, which are low-level blocks that can be separated as follows: ``` r ### .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ... ### One more #### ``` -You can notice from the above that +Notice from the examples above that - The number of `#` used in front of the break character (`___`, `...`, `.. ..`) corresponds to the level of granularity that is separated. - The breaks characters `___`, `...`, `.. ..` were chosen such that they reflect the level of granularity, namely `___` has a much higher visual density than `.. ..`. @@ -75,21 +83,21 @@ By default, breaks and titles are inserted via a Shiny Gadget, but this default After invoking the interface, click check box `Add semantics` to show more options for semantic use. For complicated scripts up to seven levels of granularity might be required. Examples semantic annotation at different levels appear below. --   **Level 1** sections, which are highest-level blocks that usually represents user's workflow domain and can be separated as follows: +- **Level 1** sections, which are highest-level blocks that usually represents user's workflow domain and can be separated as follows: ``` r # ________________________________________________________________________ # YourWorkflow {WorkID provone:Workflow} #### ``` -- **Level 2** sections, which are second-highest-level blocks that are the highest level for detailed entities can be separated as follows: +- **Level 2** sections, which are second-highest-level blocks that are the highest level for detailed entities can be separated as follows: ``` r ## ........................................................................ ## YourProcess {ProcessID provone:Process} #### ``` -- **Level 3** sections, which are lower-level blocks that can be separated as follows: +- **Level 3** sections, which are lower-level blocks that can be separated as follows: ``` r ### .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ... @@ -108,7 +116,7 @@ or #### YourData {VisualizationID provone:Visualization} #### ``` -Notice from the above that: +Notice from these examples that: - The breaks characters `___`, `...`, `.. ..`,`... ...` were chosen such that they reflect the level of granularity, namely `___` means highest level (or domain level), and the number of dots between spaces represents different lower levels, for example, `.. ..` means second level of entities level (third level in total). @@ -143,7 +151,7 @@ Notice from the above that: ## YourProcess02 {ProcessID02 provone:Process} #### ``` -The RDF diagram of this structure based on `igraph` looks like: +A graphical representation of the RDF for this structure based on `igraph` looks like: @@ -159,7 +167,7 @@ The RDF diagram of this structure based on `igraph` looks like: ### .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ... ### YourProcess02 {ProcessID02 provone:Process provone:wasDerivedFrom=WorkID}#### ``` -The RDF diagram of this one will be: +The RDF graph now looks like : @@ -218,7 +226,7 @@ sum_str(path_in = "placeholder_code/example.R", - Similarly, we use `lowest_sep = FALSE` to indicate that we want lowest separators (given `granularity`) to be omitted between the titles of the sections. - `header` was set to `TRUE`, so the column names were reported as well. Note that they are slightly off since knitr uses a different tab length. In the R console and more imporantly in the outputed file, they are aliged. -## Summarizing Embedded Semantics +## Summarizing with Embedded Semantics For semantic use, some new arguments are needed. - `rdf` specifies a type of output rdf file. Only "ttl" has been added into function right now. - `graph` indicates whether to generate a RDF graph or not. The default value is FALSE. From be39f9a90f67795294e593c68f8661b209d346fd Mon Sep 17 00:00:00 2001 From: "John S. Erickson, Ph.D" Date: Fri, 4 Aug 2017 12:05:54 -0400 Subject: [PATCH 249/318] Minor edits --- README.md | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index edfb0bd..d7d9d48 100644 --- a/README.md +++ b/README.md @@ -46,14 +46,14 @@ devtools::install_github("XiaoliangJiang/strcode",ref="semantics") ## Basic Code Structuring (no embedded semantics) We suggest three levels of granularity for 'basic' code structuring, whereas higher-level blocks can contain lower-level blocks. -- **Level 1* sections, which are high-level blocks that can be separated as follows: +- **Level 1** sections: high-level blocks that can be separated as follows: ``` r # ________________________________________________________________________ # A title #### ``` -- **Level 2* sections, which are medium-level blocks that can be separated as follows: +- **Level 2** sections: medium-level blocks that can be separated as follows: ``` r @@ -61,50 +61,50 @@ We suggest three levels of granularity for 'basic' code structuring, whereas hig ## A subtitle #### ``` -- **Level 3* sections, which are low-level blocks that can be separated as follows: +- **Level 3** sections: low-level blocks that can be separated as follows: ``` r ### .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ... ### One more #### ``` -Notice from the examples above that +Notice from these examples that: -- The number of `#` used in front of the break character (`___`, `...`, `.. ..`) corresponds to the level of granularity that is separated. -- The breaks characters `___`, `...`, `.. ..` were chosen such that they reflect the level of granularity, namely `___` has a much higher visual density than `.. ..`. -- Each block has an (optional) short title on what that block is about. -- Every title ends with `####`. Therefore, the titles are recognized by RStudio as [sections](https://support.rstudio.com/hc/en-us/articles/200484568-Code-Folding-and-Sections). This has the advantages that you can get a quick summary of your code in Rstudio's code pane and you can fold sections as you can fold code or function declarations or if statements. See the pictures below for details. +- The number of `#` used in front of the break character (`___`, `...`, `.. ..`) corresponds to the level of granularity that is separated. +- The break characters `___`, `...`, `.. ..` were chosen such that they reflect the level of granularity, namely `___` has a much higher visual density than `.. ..`. +- Each block has an (optional) short title on what that block is about. +- Every title ends with `####`. Therefore, the titles are recognized by RStudio as [sections](https://support.rstudio.com/hc/en-us/articles/200484568-Code-Folding-and-Sections). This has the advantages that you can get a quick summary of your code in Rstudio's code pane and you can fold sections as you can fold code or function declarations or if statements. See the pictures below for details. -The separators all have length 80. The value is looked up in the global option `strcode$char_length` and can therefore be changed by the user. +*The separators each have a length of 80 characters*. The value is set by the global option `strcode$char_length` and can therefore be changed by the user. -By default, breaks and titles are inserted via a Shiny Gadget, but this default can be overridden by setting the option `strcode$insert_with_shiny` to `FALSE` and hence only inserting the break. +By default, breaks and titles are inserted via a `shiny` Gadget, but this default may be overridden by setting the option `strcode$insert_with_shiny` to `FALSE` and hence only the break is inserted. ## Structuring Code with Embedded Semantics After invoking the interface, click check box `Add semantics` to show more options for semantic use. For complicated scripts up to seven levels of granularity might be required. Examples semantic annotation at different levels appear below. -- **Level 1** sections, which are highest-level blocks that usually represents user's workflow domain and can be separated as follows: +- **Level 1** sections: the highest-level blocks that usually represent user's workflow domain and can be separated as follows: ``` r # ________________________________________________________________________ # YourWorkflow {WorkID provone:Workflow} #### ``` -- **Level 2** sections, which are second-highest-level blocks that are the highest level for detailed entities can be separated as follows: +- **Level 2** sections: second-highest-level blocks that are the highest level for detailed entities can be separated as follows: ``` r ## ........................................................................ ## YourProcess {ProcessID provone:Process} #### ``` -- **Level 3** sections, which are lower-level blocks that can be separated as follows: +- **Level 3** sections: lower-level blocks that can be separated as follows: ``` r ### .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ... ### YourProcess02 {ProcessID02 provone:Process} #### ``` -- **Level 4** sections, which are lower-level blocks that can be separated as follows: +- **Level 4** sections: lower-level blocks that can be separated as follows: ``` r #### ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .... @@ -118,25 +118,25 @@ or Notice from these examples that: -- The breaks characters `___`, `...`, `.. ..`,`... ...` were chosen such that they reflect the level of granularity, namely `___` means highest level (or domain level), and the number of dots between spaces represents different lower levels, for example, `.. ..` means second level of entities level (third level in total). +- The break characters `___`, `...`, `.. ..`,`... ...` were chosen such that they reflect the level of granularity, namely `___` means highest level (or domain level), and the number of dots between spaces represents different lower levels, for example, `.. ..` means second level of entities level (third level in total). -- The first argument which is outside of the brace `{` is the *title*. The first argument in the pair of braces is *ID* and second argument is *class*. If you add more manual inputs, they will appear in the pair of braces after class, like: +- The first argument which is outside of the brace `{` is the *title*. The first argument in the pair of braces is *ID* and second argument is *class*. If you add more manual inputs, they will appear in the pair of braces after class, like: ``` r #### ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .... #### YourData {DataID provone:Data manuallyinput=value} #### ``` -- Manually inputted values must follow the structure: `property=value`. The user interface can only accept manually input values following this structure! -- A structure following JSON-LD syntax also can be generated by the function by selecting `JSON-LD`. With same input above, the result of using JSON-LD style let users understand arguments easier and it is like: +- Manually inputted values must follow the structure: `property=value`. The user interface can only accept manually input values following this structure! +- A structure following JSON-LD syntax also can be generated by the function by selecting `JSON-LD`. With same input above, the result of using JSON-LD style let users understand arguments easier and it is like: ``` r #### .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ... #### {"@id":DataID, "@type":provone:Data, "label":YourData} #### ``` -- Since the function uses levels to generat associations between entities, for semantics use, the child entity must be under its parent entity. --   Notice that only given classes exist in AssociationLibrary.txt file (in semantics branch, demos folder) can serve as associations and automatically generated by the function. After download and paste it into your current working directory (use getwd() to show your working directory in R), you could added new associations into this library by yourself. This file have five columns: "ParentClass" , "ChildClass", "Ways", "Property", and "ReverseProperty". You need to follow this structure and add five values (seperate by comma ",") for your user-defined associations. The first value in ParentClass column is the class of parent entity; the second value in ChildClass is the calss of child entity; the third value in Ways column can be only 1 or 2 which indicate this association is one-way or two-ways; the fourth value in Property column represent the property of the association from parent entity to child entity, which also will be shown in RDF diagram; the last value in ReverseProperty column represent the property in reverse way, which is from child entity to parent entity, and this value could be " " in onw-way associations. +- **Since the summarization function uses code levels to automatically generate associations between entities, for semantics embedding a child entity must be 'under' its parent entity.** +- Notice that only given classes exist in `AssociationLibrary.txt` file (in `semantics` branch, `demos` folder) can serve as associations and automatically generated by the function. After downloading and pasting it into your current working directory --- use `getwd()` to show your working directory in R --- you could added new associations into this library by yourself. This file has five columns: `ParentClass` , `ChildClass`, `Ways`, `Property`, and `ReverseProperty`. You must follow this structure and add five values --- separated by commas `,` --- for your user-defined associations. The first value in `ParentClass` column is the class of parent entity; the second value in `ChildClass` is the class of child entity; the third value in `Ways` column can be only `1` or `2` which indicates this association is one-way or two-way; the fourth value in `Property` column represents the property of the association from parent entity to child entity, which also will be shown in RDF diagram; the last value in the `ReverseProperty` column represent the property in reverse way, which is from child entity to parent entity, and this value could be " " in onw-way associations. - If a parent entity has multiple child entities, put these child entities under the parent entity level, and the function will generat correct relationship automatically. For example, if your inputs are as follows: From a3dbe7a0f0da2f525c2fe837f1d407a3ed7259e8 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 4 Aug 2017 14:22:50 -0500 Subject: [PATCH 250/318] Update README.Rmd --- README.Rmd | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/README.Rmd b/README.Rmd index 76ef71b..b11cb42 100644 --- a/README.Rmd +++ b/README.Rmd @@ -17,17 +17,23 @@ library(strcode) [![packageversion](https://img.shields.io/badge/Package%20version-0.2.0-orange.svg?style=flat-square)](commits/master) # Table of Contents -1. Add... -2. Table... - + Of... - + Contents... -3. Here... +1. Introduction +2. Installation +3. Structuring Code + + Basic Code Structuring (no embedded semantics) + + Structuring Code with Embedded Semantics + + Anchoring Sections + + Inserting a code anchor +4. Summarizing Code + + Summarizing without Embedded Semantics + + Summarizing with Embedded Semantics +5. Improving Legibility through Code Structuring + + Improve Legibility without Embedded Semantics + + Improved Legibility with Embedded Semantics # Introduction -*Be sure to introduce basic **and** semantic functionality* - The `strcode` (short for structuring code) package contains tools to organize and abstract your code better. It consists of @@ -38,7 +44,9 @@ and abstract your code better. It consists of experience further. - A function `sum_str` that summarizes the code structure based on the separators and their comments added with the Add-in. For one or more files, - it can cat the structure to the console or a file. + it can cat the structure to the console or a file. + - `sum_str` function can also structure code with embedded semantics, and generate an RDF file and RDF diagram automatically. + - Users can define the association library by themselves for `sum_str` which contains rules of automatically generated associations. - An [RStudio Add-in](https://rstudio.github.io/rstudioaddins/) that lets you insert a code anchor, that is, a hash sequence which can be used to uniquely identify a line in a large code base. From ce7f4af50271025e7b1f056d829c063f1225c02e Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 4 Aug 2017 14:22:52 -0500 Subject: [PATCH 251/318] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index d7d9d48..9cee18f 100644 --- a/README.md +++ b/README.md @@ -20,12 +20,12 @@ README # Introduction -*Include discussion of semantic functionality!* - The `strcode` (short for structuring code) package contains tools to organize and abstract your code better. It consists of - An [RStudio Add-in](https://rstudio.github.io/rstudioaddins/) that lets you quickly add code block separators and titles (possibly with unique identifiers) to divide your work into sections. The titles are recognized as sections by RStudio, which enhances the coding experience further. -- A function `sum_str` that summarizes the code structure based on the separators and their comments added with the Add-in. For one or more files, it can cat the structure to the console or a file. +- A function `sum_str` that summarizes the code structure based on the separators and their comments added with the Add-in. For one or more files, it can cat the structure to the console or a file. + - `sum_str` function can also structure code with embedded semantics, and generate an RDF file and RDF diagram automatically. + - Users can define the association library by themselves for `sum_str` which contains rules of automatically generated associations. -   An [RStudio Add-in](https://rstudio.github.io/rstudioaddins/) that lets you insert a code anchor, that is, a hash sequence which can be used to uniquely identify a line in a large code base. From 7fdb30bf1ee72d841d1401c82be2a89a770d9dfc Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Fri, 4 Aug 2017 14:26:13 -0500 Subject: [PATCH 255/318] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b1fdea5..6116034 100644 --- a/README.md +++ b/README.md @@ -24,8 +24,8 @@ The `strcode` (short for structuring code) package contains tools to organize an - An [RStudio Add-in](https://rstudio.github.io/rstudioaddins/) that lets you quickly add code block separators and titles (possibly with unique identifiers) to divide your work into sections. The titles are recognized as sections by RStudio, which enhances the coding experience further. - A function `sum_str` that summarizes the code structure based on the separators and their comments added with the Add-in. For one or more files, it can cat the structure to the console or a file. - + `sum_str` function can also structure code with embedded semantics, and generate an RDF file and RDF diagram automatically. - + Users can define the association library by themselves for `sum_str` which contains rules of automatically generated associations. + - `sum_str` function can also structure code with embedded semantics, and generate an RDF file and RDF diagram automatically. + - Users can define the association library by themselves for `sum_str` which contains rules of automatically generated associations. - An [RStudio Add-in](https://rstudio.github.io/rstudioaddins/) that lets you insert a code anchor, that is, a hash sequence which can be used to uniquely identify a line in a large code base. + # Installation You can install the package from GitHub. @@ -40,7 +42,7 @@ You can install the package from GitHub. # install.packages("devtools") devtools::install_github("XiaoliangJiang/strcode",ref="semantics") ``` - + # Structuring Code ## Basic Code Structuring (no embedded semantics) @@ -79,6 +81,7 @@ Notice from these examples that: By default, breaks and titles are inserted via a `shiny` Gadget, but this default may be overridden by setting the option `strcode$insert_with_shiny` to `FALSE` and hence only the break is inserted. + ## Structuring Code with Embedded Semantics After invoking the interface, click check box `Add semantics` to show more options for semantic use. For complicated scripts up to seven levels of granularity might be required. Examples semantic annotation at different levels appear below. @@ -193,6 +196,7 @@ this_is_a_super_important_but_hard_to_describe_line_so_let_me_anchor_it The hash sequences in strcode are produced with the R package [digest](https://github.com/eddelbuettel/digest). + # Summarizing Code ## Without Embedded Semantics @@ -226,6 +230,7 @@ sum_str(path_in = "placeholder_code/example.R", - Similarly, we use `lowest_sep = FALSE` to indicate that we want lowest separators (given `granularity`) to be omitted between the titles of the sections. - `header` was set to `TRUE`, so the column names were reported as well. Note that they are slightly off since knitr uses a different tab length. In the R console and more imporantly in the outputed file, they are aliged. + ## Summarizing with Embedded Semantics For semantic use, some new arguments are needed. - `rdf` specifies a type of output rdf file. Only "ttl" has been added into function right now. @@ -240,6 +245,7 @@ For semantic use, some new arguments are needed. You can find an example of how those arguments work in Example of improved legibility part. + # Improving Legibility through Code Structuring ## Improve Legibility without Embedded Semantics @@ -409,6 +415,7 @@ test2 <- function(x) { ## ............................................................................ } ``` + ## Improved Legibility with Embedded Semantics By using input breaks as follows: From c128333d6b5c8cee24417eba28fea0ec371a55c6 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Tue, 8 Aug 2017 01:03:41 -0500 Subject: [PATCH 258/318] Add files via upload --- demos/Howtoadd.gif | Bin 0 -> 519229 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 demos/Howtoadd.gif diff --git a/demos/Howtoadd.gif b/demos/Howtoadd.gif new file mode 100644 index 0000000000000000000000000000000000000000..19e18d5819c39e14be56ab78be24cbabe0537506 GIT binary patch literal 519229 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

d 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

cuSyTI3YS!*Ad5QxzMp|SRmGd=NV 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 Date: Tue, 8 Aug 2017 01:35:20 -0500 Subject: [PATCH 259/318] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 9c7c1ff..a081df7 100644 --- a/README.md +++ b/README.md @@ -153,6 +153,8 @@ Notice from these examples that: ## ........................................................................ ## YourProcess02 {ProcessID02 provone:Process} #### ``` +To insert semantics breaks, you can follow this: + A graphical representation of the RDF for this structure based on `igraph` looks like: From b24527ab249ebfa4dfae736bbecc73b7c8e9f08a Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Tue, 8 Aug 2017 02:13:29 -0500 Subject: [PATCH 260/318] Add files via upload --- demos/Creatgraph.gif | Bin 0 -> 479541 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 demos/Creatgraph.gif diff --git a/demos/Creatgraph.gif b/demos/Creatgraph.gif new file mode 100644 index 0000000000000000000000000000000000000000..60e420745de4a92d51b97822241b9f5d3b8469a3 GIT binary patch literal 479541 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%0Dg5c`wAfzFL}!q z`YU`R6&d;#rCuJk7LQSNGktHxPLfv<@8cwD+Y})JrJhI#Xy4|h{Z8>}EEY3yPMSL9 zcj!91O6o~HO$+CKD~#+fbFdT)PRVtO4xLbZ3s5%-@)HgSy7-_k2%2*03(EC|by~j0 zq*lfN|JDJ2c;cNNc_W3+o+kopOd*#_Ysu}qaqNrtrZ+zujt0od*Of@NY^JR3i$uqd z2!_4f={&S{0O`k}x(gQ34{s=C#O$_6uQKfVA~u?H1(IYdlj*or_p~t9^OS*9d+q(N zknJzMq}qd^?t|kZYI_8k$Bd(E3Kx!?YFj)oXIzuabGp@zY5ph5NrK?x#rh}E5Ap0xnGxAvRrIFytO;~nv-4=QQ`Ds{?wm_ zk=~l9S08>XU;p!li+mbWb*pGK?~nXSa;NF>gwfyS(V7_d&g%qgv0smjROh)4anq0Y z?KK#w0*=FC7o13pTBCOhy(_UZk2Cflo6S&Pa>C>eX>0G^fz@{G&1qqg8-Pvr?DW+e z#%rW#3aCkG4|{V-m;^t)DNiFjjpsW}%6!}G!1X=Li0+wG*xBsFqn=TU`#W z&u?Gd6$``NmvaeTa7$G_sP44z-sbi5yRUktb^qJ?Ktk!=>(APs2`K9cy4!7>zb1C1 zaFX9k&UleOy(nswEv<9Owe!J3ZIHhGos{WQF?Srfb1~0w$l7>O|%O^b^;SwHD(av{w7c6JNadGb90DmIPlZM zPmm|U2N%3MzkcL$B3VAM>F$z~60De{=l6OSFPNVGQj=U)>zB0{czWk+Z7&1 z?jKshd&jwAY9yqtgP6EEXcHVmC{qP&G^W6_t?1*uSvhJm9%Pi6~;38{~prj5re{$zhRy;1Y~4X#5eQ3Oo^l8mrQ!ePnRW!m?5>b}>VzX%ABe8WmQ=--@1yp<>Onbe`_-JI%!ph}F^K=^F7 z=={Z;R@oOk+IC46yz~}9<{8>V&wDjv-0+gjdeF%Eh3Uh1$2!G19%_*y5*4bo>VLA$ zR_ruYL`zwOeng46Dl*T8=c}Qb0f@qKWDf>*hb45M0lS5PT{c3sMn&K?x)Fk60c$J(M}m*Bki`I$myq~EIb1I{qMn6d zqLHIS@G&fHkem>07}0@GXupdnW+Sln$Y)G=M07$#C;S;&cz_=bAH&1z(3hTZ5mWZa z2{t0KGH#S99M427s3BRHh-S3#U$#<7nb3XK8Hkl|ZR@Fc4+Pm?w?-pXb5dlLi!f#BAi`tAyP>fYSR|JxOyvoEW(j3tQO_9A`}hRi7}Pv7 zzM72kb%^YGg`C79?{X80$*^oZs`)~kWnjW288y|BnVY#?pSe4dxwn}KkY)%P zGe9R95aT4HTn79#LwGLo5EPZmy=KJ{umZrW0kDr)<*HOYXL;o)z{NG?8>5`)YG zz?n?pu-AwfG`y$_u5%)_qD$#B0~QE?JR|O#wGsZ8&1<9%f9FEyxQJp5(o7lllA%8b zKs@8=yv4#^vXHB!h|Sv~on*UICUO#kD&`_CwjVEhehRcIy}?ea{3QGaANLiDNaYF1 zZwlS##NT137qByi{^d_nto>(!TU^vvv=Ekq>LUSzF|aubH90|PozXdBL_*a`xIylTId=BnuCWG8QxqdC;a82{-T9FN#L{BA>!*I`5e>)Nf=&= ztWPv`91nzc<8Y`k%dg}>Mxc@nPh7B(yi#%q)-(iq7Y{D_V zGP=47?p%R<%Muz&Y0#Dftf;++%S}8LC5v#uDt5^4b^{V8GYN;ob9l$#Da2c zmMpu#^*$_gdxn7pV~`mP$eV4U+gMZ|0CJBccn=RFafH2@LM#d- zh$LJ|fjq)P?~+l2WRyM$aGZ&H_4E2uBghvn(`+tl9wT&=YD*@acG(qU{o#25mm~Dt~``zcu9i``6 z5zkq|W=G+}LbqeCA%{*#e$9j2Btwp~gm`FmO?{DkEWCq-yikUEh(T2`QN`GoJHzmS zPp}Iw;CvRm2Lu0(ahb*-GTS_SZo!K=sDYn|VOC}H5zUXH8jMq6ZvhA{I{Xa-dK)85 zWeMfqgWh8nc|mh0NC-)r>eVSheUe}>1N0sJc!>;hqk!=&VS50?m{UKDe&}%uMP9E) zd}*lJX<*5|d2afq_Vk;&|K8L;c+>FaP2;yW3er#5JJp}@@KONmlMG1mByx@nb-+Wj z$)Ni@P#*;x1c11a-Uf0J1w7CY9zIEd$M7+5G5~Uw3-QJaf4l_|cn=EVf$m_B0(YR| zTx(r>WEv5i%R-fhq3!^(E8g50r6nISLVaLC6y6|SafDt`VDHJ)fvvbN0f^=Ocki%D zzF>s!Q(#!A(J)I`LPuCKznMY#XBWF3PS!A2=oTA#iwM=uhYmX+$L!+<)K9X=(9awZ z&uvsxC^l`XB~Txiu%ex z4P!N_%_#pK)EcpaM}hyRQN`wj$(yBP>Y*h>*fmDRubp&DoB01m%$QukNjAuk0kr1| z+Ec(vyw}cTxE)i-jZXs3bF+Fd2gzdHx6Qh9&UD|s(Vd&$o!8i%|Gm3lx0@;VzS!)2 z>6!QCJ>A0qSQ-Gf@Fh_q7(NSt#xPMO6!0@1sGS0ipg`<-LN|G!VJzGMi)3+MMzdig zEJBq6_9h9FNso&G5C;l04-bo>pn#V;D`b1Fk>Rh6;hA`FPfUWG8S*U|`8paoz=FKu z^ugp{$0))TJ7H}{kxIt>gKYR6JY4rQ{0{k_DZ6*mU>CakP4W2IM{#5sVc|&xLif;B$F*v9Fq&O+R}1d^{fe z(fi@YQ*S?>`SH>B??;mSC;z|I|9O`>;~>^VNB{|bJ`h$+Nxw!x#qmI;yeFw#$RJk8 zizFP)6uL%4b^sutN2my( znnBb9;2+S)4Rt+iw8u(jQIWDojVwi)6XtEwp$-i`hy zt7BQouy~6Wu00q#*Xr8yGBH*cx~JMHN^?X@@U(=>f{dHO^F?&Ou9-n!G?d((Y@ZzsB@ z8thRMMAWR>LC@%f=AAe1WIukxSNF}&1jx@OSj;B+&eGy$llcX+eGOcNnJg{ucekC9 zwO9o8&5Z5xmDs+B-pR=0(Cp@GRMg3`VpL5walYird`aAVS<`$rW4>l@o>ennt*}ts zH~-jm;VvHbx@n=IVE)wb!fV%smgNO@jcrHVV&n3Bvu|0q#bV#yB1d6q&|+!Wcj;5y z(n!J5*QTZKqf6g>=QHrIO!UIzrp4Nf`BGQ>{OJ6#_scaI@Jcd#Ee`&Oxbg_QvTAEUoxr!cJ zRp75;6xWn3*Hq80soh-DC|uKex27|;y1Kl=*Ikq4pIwEVo$e;D2Us9l$?G`FpO==W zPWP>wtgPFtteX`gOm1!*eYfE}w&BX(AS(Xyu>9rfHtp#4%e(N`sdvB5jQ#TE{~{^= z_P6|f?(FXiZodd;H;%tsx9T5d%vZYPax zmEYX16xk{*+)lmvPs76j`|WP?om!vG+M7Es-L@Ov?KF<!Zld`@+9p-~Ij0f4V!u-yZ6OH!XcD#=sw(+M6xh zo3-4VdAhe;xVNatU$f+IoaO(%$=@vGZ!7Yr-|+#5k8<$|V5EXgE^*wNhLpERlyX;Y z^^~~0)DraJxX$qkHMqEh$CQSs{i(|?vfOZ~O@`Brw4=fg1W zn22%tu{K>`u6MRTS3Y8P=<(@_0-uK);X}Xs4EB#oO_YvHs<@i<>_+oC`by4f#Wj*1 z@t!=2?)P23zT-Td-ML~8*b+-)?;#o&-tF<=#CJPAPIh_0xmk8H7kEc#((#60Z6Ai4 z>DbGKCVcJID+;^)Z<{{HnYIUH54!Y)#>Z}teD+bbq_;k4_uu~_eg^BHL|1*@_2#|U zQ|kj|ui;XP=J9hmqAocdxfgF6+h$+v6Mg1%NLzS7ZKlC_skXmMd`9lV6)){Won0o6 zU2tPw+OEb`&(~eeJGYnm%zo{9KE_YWd2t$kM?B&8n~2!fa;n1+<(T6I@D8b?7SE=| zkLM4S=f~}d(q%$wiWX&}hn0@WdJtTWeY||sCw=&!m269^y9B&7nxU#sqq*ZKBbQYRPtv)~%X-TuK%io;}K zbX$C&{Pf}~xgdHt)c!&Eq5yPm$-}tQI6c>_gD>qU?g$ZaI)hG9KkngYXX95d{YU0P zUDdGn=`{D(0k6hrI}@4lS+v{PPJ7MB;JB;~FU!RNkMWnBLKWv0$N z`pe}ZpOYik``<=!>52u>+)#DjP3|}4(Wt3gflb%O3dhW^&sAhR-thBFkpc5`Yskg~8J?`En?RtjkFODm1p3Dqa4FzhS5>3W?3yLfxx63z$ z!c2m!MFoZ0j7-i8pTbt{Um{vT*Zcsgm3Y2*FcAdSAg1ec{A8{%2?{##a9eDN$0L^Q z^Tsf9nNJ*=QR#RF8TUs1z@+35SMGq?c=F@2W~uLkZ5XrS1F^3IPy~t%`U*SaT#%s1 z1cRnncUZ_36Ayby!prCn040cisJpm?G73i^q^$*9g^f3PvzuN!lc<$sDHX`yWn@_WLPU%t+MNDibN#!K$Gt#RD`` zU4eE@kdgwQ*&#pZj*uk-Vcsmk{TvR}X;)16CP@%M;R<4Et-)n;6yzEg70MD6CXLvt z^skx(E^j%vtc zP$9rNG!bSNFK8&l7Ap;=1n5(Q4TIPMJTe8<#s(Q<;)O%DfIy)ZK%6(*NVVSG8>^YC z>&=!2@jyU|pMW8zS+o?ESh+tz7ODYIyy0$eq8eFt6TIk{E&#o!ARy$tnP_6^m*%@M zA^Da~;A3aYQ}8iuVn&)!9J`sWG~6t?&4cRAGEu=CrkEjbR1uN~Q!Nz`j`!A3SjJN? zCSvwiPz0nHEL5n5bzP2wy<3fORo%6r`cB&`VRv>qNzT-L7&)5=r~u7-aYAH>c-zoI zDJ7T`j=oE>bu5F4PhFF39UhEXWVhhNbiB}i&13aW5&oEo(uG|Er29Os> zsCgB7{7iu3O;X@Kfr^yS+Df_Q%0%q0Ql=YH1v#G!m5akC*#{+v<=0bXA$)gX?I|TO zp*tP&ahxf$dI1GDW|B$JGi2aM3qdipN5S6g!jXGldVXB0Ik1O;yVP!pMOW&|u_Z0c z$e(ZIklNMlR;QzwlTt6yP?Mun)aBfN&?p9q<5{I&?V{Swc1fCaxg$%LtYyb=_Ctf? zY5S{yQgsZw!#VD0{u>j@nNMuh>u;n6w-rl$#I)oSS}%tRmbX59xMrVfHl?({c95SQiAg2@Eb@%Zvy~K~9W3`l1ge%yOT#nu zO2^Y|?2;XOxOSKVJTg}=z)(`gjT5OKQ6%|r*52s)U{+H^nbE^Jx9ID`MNJW>Dh1V` zf#6pth;U7K+kV}AnyG#0mqU}P(&Ysy`s9ghF~_ez`hY{(4G}T|A$ee+xaccI4SxyP&HnK^OVf!NvmDqEsz&3LFZS zO&mLM_$$J0BNGz+bc@erma+3E#=60V&iQwyv3oHlI?r8(y8B-6vZXqUzFiP*#L1iAm3OZ2OT2C26?f;=h%=4HZ+kf zl*5MQpckLxgE=+t{UyuhU^BclU0CXlShHvwEP~h+UWt%Uf;wt9jfXc&CN_)aG)tE@ z%hWc@wl&KQH_J~oE0kJIJg|ynmh!&7kX&s>ZLn3nnwXpnwTKq=#1@Sn)FPurtF}eE ztwkrIWe)esQ}cB+v--f%>@cFWh>i6TuNIUIq2HUppV5F%>sh~2q3;J-n@3yB+yO&q{v2*RAOj`WvKF?uDm^ZzjqjS8i{mgK?&zbi3ly=WX zTYcm9P@+U1H!b>0lBX0TG#UH=2OT|K{J^30NU7Zn12V(W5$lHOkcPw6qzF_R zK}L5KPps~U*kvD@Lmbj<4QHlR&cQgL&}i;H)ia&=a7Z8za-Ih{<6z;E579%U)(41s zdRce`6C%%b(IUF&i4I0`Z8j>Bg}Jx+Av*LcyPEk@^vQ2Fz1Qyr3uTGrn|hwYJ|C_Ma-L5v>k!D9ddMXVT zVdP3$6dSBffkanAqMhGAw(0gmz-=aBXT|BE(o$D8?Odje!#5-xV-lTW5^Wu*=B9Kf z4&DtwN8j%hm3EpY*yDC#msv^9PPJrl33mbdI~%BWR%iJzErgxcoKH9+p5%nC^FbdC z#pQ)JIyKfh5yi96O3*93x_mF&BhF$ZE*t&2+_(#Pfk-a~!L8OIK`|~PJ&qG^QhXS8 zM;d7-@Zcl@_=Hr~gWT8r*0xR+)xHU@reG%cA8H@soh1s(x}nr+WJXtPu)j+Tf<4hwt-Ox4#c90wS9%86bk(xXNo&q_b&DYY(dCPnai zE_#DbZ$eHoAtx&n?Rn^W@m52dW+zh8Y8XNM9HcCia5*`ts6OQ?8)O0Sw1`Q(T1g9W zp!;z9X3x?1^Y4={=(`+eC79$TTCx)gUw21i>bOqX2X^b{(DY0(7ZHJnUE`2QGQ?hr zHl1rfzTJ^Nf2ROX_s$i>K1}fNc1b*A9l@h5l>!|pG;&bqKz)ig-YtaEsp1V&iQ!qNk=#l{BlSq1Oq-L1qnxI-Poje8E1PNh~CMzKi&m#-h@OmAg9@h zeqA*E`?MxGQSX@Ha0bK!^Dx9gKT_y;fk%3MBw#L?KT;Y50LX$ccwH0Ulit z{$+G``sD3tR!Vez_q4`6QLCiRX76r+;V;e>a=je%xz>FyEmwu0S24hIn>6BE=Tk4g zoVo+K*nQWX^7*M8Es6^|N`@-^>X{IRi{1YevFYiC&NpTzcwp(yF`#_1NATqB-W-~* z(8(!QS8Uen;4Wv;_#|iHPEQ=rf|BT>0k+Ucx^7Hg`rZ~!PO>@p&3DVwivha1Nq?IJ zEc-}vzAk8lgJxi!{KL1%n2$bENzt32U_8CN8x%~WlWQb5v$N1YN9{8XTHORa@j7y7RBx!O04lyoem-BAU(wQ;fH#*SZO{x_O%>MwO`!Tx1 zU?OGa?QYLJeZ5Af&yRX-;JqpIw}0u^u;7CnfTu>kDNFD)iEg?33GE0CIRC>}0|*@f zc;cXe=!AtQ5QkgfGI^*s`PJK4=t*`WW)nhopnKsHj(XEcJ{cmR&=@@QCdKq7V8HUn zx2^%&zF)VeiH2j(!4WK{Yq8+#Z(&yfN$0&G&RC$J6a~Ep@I;ILyEiO}ek~b#4abSp za0{7bh>m~saeymf0BALUCj;awlVmti`#F>z%1sQ%(@)KUC2`>YxS)Mf_jAINu8{?t za%t`k&@e72B1q>vG2TW38mNK%A^)v_t$$T0$u0=w3+UqCPZ}_2dM7$}m%-ZK=|Vrw zioYpk7{UhY0|cY7wl9I-^n;Hp#X=n!N$y;#Z7$V5m+Bmp_2?sLUzUC_84SBtWUft* zRgy~>aA?#Sm?)u{VZaVu)DYgF`4A)mO}otG>MJFk8^N^}N#@%m;e|fM;pmDgcCi}L zQMriqE#Z8*3 z`M+!m4M0OUODPd7L8*FbVU>*`El4y6%=f?~hJQ*xqx`NgAreH86cZf4O!8%c^m9Et z5ofQ@Is0J}k)*jeq#u$E3Lk--a%c*pBt_RlW4ma^LJ9Ihg1ZO6lBA@Cwgm4W9q>1* z6#$|`q`6Y4=u+o^@_45h=t1z0=9i%JZ$N<>yHwAi05PnDlh_1B3Kb@mbd>|uK~o@D8rOur@1Rwn5Y#t0 z(ZL&dHQCfDzwJjC-VUd&%8A1!&^Z)V~ZF{cP7$=~bE%UemeN@)9UCz)+R zA{j~V!LPl1Me~!BJQzuWiZl-aRrn_T%k%g$X1sbArKs+^ylXRI!yTmhd8u*kz+0keAbkNt1N2nyta zVtDiXhKpJH_Ui^G)(r#KjiT3a^mXGC;mW%76k1}c0x(Shuz6fSH-@S%1lFejWu&BI zC|OJ5Ue4I0BO?@fv|t)7Sl)b=Ss#3@o_;BrS~yBMocl$NBzT!6V1^Y`BPQYjK(Uxa z6$bD|UA#Jv{<=}^xJPejV- z9?b$t3nd(pqRKPkP3jk-I5bkd(Q)!V4-&|u668!uyhMT$$(K&z1U>$JA+Qp^nh5?! z5|rtp-ed_xcR`&12{$>DUnT@q$q;?KpbQ0w#R|%>1aYK<$W59>NxUg*nm^4-n%jh2 zkeLcpho`>aJa;?<+)0lJp*i? z3v~2`Mmcm`Qhacz!ptL==&1qrAZA1`>BlJ4m=Oq>48hLUg~!nG#6$%ERRy15wJD&+ zivJu2lHq}LD2kEEP?fF=24t!$<(Dr$62lT`Ee0Xb<@$`INbP0P=Fk#b+CnHnlN>M3 z6}(z+lrKP+!%_5kbk2SHH6i&37CoFvj|zh3jiLsNseG#u@U!k9U?d}q1ik@CzRBl3(E|rN*M-miD`ocZd? z{nbyd@+J`rYh4sju)M0Y&!@7B&?{1Ak(1)>skR}*y2hEjhYRX3M6R2Izr3+O6()xX zdh&g4W@7LiQAs$$RzgqAm@6h;Lkh^@vYx%FG+G`%MBMd%Dc>ZzqF)d7&Q3Bpu z3;)Pr9!qeR-maY+E;~_j;YowR;_&w~1GHZur{Bc9wRRTFrro|}YWO|A_D{cWZ}ddI zPhEbnyXMI@3-wsE<(4TGt4jMnRu}?R7PFg!_x|E#VAy57uPg6cwCDyMMEjN^T;O=HgnsSH3 zi(bpSnTZ1DBj8ce$&U)1TyWNoFlonnua->*CDn*StY0+CuJc*bA4iR zs(4w3B2F6^(=RTMQw2rL7HjpKR0zRuXu9+DLtJBL@IafCRS&b>XstF}`sIwn5g~bU zX%-cQtJ(HdQJuvjmr&&FZ9=YG(Pu)Q!V&C zFF2-RPxSg$x@HkWeK~slrc2~v2keA{M~_7TGknE;owIK6W`+I2|41f6IpyH!BdS|e zHMt_gjMt_2%5ue7u*dT64Hq}_KbvAACab&QBIB!FVs7SYFIt_|D$d>RK5#!R4EZvA zjGAe&UQI~X>A|*c-TIxJpNTKyi@o|TxHXhv$?qAuKDQ!t?tAF(4HeGP<}RUsiO=@j zUV0~NvpM?Tw*WVjx^vbrjp#})-Qv@HKq>;q8;2^ybBlxyCX0=}8jJnxDPq2pT#~9@ z5TOh|IJ;3|WWG5Zu=zb))?#myf7bKOyYIht_?7^m23uesixMh3W@vL5X6rm5Hs}pC zF4!=MCF#m<^Xx5`vtGr?T~*k|&(k52jZx{${kPhAF3pGfGlF3fb!yi=upH zC#1Lld*k;?8DTh}*qtt$1Dh;nLei?-tQi5=BKv`z*Oc zlt?jEb{lYpI~d;>Sxc2&W!oELsjY`I4yWCfQ^7rIMxIG7mZ%{?P#@wmh-zgyv#fJc zE+>z=r+VCR^efXod+j~{LIB=AB=WA`How=4r_9L%Sc%;qupnk)~t$~Y8dc~r5D($6HJ%i8uYfj`qj7mcX z>5se~yZ)UwEYCt*JHpQihI~}R=61No90fA<-v-;=Gx2(IS{RZy%2vKWwVY*@2vfoc&U%l>&)r}|- z{^9)(c&eR+N4k{XqB_j=up2u9=vkM^kH-c)fxH`m{p|9}{Z^tiwR#9Dr&VX2yFB_K|@3NFLHe|U+ojw&}or`2#;x2k9(Htr!y%v6w{%$TowNs=C|K1w*~rJ?RJyq zz`%w3 z57do-gJs{|T97G`IquqNTK@W>TM!|wa$`fYJsB13Tr4@y+mMn!X>u9V9Z?f!P#th^ z;p9-mr@AJCn(!wJKI;vin?Aj?B>h?N6MOUdHWNg$6+k_`{!4C%_!!r>Y8#qX^7WGf zRR5hfmP`yw``pC;ZQP`l5t_Mk>%OYd>x%T{$OjL;`AT%w7QRP5wTS$&c*W?|QtZ{( z^*3XC3em=;MXCJ8)^r1_&H{AJZQRV3>sY*-OO2@TG`X z!UUi&0{fW)3S5D&g?n3P`ALPASPXx)aO=mIU_(Lwv$MNT&O(X{L8FCcET9F>TKs&A z_%T@{If7yY0Xd8}x@4^+KV-^j(RBc7V?5Uy6HF)r8bt|)Odw9^GfvJI4QV~l1HySr z}UJuI=A58GE)& z89Od0L2;bSu|#;+J9^%bE?oPewC31qxy#0IsrnjYhNZ0*tX5flD{%(l!!O|WG{K@# zM5WFba->-GsPaxqS{IrzKAWa?MOi(nSbe@{ysPzly0YfoV$A|&t*D0rPn5OmlmTTE zpM@CRW+Y*jWa4kdf?{PNX_tsUdz@<$08 zi2!t3Q4^-{zg>a>*-C;JZ_FiFdUL0_Ko!V?-NVY`Smhl9|7X3bE}u$WMpa#Zmbxxa zJ${&P$!WEedmyefWRysiu5OmejTgJbhP1_N_5fut&6c$U4YOvs5w;j8fiTsqRnLx1 zOt2&gpo!Guf&vox@#-74C~UL*E&zQ_5IMzG@Qz1v0BBOP#uQs@R{*g~Q6U0ks#{GQ z1c7pFRSkP{*8+cCwE)BN0E?efRlvEwtp>XS*h=aF4Z%N=g--jYtmF7>zQ!fz(|jZ@T2PCYBQl)fuUE_W5NPsu2)3IRm3Q(UoWq? zt~?`ATk&5_;Qrc~(0%GRK2^kys>l6Qzdl$I_dD=rU7)y)fF=v5B3MTJ`7m1Q{Gpm= zk1Kfe4T8B;vtm6}m}zCR0hAeGuQ%fr00PJR5-dxtP*|#LW4sDBUcyXZKgmjDL=d^z zDnA8~XcXKhWp!`_e;5!C!!#o?&2k!oQkZ7lOC=_3itsRT@&Lc;wytKjVO6$8Ri5L8 zxp9Kd?*BqhCb`9QGyiH-@V(pR`lST@GPTt&MYd{VhHX@fDS}DFxwSIjPazxg5&yj> zep}QP0QR(XO}<%N*SA=S%TkMgvhUI{5gX|r@MK0iKRWTI`rY8?Vkt2PSWS#8t(UF>mW znpy|cWdpQ#0b-P9QMP~>NdU=-r~3;a%mlpso5gMbWxDvy7-AwUM^J2+f|aw9F|(2( z320*l#D)dY;sg<_6^fA{dr3qF@XshfV|K7*Zeoi;e!H(u$IlcKP^$sY7g_dFIdT9>* zWPWzklIz>A@MJ*kiOl@Dp}RWIRuzZf-yVO_{B&x`<jmt3HU98fKh zipEYua;yw1(Ylm)HpCurVtKR<$heo$B5dDXJXixFkvOFD=cS(`q`>YJy9^vRciiTH&G@U6oZ`>X?=AMcRCpUC1YGl#pt<;(OPmE=*2GZeu$uLUHQdwLRT~XaE$7IpoyhQ zg3@BM@g{H_^sTq1P-PFu*rh7VT{T9uL2C$R)vjhjRBZ%EeV2N^KEsR&w5YWf+XWi$ z0#(}Zl8lza0fMIJ7b4w#8!fHoxdoPTKorSZ%?oJZMb+3P7}vU53|Wi2o9L5CJrm^yHwLIviTW~ac!tc7r~rzPH%y_$RHdLO4MMq z8fG50Xr$gXw=%4znt2frUIHp|1W~VM6X!$u4OILT!IWzydal)Sk-)l4+A)4=WvD8k zpvqCg{Oyi#u8R=Z&i}RDrz+mkinCS{0$O+{D3Mw$OaFO9%QD`d=+UB`-16^zd6Ax+ z5lS$i0KM!##@pUWs>;?UM;f`b8fbiZVQX+Az`*-IgT&y-%+N?z0q@S>U&(C-XZl~B z`E1}b_R?p@z<1@P?>B?ax4%yFYe*u7ev{*dyDxFx37AXvtIx_w(Z>#MQiTzMX{C(o zl?2OS>H%;5nCVlZ3snv3Pwd(yD0vB}b^SZJ6=K**jTf<>Mc7xXry^&dmMfsf#UmVA zFHho?7}k=cgw{5;t>v_W>V`raeqWEF8p&E|k)s*jD!WUSn|)NM5bgNRO0*4c;QU9S zI>Az05S2@n-Zez!Zon@CQCz$ziz;{S5B7T$f@Cd^F;K`&5No6CXCz#I`btIIN<0^6 z$^~fV0%b@EVS&*~=YS|xE3sUHm|UxDE>$caFG^}L(I7-jw#4dLAJG$3>k+gdT8(br zK6*ser4W}|QJ?x0w|%)>N-sgoOTgbCK3I_;p>HLhOLeeoHW~imrfWd*X({i-V__#N&JH*Fb*vPl#&GR`LB?5(p$#@QluXPq5FlsK}IjFPD6Y)QVCJxcb-7Lw$C ze*eJd^Y}bI@Av!jdB4Wd9lw^0%tv~yr!X-LVyUAn^1u^i$@3A zgPw!oSjHn>wjYSVg|S)Di*mnv!>0}N0IsmdT^Nj4Ii*MA;u0pb4+}BuRv7;CW%Y?R zYd=x$2?n-_5rTzsjRLElbg66tp|Ww?eDqufZsuI<&L#k!e||uxXhyeRNE%rxBXCUUwz;Heil>+P1)Us)_I``887e+Jk#OUUO{MJKlS1bNDw&Y!caEcZEKvUvsPn zW6Uj|b*|6F4_)A&*}M1kCI9Y7+1Gj5Juce#*4b{!)4eAPr$CX**b%Yh0^A}P9!6lw z>Qr{pRxXbZi1QHQ)>8DqZm7AX{9U2>VnsGF8iW{FI#G8=SrtoEsf}01cf7g88OZkG zVo|2lCQy^_cHD!J;+UOX4%R#rB-7uEd2H&JS+RQBz`JiR@)N8chR3+g$%>J3HSWjA zj%8cINl7YqwXV9Y4$W%#3O%d6^k+vvR7_5`F*LWEUqwc)DJv&_C$&{esm98k6wltS z<|XVU#rlkfRg~YHeEHtuWr{?|t*L*{@>YMy@oCCg3t5ATl_fXVmanx2-BSN}9|+;R zQGj>tBC&|sI32sVN1sslB;@OEm1=b!*hehaTMFqNFW8Uj@064qHmW~8ncx;sZ?FHm z62J9mXMytC^W)Kbu85uKW+H^E{rLL)LRU7u%i3*0~3)0a=9cDOzdcX$mc2^ZX~Qb^-W*MAx{oUQ*f=B%-*u2mR6`#!Cx##Om*KcIyiOmQzC8k4}AIx+88Zx(ZRKZc_8)5X_2-VY=Le zT{*iWf?6wohIp_4k{)Rh*vwL|(C%<;-E8LgYRa2al#>a??ApuF5)KoK?Dp|(p@27& zIPE=w6P&!ER@&)vG5)*$hqrAUT*E8{ijzemO1OXh5#x7tE59PpxAp{5qQ2;~rOhMM zbT~c{HyHlu9?$D!TbrHv&t-SE*CFVKVY#HD@wN3|O4{o$Ct4<=E?xf^WV<{zu4;BO z;Enn}8qdgVJd3H_{5&cgp<+@Q95%esjH&AV`HIbKCPR69a`C~&0Ym`!Yb3w^o6>tW2pfDe+PzXE<7d5x1y9WTdSUV7x)GdBJsXV!Zt zR{d0L%>pyzu<^2WdwQe3L-CWLLr+A2!0;|RDDVDJkILrT`Ao;{*7drXKu254+h5lz z-+L_>d~MVL37%9cJr!eH`E08C;KdbZhbwAt1iral=K7)XSH4Bg#8by9SXKFlRrA*{ zcUagU7wuQ*05Enuj*<#gb_=|V zpV+h0am9YNoTx7T>5OICT!; z$1S6!D8ImxU7&N`M(bWNVCF0CN_q4Arl*Me0!L#(PsY6L9o19Ep55Je6!s!N--qI{ z?Y?*5y6lXAuuI!c&069-c=p$iAM_6%>8Wiux*%Z;QhIwS>sY)6$IbIZd2r@Wmaq4g z7HNx@gf18wa;BS_`3p&_H!5oeLtZ797 z^y|rZKYeO}(@c@eTQ&d8k*Mxma<^zR#>m7i`GO;>TAds`{M4Oym@=!@UuYH!wtTX` zE_$WI_hT$V-nHAR_y^~d_7+x~XG^J*!N5>1tUQr7gi3e)Oo*fgqnF3*b4`3(>3*9**Yq|15UwVfqVmlm!Ze5qUwa~+LXO1oZK$b~u&HRZh(55l}cAoz}&!z5O z(Z=2AFE?0Yng^SIHpIr-c>S86qBd7qXPVUB(wVV+h~sPs8@Sz}$UD>4{n@Nw?6dn6 zN#vu)k$(hptrzh2qzcn-|AsbpH}jhg-3t%V(U$|^_J90vH!#v>(wz^*?4NtFn%aK3?wRR1Qw^tX*J(D)&fx zT_qLrdD;uvYki8gkaraMBJ!f3yMT8;|08U{rx^D5W?e(dtyAOdy-B}c2EURFop@0X zxd+6?q3F=on}2dXx5ug%2mqgdu+Z}3O(oESWXv-GX;nNDVjt%Bnlaq zZJMh-(f(b0gjRQ9GT!x=xnUj=6BdAI$W>if%fyPS|9jxTzA!Umr`Ylf@AtxBaV+sT zO7!ZUp9B8=(ho&aeNcJwU79;o33`{QS|jS7|?JN{rUTa^EvJP)U=}0D$3IC z&dUaSg)SbPW%d1R{gd>R=8nwF`p4^U5`A~+p6$LS{k7qJu+@iXWMb5zSpEXin@pTq zBgeJX1JZ3j3mu(_ccW#}nKo%%7p(E5d)0G%9xyn8D0belwELfcO(}G^^Ps@wP`dt5 zT?Xm4BOob+YTAM)Rq#v(Y1>>`n44RqBeJGmK@Mwif79HjQGxKm4oo#}b9Qd=h=8nv zBmLoUhxosNOMhLq5aTNX>_T%Ym;YsA{yg6Lhh~5)Nj{Us{Ma=+INIT^p?nzz!lfVZ zQ*m6wWxrhD2VjpayJ|w+PfI}1?V=?CYT^e6kW>DP*2bi_%Xwh&8r??Eq^xW;C>%bu8bsf zs`TTd-Of$y<9r>i+g^2E!3s`2T#XEDq@MRtZb+I0Oe@6PFgeLfr;^K4S702(R=@0d z05m|{>?}4%Px`al(rb~|$Fk(O3Z=Q$JNSR-7~a)s;d$2o?koGhWs|51Zu4}H8b8*9 z+DA2O&l!T#a&=i$FgKEW*kUj|sXcyn{uiB>yK{T?(!U6mR9sBcwK)?)%QAZ??zgv+ zL*%8sU&(KXalDqD@@}N0iHR-MU);DFxi1I#d}R~$et2JO8E9$H`+=|PtzSh=nGbAF zzv#H%@{GtU+#xVq%H=YzD!I+oJ(?`X%f+BBKe@vcm zV%|Wa3E`^&Yufd=XTAGL%BMs=Z&BN1U9Ghx@x&0EfqU!4ZuKNxdG;!St3=LJU3m)` zG^)wT!I0o3dI6bhCpda>njWdUh^Bdac&(&1CoGHop!OB8aI=K!=+ftFN!Lf~pjC*R zdcCPDRnmr|AuD}OR$(#8=TWwlSReMb12M(ar2CmxTHk+#ih2YeUu#?wLaz{&m-h8n zfV`0EEm)4Bw_)&EDc@Z@&n}r$`n;~YgH_syVIhvwTs8+FvKhmQ$FS~6YY0zPje!w~i6queDm?UDBT+xC$H~2az zl=+!);*)Wr_IbsS9n6770`a5VW=BhhQ59^}7kOLGtpnVRCCt7>kj;3aTt>De znS?-Jjayw=&*n`84!L(JoObi9DnNdA;x*|~wsBWh=~8}qBCnqiirtmVj>x*-!Gb4p zL}{@$yK;yF<+tZJqFq^sOW9gVxn$;9Pdixg^Q=Z)EdDx*DiNqqaTOyDi*h0KE`Vt* z#bUsKKgU&mpk9B17jS z!3IPTHv-GJtJH@tupBaC5`)0c!N*HcMP#N|L}e6+>xd$7x0AiPjA{DkB{wqTB!(SN zW~|0Ar;&MTN?*oxMigeU6XMvb=^&3$Xz4PhA^@bC$esg$Gzp^bb;6S7nWa%&%tDbb zT*HGkqh?ZnERmrn9T$2ZN!E~=MBgIZ1eso8?mX1wG%j^CDgByCK<)w&AHwbG1bJnU zc4u_~H^rUKh%D2O*o|Gor5-?Q$cVwx*w+Nyqiz9*2e68$_D)`CA=ab1YWqq?#R&w(r5d21AC;FYc5G#goHKzAz0^Mymk=cnXK~185nU(V!IiGl0Juz*b$#h`KYX zGS5&$0F7fhib@afM)Gf#a&%3gb}<+32|`l|5fvSL=|W7C^UUukk*{6(i*Qo!DC}+o zg9XkbZ=c%Dgl9&ch%{!^GAcH3?;J=Nfut67+? z-QdL)ru-aG}Oo)?tpTqON=vh_c^>ia!)Z;14XOg&4Lq`6(Ed28s%z zPdrtSc@UG!1rt!Tw}NV0eyc^zk_BeTsHG03SAf;Wg!6|lJ|jYxDC{fq@UtxeDlYU- z3j($wAxmT*Eakb{%#&q1zB!M1Rm#llDv-;?HVEX;nd_t_l`@^q!*%Q>r#l$m5wgD! zc^;FYvqYZ3Ii~SabPJh>VL_l;@Cdan5NCUFAx`W_u%J-$WiS~vC{$11QG9da@fQG_ zO(q}t%Vq9Tom4^IKt-lGSL7?QbW+bv*gO7~(%8dNo}U27xNcn#gB`=be+YU-*m(A$ z3e!N`OT9uC7iDoPuwJ)3*&{S3>vIPh+K75l|ISh4(dWE^`1h@UTRU~-wB3=~pZC=L z3v*bW>mQ~;>USj>eN+M92n=6cDc|tCYIi&@dnuya4eSXN;Dq|0Ons4dy;wdk_LFiM z1{0{pl~LaD0P-}MmzlmMbL&YsS4-5EJHYUXAy6 zi%v3Kk!zVh;|oSAN(y1M1eiNRrEYty_`uv1|9k5btmz$$OUzMR4MTtbn&#E&Vq#E{ z@>K&Y(xs$YQ^nbg`6@1Q!{R^b#aH$jqRL^F;@^eQ{Xz!ArI=G8O+7vIf{@&gd9+^~ zKi|GU6A{x?I5j8qLobQPM@!dllUwDj0Bss*G>vga>qrWA^W8Pjr~&dPMtan?jei32 zJ52GF1GNZWFXqf~UmTMD?(w%<)IeO=VD>y2hA|xG(Vm{?AL`*BO%x3gow?LKz30wf zEbYkH>84MTzbW>w`D|ID=tTD@w>tJ{M488q~x$^$fqZYlk@+T8!_E}OShO; z`>AN{38@>y(@e~=dv1ExX`lL6qhe)j0px>Py$ANvm8rd9Kp%`g=&alHv=Xs?{F2XW zd6^a`um0Ic3#wHBWBOTz1;H&cT5$Qx9T+mMQ zla>Emt0%xSpfCN!>_)M1;Jt3)K2I8~R{_dewD!5(?aX*?CV$RS

*V*<6odkOe4 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 tFOW*ix@0bj)}T;Vl;9Tv)&Jt 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 Cp-l7u literal 0 HcmV?d00001 From 1a8e67d5edbcaaa86bf2ceaaeace4a5c0cf01d33 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Tue, 8 Aug 2017 02:19:10 -0500 Subject: [PATCH 261/318] Update README.md --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index a081df7..f50a633 100644 --- a/README.md +++ b/README.md @@ -160,6 +160,9 @@ A graphical representation of the RDF for this structure based on `igraph` looks +To generate this RDF graph, please make sure that you have already download and paste the "AssociationLibrary.txt" in your current working directory, and using this function `sum_str(graph=TRUE,UserAL=TRUE)` as follows: + + - If a child entity has multiple parent entities, please manually input associations in this structure: associations=ID. for example, if your breaks are as follows: ``` r From 5f780a50535913b308f758945645cafd6afa29ab Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Tue, 8 Aug 2017 02:20:17 -0500 Subject: [PATCH 262/318] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f50a633..efa753e 100644 --- a/README.md +++ b/README.md @@ -154,14 +154,14 @@ Notice from these examples that: ## YourProcess02 {ProcessID02 provone:Process} #### ``` To insert semantics breaks, you can follow this: - + A graphical representation of the RDF for this structure based on `igraph` looks like: To generate this RDF graph, please make sure that you have already download and paste the "AssociationLibrary.txt" in your current working directory, and using this function `sum_str(graph=TRUE,UserAL=TRUE)` as follows: - + - If a child entity has multiple parent entities, please manually input associations in this structure: associations=ID. for example, if your breaks are as follows: From 90fd1f6c3ef97b4fb1d83e1cee6d82fcd6bfcdda Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Tue, 8 Aug 2017 02:24:18 -0500 Subject: [PATCH 263/318] Update README.Rmd --- README.Rmd | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.Rmd b/README.Rmd index c54ea0a..db8163e 100644 --- a/README.Rmd +++ b/README.Rmd @@ -188,10 +188,17 @@ Notice from these examples that: ## YourProcess02 {ProcessID02 provone:Process} #### ``` +To insert semantics breaks, you can follow this: + + A graphical representation of the RDF for this structure based on `igraph` looks like: + +To generate this RDF graph, please make sure that you have already download and paste the "AssociationLibrary.txt" in your current working directory, and using this function `sum_str(graph=TRUE,UserAL=TRUE)` as follows: + + - If a child entity has multiple parent entities, please manually input associations in this structure: associations=ID. for example, if your breaks are as follows: ``` r From 1a6308eec3169d8b38bd96aa306432611358566c Mon Sep 17 00:00:00 2001 From: "John S. Erickson, Ph.D" Date: Tue, 8 Aug 2017 09:45:28 -0400 Subject: [PATCH 264/318] Refined Introduction --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index efa753e..8af7a49 100644 --- a/README.md +++ b/README.md @@ -21,12 +21,12 @@ README # Introduction -The `strcode` (short for structuring code) package contains tools to organize and abstract your code better. It consists of +This special version of the `strcode` package (short for "structuring code") contains tools to help you organize and abstract your R scripts and to embed semantics according to the [ProvONE Data Model for Workflow Semantics)[http://bit.ly/2eOUuAX]. It consists of: -- An [RStudio Add-in](https://rstudio.github.io/rstudioaddins/) that lets you quickly add code block separators and titles (possibly with unique identifiers) to divide your work into sections. The titles are recognized as sections by RStudio, which enhances the coding experience further. -- A function `sum_str` that summarizes the code structure based on the separators and their comments added with the Add-in. For one or more files, it can cat the structure to the console or a file. - - `sum_str` function can also structure code with embedded semantics, and generate an RDF file and RDF diagram automatically. - - Users can define the association library by themselves for `sum_str` which contains rules of automatically generated associations. +- An [RStudio Add-in](https://rstudio.github.io/rstudioaddins/) that lets you quickly insert code block separators and titles (possibly with unique identifiers) to divide your work into sections. The titles are recognized as sections by RStudio, which further enhances the coding experience. +- A function `sum_str` that summarizes the code structure based on the separators and comments added with the Add-in. For one or more files, it can send the structure to the console or a file. + - **NEW**: The `sum_str` function now can structure code with **embedded semantics** and can generate RDF files (N3 format) and visual representations of the RDF graph automatically. + - To assist RDF generation, users can manually define the association library (relationships between entities of various classes). `sum_str` has built-in rules for automatic property generation for `ProvONE` entity types. - An [RStudio Add-in](https://rstudio.github.io/rstudioaddins/) that lets you insert a code anchor, that is, a hash sequence which can be used to uniquely identify a line in a large code base. + +The animation below shows using `strcode` for basic code structuring. Embedding semantics is similar + From 0894081c8c14a007fd1a80849c9847d686a76e02 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Mon, 11 Sep 2017 14:58:46 -0500 Subject: [PATCH 267/318] Update sum_str.R --- R/sum_str.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index 62086bd..501bc63 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -664,7 +664,7 @@ if (rm_break_anchors) { line_rdf=paste(line_rdf,";","\n") title0=paste0("\"",title0,"\"") # add title as rdfs:label in the output file - line_rdf=paste(line_rdf,"\t","rdfs:label",title0,";","\n")#,".","\n") + line_rdf=paste(line_rdf,"\t","rdfs:label",title0,".","\n")#,".","\n") } else{ line_rdf=paste(line_rdf) From 4169f3dcc5642df3c58af437b2589949bc46b8b6 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Mon, 11 Sep 2017 15:01:54 -0500 Subject: [PATCH 268/318] Update sum_str.R --- R/sum_str.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index 501bc63..6c9042a 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -698,7 +698,7 @@ if (rm_break_anchors) { temp_line=paste("\t",temp_line,";","\n") } title0=paste0("\"",title0,"\"") - temp_line=paste(temp_line,"\t","rdfs:label",title0,";","\n")#,".","\n") + temp_line=paste(temp_line,"\t","rdfs:label",title0,".","\n")#,".","\n") } else { if (nchar(temp_line)>0){ From 08358c70062be2b619b8690cd6c6c46e841c6a6e Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Mon, 11 Sep 2017 15:04:16 -0500 Subject: [PATCH 269/318] Update sum_str.R --- R/sum_str.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index 6c9042a..501bc63 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -698,7 +698,7 @@ if (rm_break_anchors) { temp_line=paste("\t",temp_line,";","\n") } title0=paste0("\"",title0,"\"") - temp_line=paste(temp_line,"\t","rdfs:label",title0,".","\n")#,".","\n") + temp_line=paste(temp_line,"\t","rdfs:label",title0,";","\n")#,".","\n") } else { if (nchar(temp_line)>0){ From e04f1397fb6a4e74b94a304db739e28610815d9e Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Mon, 25 Sep 2017 23:33:14 -0500 Subject: [PATCH 270/318] Update sum_str.R --- R/sum_str.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index 501bc63..6c9042a 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -698,7 +698,7 @@ if (rm_break_anchors) { temp_line=paste("\t",temp_line,";","\n") } title0=paste0("\"",title0,"\"") - temp_line=paste(temp_line,"\t","rdfs:label",title0,";","\n")#,".","\n") + temp_line=paste(temp_line,"\t","rdfs:label",title0,".","\n")#,".","\n") } else { if (nchar(temp_line)>0){ From 96f7d8d9b03c6951db4b06be5e6b2d0ed6d8986a Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Mon, 25 Sep 2017 23:59:18 -0500 Subject: [PATCH 271/318] Update sum_str.R --- R/sum_str.R | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 6c9042a..1dc74ec 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -534,7 +534,7 @@ if (rm_break_anchors) { "\"provone:Process\",","\"provone:Visualization\",","2,","\"provone:wasDerivedFrom\",","\"provone:hasMember\"\n") write(DefaultAL,file="DefaultAssociationLibrary.txt") - nodesnames=nodesclasses=nodesfrom=nodesto=nodesproperty=parentclass=property=line_rdf_vector="" + nodesnames=nodesclasses=nodesfrom=nodesto=nodesproperty=parentclass=property=line_rdf_vector=title1="" templevel=parentlevel=parentindex=tempwordlist=0 levelvector=rep(0,7) @@ -543,6 +543,7 @@ if (rm_break_anchors) { AssociationNUM=firstmeet=0 line_rdf=classeswords="" title0=infolist[[j]][2] + title1[j]=title0 ID=infolist[[j]][3] parentlevel=templevel templevel=infolist[[j]][1] @@ -697,8 +698,8 @@ if (rm_break_anchors) { if (nchar(temp_line)>0){ temp_line=paste("\t",temp_line,";","\n") } - title0=paste0("\"",title0,"\"") - temp_line=paste(temp_line,"\t","rdfs:label",title0,".","\n")#,".","\n") + #title0=paste0("\"",title0,"\"") + #temp_line=paste(temp_line,"\t","rdfs:label",title0,".","\n")#,".","\n") } else { if (nchar(temp_line)>0){ @@ -715,8 +716,8 @@ if (rm_break_anchors) { if (nchar(temp_line)>0){ temp_line=paste("\t",temp_line,";","\n") } - title0=paste0("\"",title0,"\"") - temp_line=paste(temp_line,";\n","\t","rdfs:label",title0,";","\n") + #title0=paste0("\"",title0,"\"") + temp_line=paste(temp_line,";\n")#,"\t","rdfs:label",title0,";","\n") } else { } @@ -820,7 +821,9 @@ for (i in 1:length(line_rdf_vector)){ entityname2=paste0(prefix,":",nodesto3[tempnumber[j]]) } if (j==length(tempnumber)){ - line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nodesproperty3[tempnumber[j]],entityname2,".","\n")} + line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nodesproperty3[tempnumber[j]],entityname2,";","\n") + line_rdf_vector[i]=paste(line_rdf_vector[i],"\t","rdfs:label",title1[i],".","\n") + } else{line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nodesproperty3[tempnumber[j]],entityname2,";","\n")} } } From 1fd2c048beca3f6ceb8965777d5bc235abfc89af Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Tue, 26 Sep 2017 00:17:34 -0500 Subject: [PATCH 272/318] Update sum_str.R --- R/sum_str.R | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 1dc74ec..40c9bd4 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -539,8 +539,8 @@ if (rm_break_anchors) { levelvector=rep(0,7) # get property of association by using parent entity class and child entity class automatically - for (j in 1:length(infolist)){ - AssociationNUM=firstmeet=0 + for (j in 1:length(infolist)){ + AssociationNUM=firstmeet=trigger1=0 line_rdf=classeswords="" title0=infolist[[j]][2] title1[j]=title0 @@ -686,6 +686,7 @@ if (rm_break_anchors) { # if the manually typed input is an association, add this relation into nodes data frame if (tempwordlist[[1]][1] %in% Associationlist) { + trigger1=1 nodesfrom=paste0(nodesfrom,title0," ") nodesto=paste0(nodesto,tempwordlist[[1]][2]," ") nodesproperty=paste0(nodesproperty,tempwordlist[[1]][1]," ") @@ -698,8 +699,11 @@ if (rm_break_anchors) { if (nchar(temp_line)>0){ temp_line=paste("\t",temp_line,";","\n") } - #title0=paste0("\"",title0,"\"") - #temp_line=paste(temp_line,"\t","rdfs:label",title0,".","\n")#,".","\n") + if (trigger1=0){ + title0=paste0("\"",title0,"\"") + temp_line=paste(temp_line,"\t","rdfs:label",title0,".","\n")#,".","\n") + } + } else { if (nchar(temp_line)>0){ @@ -822,7 +826,7 @@ for (i in 1:length(line_rdf_vector)){ } if (j==length(tempnumber)){ line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nodesproperty3[tempnumber[j]],entityname2,";","\n") - line_rdf_vector[i]=paste(line_rdf_vector[i],"\t","rdfs:label",title1[i],".","\n") + line_rdf_vector[i]=paste(line_rdf_vector[i],"\t","rdfs:label","\"",title1[i],"\"",".","\n") } else{line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nodesproperty3[tempnumber[j]],entityname2,";","\n")} } From 50701bad8bbb09476e8ef79a21978a5b03218e62 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Tue, 26 Sep 2017 00:38:07 -0500 Subject: [PATCH 273/318] Update sum_str.R --- R/sum_str.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index 40c9bd4..ec634ca 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -699,7 +699,7 @@ if (rm_break_anchors) { if (nchar(temp_line)>0){ temp_line=paste("\t",temp_line,";","\n") } - if (trigger1=0){ + if (trigger1==0){ title0=paste0("\"",title0,"\"") temp_line=paste(temp_line,"\t","rdfs:label",title0,".","\n")#,".","\n") } From afdf970ac2cc5ccf1417d02f373b2d9f9949afb4 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Tue, 26 Sep 2017 00:44:10 -0500 Subject: [PATCH 274/318] Update sum_str.R --- R/sum_str.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index ec634ca..2080a58 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -701,7 +701,7 @@ if (rm_break_anchors) { } if (trigger1==0){ title0=paste0("\"",title0,"\"") - temp_line=paste(temp_line,"\t","rdfs:label",title0,".","\n")#,".","\n") + temp_line=paste(temp_line,"\t","rdfs:label!!!",title0,".","\n")#,".","\n") } } From 93d29854127ce680c28d486cb6e81d602cff8fcb Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Tue, 26 Sep 2017 00:45:21 -0500 Subject: [PATCH 275/318] Update sum_str.R --- R/sum_str.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index 2080a58..c958901 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -826,7 +826,7 @@ for (i in 1:length(line_rdf_vector)){ } if (j==length(tempnumber)){ line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nodesproperty3[tempnumber[j]],entityname2,";","\n") - line_rdf_vector[i]=paste(line_rdf_vector[i],"\t","rdfs:label","\"",title1[i],"\"",".","\n") + line_rdf_vector[i]=paste(line_rdf_vector[i],"\t","rdfs:label???","\"",title1[i],"\"",".","\n") } else{line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nodesproperty3[tempnumber[j]],entityname2,";","\n")} } From a0516e4b87ccddb8b0f968780411ea0589495a55 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Tue, 26 Sep 2017 01:07:25 -0500 Subject: [PATCH 276/318] Update sum_str.R --- R/sum_str.R | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index c958901..04818f6 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -535,7 +535,7 @@ if (rm_break_anchors) { write(DefaultAL,file="DefaultAssociationLibrary.txt") nodesnames=nodesclasses=nodesfrom=nodesto=nodesproperty=parentclass=property=line_rdf_vector=title1="" - templevel=parentlevel=parentindex=tempwordlist=0 + templevel=parentlevel=parentindex=tempwordlist=esci=0 levelvector=rep(0,7) # get property of association by using parent entity class and child entity class automatically @@ -700,8 +700,9 @@ if (rm_break_anchors) { temp_line=paste("\t",temp_line,";","\n") } if (trigger1==0){ - title0=paste0("\"",title0,"\"") - temp_line=paste(temp_line,"\t","rdfs:label!!!",title0,".","\n")#,".","\n") + esci=paste(esci,j) + #title0=paste0("\"",title0,"\"") + #temp_line=paste(temp_line,"\t","rdfs:label!!!",title0,".","\n")#,".","\n") } } @@ -814,7 +815,12 @@ g3 <- graph_from_data_frame(nesting, directed=TRUE, vertices=nodes) E(g3)$label <- E(g3)$property # append manually type-in information to each entity +escj=strsplit(esci," ") for (i in 1:length(line_rdf_vector)){ + if (i %in% escj[[1]]){ + line_rdf_vector[i]=paste(line_rdf_vector[i],"\t","rdfs:label!!!","\"",title1[i],"\"",".","\n") + } + else{ tempnumber=which(nodesfrom3==titles[i]) if (length(tempnumber)>0){ for (j in 1:length(tempnumber)){ @@ -828,9 +834,13 @@ for (i in 1:length(line_rdf_vector)){ line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nodesproperty3[tempnumber[j]],entityname2,";","\n") line_rdf_vector[i]=paste(line_rdf_vector[i],"\t","rdfs:label???","\"",title1[i],"\"",".","\n") } - else{line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nodesproperty3[tempnumber[j]],entityname2,";","\n")} + else{ + line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nodesproperty3[tempnumber[j]],entityname2,";","\n") } - } + } + } + }#else + } # convert %20 to space From daf6b9e4800acb451b139a4f86117c2988c8ad3a Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Tue, 26 Sep 2017 01:11:27 -0500 Subject: [PATCH 277/318] Update sum_str.R --- R/sum_str.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 04818f6..9e5f87c 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -818,7 +818,7 @@ E(g3)$label <- E(g3)$property escj=strsplit(esci," ") for (i in 1:length(line_rdf_vector)){ if (i %in% escj[[1]]){ - line_rdf_vector[i]=paste(line_rdf_vector[i],"\t","rdfs:label!!!","\"",title1[i],"\"",".","\n") + line_rdf_vector[i]=paste(line_rdf_vector[i],"\t","rdfs:label","\"",title1[i],"\"",".","\n") } else{ tempnumber=which(nodesfrom3==titles[i]) @@ -832,7 +832,7 @@ for (i in 1:length(line_rdf_vector)){ } if (j==length(tempnumber)){ line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nodesproperty3[tempnumber[j]],entityname2,";","\n") - line_rdf_vector[i]=paste(line_rdf_vector[i],"\t","rdfs:label???","\"",title1[i],"\"",".","\n") + line_rdf_vector[i]=paste(line_rdf_vector[i],"\t","rdfs:label","\"",title1[i],"\"",".","\n") } else{ line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nodesproperty3[tempnumber[j]],entityname2,";","\n") From 26b4bc4b0dc0adf019fc2e005b6245e40fbffd54 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Sun, 15 Oct 2017 00:48:30 -0500 Subject: [PATCH 278/318] Update insert_breaks.R --- R/insert_breaks.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 43de7dc..7f24a41 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -285,7 +285,7 @@ give_breakchar <- function(level) { switch(as.character(level), "1" = "_", "2" = ".", - "3" = ".. ", + "3" = "\.\. ", "4" = "... ", "5" = ".... ", "6" = "..... ", From 14f48d3bf4badce242fa469067a764ff783eeef2 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Sun, 15 Oct 2017 00:51:50 -0500 Subject: [PATCH 279/318] Update insert_breaks.R --- R/insert_breaks.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 7f24a41..5717cd9 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -284,8 +284,8 @@ help_create_title <- function(start = "##", give_breakchar <- function(level) { switch(as.character(level), "1" = "_", - "2" = ".", - "3" = "\.\. ", + "2" = ". ", + "3" = ".. ", "4" = "... ", "5" = ".... ", "6" = "..... ", From 15a0ca553cf0567159ac29b84ef4d656e71bf828 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Sun, 15 Oct 2017 00:59:37 -0500 Subject: [PATCH 280/318] Update insert_breaks.R --- R/insert_breaks.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 5717cd9..cacba6f 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -285,7 +285,7 @@ give_breakchar <- function(level) { switch(as.character(level), "1" = "_", "2" = ". ", - "3" = ".. ", + "3" = "..3.. ", "4" = "... ", "5" = ".... ", "6" = "..... ", From 887d8add5b6e7c9ad74464acffd0959b80e9efdd Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Sun, 15 Oct 2017 01:00:52 -0500 Subject: [PATCH 281/318] Update insert_breaks.R --- R/insert_breaks.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index cacba6f..5717cd9 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -285,7 +285,7 @@ give_breakchar <- function(level) { switch(as.character(level), "1" = "_", "2" = ". ", - "3" = "..3.. ", + "3" = ".. ", "4" = "... ", "5" = ".... ", "6" = "..... ", From cfca1bf66e8fe933bcf96743d4fd83b115e3ced8 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Sun, 15 Oct 2017 01:03:01 -0500 Subject: [PATCH 282/318] Update sum_str.R --- R/sum_str.R | 2 ++ 1 file changed, 2 insertions(+) diff --git a/R/sum_str.R b/R/sum_str.R index 9e5f87c..1c347cb 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -815,6 +815,7 @@ g3 <- graph_from_data_frame(nesting, directed=TRUE, vertices=nodes) E(g3)$label <- E(g3)$property # append manually type-in information to each entity +if (length(esci)>0){ escj=strsplit(esci," ") for (i in 1:length(line_rdf_vector)){ if (i %in% escj[[1]]){ @@ -842,6 +843,7 @@ for (i in 1:length(line_rdf_vector)){ }#else } + } # convert %20 to space for (i in 1:length(line_rdf_vector)){ From cb903ae70d6b72cb2a081dc70b8ea5fa40bf05f8 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Sun, 15 Oct 2017 01:51:23 -0500 Subject: [PATCH 283/318] Update insert_breaks.R --- R/insert_breaks.R | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/R/insert_breaks.R b/R/insert_breaks.R index 5717cd9..a1ff71b 100644 --- a/R/insert_breaks.R +++ b/R/insert_breaks.R @@ -284,12 +284,12 @@ help_create_title <- function(start = "##", give_breakchar <- function(level) { switch(as.character(level), "1" = "_", - "2" = ". ", - "3" = ".. ", - "4" = "... ", - "5" = ".... ", - "6" = "..... ", - "7" = "...... ",) + "2" = "._", + "3" = ".._", + "4" = "..._", + "5" = "...._", + "6" = "....._", + "7" = "......_",) } ## ............................................................................ ## help insert ---- From 5c5e16f8dc94d3fb6d90847cc4519a82a972e337 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Sun, 15 Oct 2017 02:33:46 -0500 Subject: [PATCH 284/318] Update sum_str.R --- R/sum_str.R | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/R/sum_str.R b/R/sum_str.R index 1c347cb..801a797 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -844,6 +844,26 @@ for (i in 1:length(line_rdf_vector)){ } } +else{ + tempnumber=which(nodesfrom3==titles[i]) + if (length(tempnumber)>0){ + for (j in 1:length(tempnumber)){ + if (length(IDs[which(titles==nodesto3[tempnumber[j]])])>0){ + entityname2=paste0(prefix,":",IDs[which(titles==nodesto3[tempnumber[j]])]) + } + else { + entityname2=paste0(prefix,":",nodesto3[tempnumber[j]]) + } + if (j==length(tempnumber)){ + line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nodesproperty3[tempnumber[j]],entityname2,";","\n") + line_rdf_vector[i]=paste(line_rdf_vector[i],"\t","rdfs:label","\"",title1[i],"\"",".","\n") + } + else{ + line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nodesproperty3[tempnumber[j]],entityname2,";","\n") + } + } + } +} # convert %20 to space for (i in 1:length(line_rdf_vector)){ From ea3536479c66281a0107a6019d68c69df9e35c7e Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Sun, 15 Oct 2017 02:36:28 -0500 Subject: [PATCH 285/318] Update sum_str.R --- R/sum_str.R | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/R/sum_str.R b/R/sum_str.R index 801a797..ba9a0d3 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -832,10 +832,12 @@ for (i in 1:length(line_rdf_vector)){ entityname2=paste0(prefix,":",nodesto3[tempnumber[j]]) } if (j==length(tempnumber)){ + print (11) line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nodesproperty3[tempnumber[j]],entityname2,";","\n") line_rdf_vector[i]=paste(line_rdf_vector[i],"\t","rdfs:label","\"",title1[i],"\"",".","\n") } else{ + print (12) line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nodesproperty3[tempnumber[j]],entityname2,";","\n") } } @@ -855,10 +857,12 @@ else{ entityname2=paste0(prefix,":",nodesto3[tempnumber[j]]) } if (j==length(tempnumber)){ + print (21) line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nodesproperty3[tempnumber[j]],entityname2,";","\n") line_rdf_vector[i]=paste(line_rdf_vector[i],"\t","rdfs:label","\"",title1[i],"\"",".","\n") } else{ + print (22) line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nodesproperty3[tempnumber[j]],entityname2,";","\n") } } From 034108494dec1f7644deff855dcf5e5409510cbe Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Sun, 15 Oct 2017 02:39:35 -0500 Subject: [PATCH 286/318] Update sum_str.R --- R/sum_str.R | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index ba9a0d3..ec289c8 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -814,9 +814,11 @@ nesting <- data.frame(from = return_space(nodesfrom3), g3 <- graph_from_data_frame(nesting, directed=TRUE, vertices=nodes) E(g3)$label <- E(g3)$property +print (esci) # append manually type-in information to each entity if (length(esci)>0){ escj=strsplit(esci," ") +print (escj) for (i in 1:length(line_rdf_vector)){ if (i %in% escj[[1]]){ line_rdf_vector[i]=paste(line_rdf_vector[i],"\t","rdfs:label","\"",title1[i],"\"",".","\n") @@ -832,12 +834,12 @@ for (i in 1:length(line_rdf_vector)){ entityname2=paste0(prefix,":",nodesto3[tempnumber[j]]) } if (j==length(tempnumber)){ - print (11) + print (i,j,11) line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nodesproperty3[tempnumber[j]],entityname2,";","\n") line_rdf_vector[i]=paste(line_rdf_vector[i],"\t","rdfs:label","\"",title1[i],"\"",".","\n") } else{ - print (12) + print (i,j,12) line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nodesproperty3[tempnumber[j]],entityname2,";","\n") } } @@ -857,12 +859,12 @@ else{ entityname2=paste0(prefix,":",nodesto3[tempnumber[j]]) } if (j==length(tempnumber)){ - print (21) + print (j,21) line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nodesproperty3[tempnumber[j]],entityname2,";","\n") line_rdf_vector[i]=paste(line_rdf_vector[i],"\t","rdfs:label","\"",title1[i],"\"",".","\n") } else{ - print (22) + print (j,22) line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nodesproperty3[tempnumber[j]],entityname2,";","\n") } } From 234d8cd7515a1adce547e3c90e4b39d97e48d4e8 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Sun, 15 Oct 2017 02:51:57 -0500 Subject: [PATCH 287/318] Update sum_str.R --- R/sum_str.R | 30 ++++++------------------------ 1 file changed, 6 insertions(+), 24 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index ec289c8..eca0c82 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -821,6 +821,7 @@ escj=strsplit(esci," ") print (escj) for (i in 1:length(line_rdf_vector)){ if (i %in% escj[[1]]){ + print (i) line_rdf_vector[i]=paste(line_rdf_vector[i],"\t","rdfs:label","\"",title1[i],"\"",".","\n") } else{ @@ -834,12 +835,14 @@ for (i in 1:length(line_rdf_vector)){ entityname2=paste0(prefix,":",nodesto3[tempnumber[j]]) } if (j==length(tempnumber)){ - print (i,j,11) + print (i) + print (line_rdf_vector[i]) line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nodesproperty3[tempnumber[j]],entityname2,";","\n") line_rdf_vector[i]=paste(line_rdf_vector[i],"\t","rdfs:label","\"",title1[i],"\"",".","\n") } else{ - print (i,j,12) + print (i) + print (line_rdf_vector[i]) line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nodesproperty3[tempnumber[j]],entityname2,";","\n") } } @@ -848,28 +851,7 @@ for (i in 1:length(line_rdf_vector)){ } } -else{ - tempnumber=which(nodesfrom3==titles[i]) - if (length(tempnumber)>0){ - for (j in 1:length(tempnumber)){ - if (length(IDs[which(titles==nodesto3[tempnumber[j]])])>0){ - entityname2=paste0(prefix,":",IDs[which(titles==nodesto3[tempnumber[j]])]) - } - else { - entityname2=paste0(prefix,":",nodesto3[tempnumber[j]]) - } - if (j==length(tempnumber)){ - print (j,21) - line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nodesproperty3[tempnumber[j]],entityname2,";","\n") - line_rdf_vector[i]=paste(line_rdf_vector[i],"\t","rdfs:label","\"",title1[i],"\"",".","\n") - } - else{ - print (j,22) - line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nodesproperty3[tempnumber[j]],entityname2,";","\n") - } - } - } -} + # convert %20 to space for (i in 1:length(line_rdf_vector)){ From 294ea59f240241e04863572fc7c1c7a77e993517 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Sun, 15 Oct 2017 02:56:01 -0500 Subject: [PATCH 288/318] Update sum_str.R --- R/sum_str.R | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/R/sum_str.R b/R/sum_str.R index eca0c82..07b3607 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -823,6 +823,31 @@ for (i in 1:length(line_rdf_vector)){ if (i %in% escj[[1]]){ print (i) line_rdf_vector[i]=paste(line_rdf_vector[i],"\t","rdfs:label","\"",title1[i],"\"",".","\n") + tempnumber=which(nodesfrom3==titles[i]) + if (length(tempnumber)>0){ + for (j in 1:length(tempnumber)){ + if (length(IDs[which(titles==nodesto3[tempnumber[j]])])>0){ + entityname2=paste0(prefix,":",IDs[which(titles==nodesto3[tempnumber[j]])]) + } + else { + entityname2=paste0(prefix,":",nodesto3[tempnumber[j]]) + } + if (j==length(tempnumber)){ + print (i) + print (line_rdf_vector[i]) + line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nodesproperty3[tempnumber[j]],entityname2,";","\n") + line_rdf_vector[i]=paste(line_rdf_vector[i],"\t","rdfs:label","\"",title1[i],"\"",".","\n") + } + else{ + print (i) + print (line_rdf_vector[i]) + line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nodesproperty3[tempnumber[j]],entityname2,";","\n") + } + } + } + + + } else{ tempnumber=which(nodesfrom3==titles[i]) From a87946cdd1eb86fa8f3c2a08a19bbad19f8dac21 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Sun, 15 Oct 2017 02:57:30 -0500 Subject: [PATCH 289/318] Update sum_str.R --- R/sum_str.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index 07b3607..8250132 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -822,7 +822,7 @@ print (escj) for (i in 1:length(line_rdf_vector)){ if (i %in% escj[[1]]){ print (i) - line_rdf_vector[i]=paste(line_rdf_vector[i],"\t","rdfs:label","\"",title1[i],"\"",".","\n") + #line_rdf_vector[i]=paste(line_rdf_vector[i],"\t","rdfs:label","\"",title1[i],"\"",".","\n") tempnumber=which(nodesfrom3==titles[i]) if (length(tempnumber)>0){ for (j in 1:length(tempnumber)){ From 2d7634c2d2458e1a48dbdd9957e894dee7abb31c Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Sun, 15 Oct 2017 03:02:10 -0500 Subject: [PATCH 290/318] Update sum_str.R --- R/sum_str.R | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/R/sum_str.R b/R/sum_str.R index 8250132..04840ff 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -833,12 +833,16 @@ for (i in 1:length(line_rdf_vector)){ entityname2=paste0(prefix,":",nodesto3[tempnumber[j]]) } if (j==length(tempnumber)){ + print (j) + print (tempnumber) print (i) print (line_rdf_vector[i]) line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nodesproperty3[tempnumber[j]],entityname2,";","\n") line_rdf_vector[i]=paste(line_rdf_vector[i],"\t","rdfs:label","\"",title1[i],"\"",".","\n") } else{ + print (j) + print (tempnumber) print (i) print (line_rdf_vector[i]) line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nodesproperty3[tempnumber[j]],entityname2,";","\n") @@ -860,12 +864,18 @@ for (i in 1:length(line_rdf_vector)){ entityname2=paste0(prefix,":",nodesto3[tempnumber[j]]) } if (j==length(tempnumber)){ + print ("!") + print (j) + print (tempnumber) print (i) print (line_rdf_vector[i]) line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nodesproperty3[tempnumber[j]],entityname2,";","\n") line_rdf_vector[i]=paste(line_rdf_vector[i],"\t","rdfs:label","\"",title1[i],"\"",".","\n") } else{ + print ("!") + print (j) + print (tempnumber) print (i) print (line_rdf_vector[i]) line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nodesproperty3[tempnumber[j]],entityname2,";","\n") From cdf1493aa58f1c3df624c5dabeb8385755da3d99 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Sun, 15 Oct 2017 03:05:21 -0500 Subject: [PATCH 291/318] Update sum_str.R --- R/sum_str.R | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/R/sum_str.R b/R/sum_str.R index 04840ff..d4ce991 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -826,6 +826,8 @@ for (i in 1:length(line_rdf_vector)){ tempnumber=which(nodesfrom3==titles[i]) if (length(tempnumber)>0){ for (j in 1:length(tempnumber)){ + print ("j loop") + print ("j") if (length(IDs[which(titles==nodesto3[tempnumber[j]])])>0){ entityname2=paste0(prefix,":",IDs[which(titles==nodesto3[tempnumber[j]])]) } @@ -833,6 +835,7 @@ for (i in 1:length(line_rdf_vector)){ entityname2=paste0(prefix,":",nodesto3[tempnumber[j]]) } if (j==length(tempnumber)){ + print ("j=l") print (j) print (tempnumber) print (i) @@ -841,6 +844,7 @@ for (i in 1:length(line_rdf_vector)){ line_rdf_vector[i]=paste(line_rdf_vector[i],"\t","rdfs:label","\"",title1[i],"\"",".","\n") } else{ + print ("j!=l") print (j) print (tempnumber) print (i) From f364ad2fe3b28d6b8b18ecee7fcb6c7d3b5cfef3 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Sun, 15 Oct 2017 03:06:04 -0500 Subject: [PATCH 292/318] Update sum_str.R --- R/sum_str.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index d4ce991..631237c 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -827,7 +827,7 @@ for (i in 1:length(line_rdf_vector)){ if (length(tempnumber)>0){ for (j in 1:length(tempnumber)){ print ("j loop") - print ("j") + print (j) if (length(IDs[which(titles==nodesto3[tempnumber[j]])])>0){ entityname2=paste0(prefix,":",IDs[which(titles==nodesto3[tempnumber[j]])]) } From e57d042c7e7af3639a184fb1cb6c82367a3b3cbc Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Sun, 15 Oct 2017 03:17:45 -0500 Subject: [PATCH 293/318] Update sum_str.R --- R/sum_str.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 631237c..7b9227c 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -534,8 +534,8 @@ if (rm_break_anchors) { "\"provone:Process\",","\"provone:Visualization\",","2,","\"provone:wasDerivedFrom\",","\"provone:hasMember\"\n") write(DefaultAL,file="DefaultAssociationLibrary.txt") - nodesnames=nodesclasses=nodesfrom=nodesto=nodesproperty=parentclass=property=line_rdf_vector=title1="" - templevel=parentlevel=parentindex=tempwordlist=esci=0 + nodesnames=nodesclasses=nodesfrom=nodesto=nodesproperty=parentclass=property=line_rdf_vector=title1=esci="" + templevel=parentlevel=parentindex=tempwordlist=0 levelvector=rep(0,7) # get property of association by using parent entity class and child entity class automatically From 85974a9671da9b47817c77484c06cebe8d9d1be9 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Sun, 15 Oct 2017 03:18:50 -0500 Subject: [PATCH 294/318] Update sum_str.R --- R/sum_str.R | 2 ++ 1 file changed, 2 insertions(+) diff --git a/R/sum_str.R b/R/sum_str.R index 7b9227c..f1852d1 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -814,6 +814,8 @@ nesting <- data.frame(from = return_space(nodesfrom3), g3 <- graph_from_data_frame(nesting, directed=TRUE, vertices=nodes) E(g3)$label <- E(g3)$property +print (nodes) +print (nesting) print (esci) # append manually type-in information to each entity if (length(esci)>0){ From 8c3a2c66db770df868fd3a0bfff889e96b267efa Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Sun, 15 Oct 2017 03:25:22 -0500 Subject: [PATCH 295/318] Update sum_str.R --- R/sum_str.R | 2 ++ 1 file changed, 2 insertions(+) diff --git a/R/sum_str.R b/R/sum_str.R index f1852d1..8b51339 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -855,6 +855,8 @@ for (i in 1:length(line_rdf_vector)){ } } } + else # !if (length(tempnumber)>0) + {line_rdf_vector[i]=paste(line_rdf_vector[i],"\t","rdfs:label","\"",title1[i],"\"",".","\n")} From 6238ecf320eb85ac356efa70041e48d565610abd Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Sun, 15 Oct 2017 03:34:33 -0500 Subject: [PATCH 296/318] Update sum_str.R --- R/sum_str.R | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 8b51339..90d7722 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -399,8 +399,7 @@ if (rm_break_anchors) { schemalist=list() # a schemas library to create headers by using keywords in content - schemas=c(rdfs="@prefix rdfs: .", - xsd="@prefix xsd: .", + schemas=c(xsd="@prefix xsd: .", owl="@prefix owl: .", dcterms="@prefix dcterms: .", prov="@prefix prov: .", @@ -480,7 +479,7 @@ if (rm_break_anchors) { infolist=infolist1 schemahad=0 - lines_rdf="" + lines_rdf=" @prefix rdfs: .\n" count0=1 schemalist1=list() @@ -502,7 +501,7 @@ if (rm_break_anchors) { } } # adding headers: - lines_rdf=paste0(" @prefix ",prefix,": ","<",FullURI,"> .\n") + lines_rdf=paste0(lines_rdf," @prefix ",prefix,": ","<",FullURI,"> .\n") for (i in 1:length(schemahad)){ lines_rdf=paste(lines_rdf,schemas[schemahad[i]],"\n") } From 9c8571a3b9c78cfaf6714fa6fc51ced5592dd5b0 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Sun, 15 Oct 2017 03:39:24 -0500 Subject: [PATCH 297/318] Update sum_str.R --- R/sum_str.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index 90d7722..1a0bcfb 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -664,7 +664,7 @@ if (rm_break_anchors) { line_rdf=paste(line_rdf,";","\n") title0=paste0("\"",title0,"\"") # add title as rdfs:label in the output file - line_rdf=paste(line_rdf,"\t","rdfs:label",title0,".","\n")#,".","\n") + #line_rdf=paste(line_rdf,"\t","rdfs:label",title0,".","\n")#,".","\n") } else{ line_rdf=paste(line_rdf) From 5c3a2bd50fb7dd3afc392272ae72612a474a7c81 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Sun, 15 Oct 2017 04:07:08 -0500 Subject: [PATCH 298/318] Update sum_str.R --- R/sum_str.R | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index 1a0bcfb..8950ca0 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -888,7 +888,9 @@ for (i in 1:length(line_rdf_vector)){ line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nodesproperty3[tempnumber[j]],entityname2,";","\n") } } - } + } + else # !if (length(tempnumber)>0) + {line_rdf_vector[i]=paste(line_rdf_vector[i],"\t","rdfs:label","\"",title1[i],"\"",".","\n")} }#else } From 7afd2e23e8aa634abf938ebaed6b82a4ea83e03f Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Sun, 15 Oct 2017 04:09:35 -0500 Subject: [PATCH 299/318] Update sum_str.R --- R/sum_str.R | 54 ++++++++++++++++++++++++++--------------------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 8950ca0..56cc56e 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -813,22 +813,22 @@ nesting <- data.frame(from = return_space(nodesfrom3), g3 <- graph_from_data_frame(nesting, directed=TRUE, vertices=nodes) E(g3)$label <- E(g3)$property -print (nodes) -print (nesting) -print (esci) +#print (nodes) +#print (nesting) +#print (esci) # append manually type-in information to each entity if (length(esci)>0){ escj=strsplit(esci," ") -print (escj) +#print (escj) for (i in 1:length(line_rdf_vector)){ if (i %in% escj[[1]]){ - print (i) + #print (i) #line_rdf_vector[i]=paste(line_rdf_vector[i],"\t","rdfs:label","\"",title1[i],"\"",".","\n") tempnumber=which(nodesfrom3==titles[i]) if (length(tempnumber)>0){ for (j in 1:length(tempnumber)){ - print ("j loop") - print (j) + #print ("j loop") + #print (j) if (length(IDs[which(titles==nodesto3[tempnumber[j]])])>0){ entityname2=paste0(prefix,":",IDs[which(titles==nodesto3[tempnumber[j]])]) } @@ -836,20 +836,20 @@ for (i in 1:length(line_rdf_vector)){ entityname2=paste0(prefix,":",nodesto3[tempnumber[j]]) } if (j==length(tempnumber)){ - print ("j=l") - print (j) - print (tempnumber) - print (i) - print (line_rdf_vector[i]) + #print ("j=l") + #print (j) + #print (tempnumber) + #print (i) + #print (line_rdf_vector[i]) line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nodesproperty3[tempnumber[j]],entityname2,";","\n") line_rdf_vector[i]=paste(line_rdf_vector[i],"\t","rdfs:label","\"",title1[i],"\"",".","\n") } else{ - print ("j!=l") - print (j) - print (tempnumber) - print (i) - print (line_rdf_vector[i]) + #print ("j!=l") + #print (j) + #print (tempnumber) + #print (i) + #print (line_rdf_vector[i]) line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nodesproperty3[tempnumber[j]],entityname2,";","\n") } } @@ -871,20 +871,20 @@ for (i in 1:length(line_rdf_vector)){ entityname2=paste0(prefix,":",nodesto3[tempnumber[j]]) } if (j==length(tempnumber)){ - print ("!") - print (j) - print (tempnumber) - print (i) - print (line_rdf_vector[i]) + #print ("!") + #print (j) + #print (tempnumber) + #print (i) + #print (line_rdf_vector[i]) line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nodesproperty3[tempnumber[j]],entityname2,";","\n") line_rdf_vector[i]=paste(line_rdf_vector[i],"\t","rdfs:label","\"",title1[i],"\"",".","\n") } else{ - print ("!") - print (j) - print (tempnumber) - print (i) - print (line_rdf_vector[i]) + #print ("!") + #print (j) + #print (tempnumber) + #print (i) + #print (line_rdf_vector[i]) line_rdf_vector[i]=paste(line_rdf_vector[i],"\t",nodesproperty3[tempnumber[j]],entityname2,";","\n") } } From b59b97757dc7c58292f4edab32c31e2b493d6645 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Sun, 15 Oct 2017 16:04:28 -0500 Subject: [PATCH 300/318] Update sum_str.R --- R/sum_str.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index 56cc56e..4587294 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -133,7 +133,7 @@ sum_str <- function(path_in = getSourceEditorContext()$path, UserID="UserID", prefix="user", UserAL=FALSE, - fillAssociation=TRUE, + fillAssociation=FALSE, UserANM=FALSE, ...) { From 1f4973b271f5691cf4a295e71d03a3815eda237c Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Sun, 15 Oct 2017 16:09:49 -0500 Subject: [PATCH 301/318] Update sum_str.R --- R/sum_str.R | 3 +++ 1 file changed, 3 insertions(+) diff --git a/R/sum_str.R b/R/sum_str.R index 4587294..631420f 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -632,6 +632,9 @@ if (rm_break_anchors) { nodesto=paste0(nodesto,infolist[[j]][2]," ") nodesproperty=paste0(nodesproperty,property," ") } + print (nodesfrom) + print (nodesto) + print (nodesproperty) } # if using default association to fill the nonexistent association in the library else if ((fillAssociation==TRUE)&(as.numeric(parentlevel)!=0)){ From 292f13a68ef177fd3039aecd287ddba839996098 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Sun, 15 Oct 2017 16:12:39 -0500 Subject: [PATCH 302/318] Update sum_str.R --- R/sum_str.R | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 631420f..e694874 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -632,9 +632,7 @@ if (rm_break_anchors) { nodesto=paste0(nodesto,infolist[[j]][2]," ") nodesproperty=paste0(nodesproperty,property," ") } - print (nodesfrom) - print (nodesto) - print (nodesproperty) + } # if using default association to fill the nonexistent association in the library else if ((fillAssociation==TRUE)&(as.numeric(parentlevel)!=0)){ @@ -646,7 +644,9 @@ if (rm_break_anchors) { nodesto=paste0(nodesto,infolist[[as.numeric(parentindex)]][2]," ") nodesproperty=paste0(nodesproperty,"str:belongTo"," ") } - + print (nodesfrom) + print (nodesto) + print (nodesproperty) # deal with other information besides title, id and class for (i in 4:length(infolist[[j]])){ tempword="" From d7aab4fd6ed091f4e2f4ec74ba5f656875a4abfa Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Sun, 15 Oct 2017 16:16:11 -0500 Subject: [PATCH 303/318] Update sum_str.R --- R/sum_str.R | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index e694874..ca7b658 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -644,9 +644,12 @@ if (rm_break_anchors) { nodesto=paste0(nodesto,infolist[[as.numeric(parentindex)]][2]," ") nodesproperty=paste0(nodesproperty,"str:belongTo"," ") } - print (nodesfrom) - print (nodesto) - print (nodesproperty) + print ("This is from") + print (nodesfrom) + print ("This is to") + print (nodesto) + print ("This is property") + print (nodesproperty) # deal with other information besides title, id and class for (i in 4:length(infolist[[j]])){ tempword="" From 1d2bf34d190e7efc3137f4516b03c77dc24c9424 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Sun, 15 Oct 2017 16:19:17 -0500 Subject: [PATCH 304/318] Update sum_str.R --- R/sum_str.R | 2 ++ 1 file changed, 2 insertions(+) diff --git a/R/sum_str.R b/R/sum_str.R index ca7b658..163d4b6 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -644,6 +644,8 @@ if (rm_break_anchors) { nodesto=paste0(nodesto,infolist[[as.numeric(parentindex)]][2]," ") nodesproperty=paste0(nodesproperty,"str:belongTo"," ") } + print ("This is levelvector") + print (levelvector) print ("This is from") print (nodesfrom) print ("This is to") From 7a5b25488872aa33f20ffe9091ea5097f8fe1847 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Sun, 15 Oct 2017 17:12:03 -0500 Subject: [PATCH 305/318] Update sum_str.R --- R/sum_str.R | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 163d4b6..166562f 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -595,7 +595,8 @@ if (rm_break_anchors) { } else { levelvector[as.numeric(templevel)]=j - parentindex=levelvector[as.numeric(templevel)-1] + parentindex=levelvector[as.numeric(templevel)-1] + parentclass=infolist[[parentindex]][4] } } # judge association: @@ -644,14 +645,14 @@ if (rm_break_anchors) { nodesto=paste0(nodesto,infolist[[as.numeric(parentindex)]][2]," ") nodesproperty=paste0(nodesproperty,"str:belongTo"," ") } - print ("This is levelvector") - print (levelvector) - print ("This is from") - print (nodesfrom) - print ("This is to") - print (nodesto) - print ("This is property") - print (nodesproperty) + #print ("This is levelvector") + #print (levelvector) + #print ("This is from") + #print (nodesfrom) + #print ("This is to") + #print (nodesto) + #print ("This is property") + #print (nodesproperty) # deal with other information besides title, id and class for (i in 4:length(infolist[[j]])){ tempword="" From 58bd8c046ee5402ada77d3784860435687955047 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Sun, 15 Oct 2017 18:08:34 -0500 Subject: [PATCH 306/318] Update sum_str.R --- R/sum_str.R | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/R/sum_str.R b/R/sum_str.R index 166562f..f62e347 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -684,6 +684,8 @@ if (rm_break_anchors) { tempword=infolist[[j]][i] # find manually input values if (grepl("=",tempword)){ + print ("This is i") + print (i) # print founded class or classes in output file firstmeet=firstmeet+1 if (firstmeet==1){ @@ -692,6 +694,9 @@ if (rm_break_anchors) { tempwordlist=strsplit(tempword,"=") # if the manually typed input is an association, add this relation into nodes data frame + print (tempwordlist[[1]][1]) + print (Associationlist) + print (tempwordlist[[1]][1] %in% Associationlist) if (tempwordlist[[1]][1] %in% Associationlist) { trigger1=1 From 0e5c9b2450b555a428d4d76546e0b7b388aa03d9 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Sun, 15 Oct 2017 18:28:39 -0500 Subject: [PATCH 307/318] Update sum_str.R --- R/sum_str.R | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index f62e347..566809f 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -683,8 +683,12 @@ if (rm_break_anchors) { else { # i>4 tempword=infolist[[j]][i] # find manually input values + print ("This is i") + print (i) + print ("This is tempword") + print (tempword) if (grepl("=",tempword)){ - print ("This is i") + print ("This is i get equal mark") print (i) # print founded class or classes in output file firstmeet=firstmeet+1 From bc4051cbfa0b133408b9911927c8d15856c7d747 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Sun, 15 Oct 2017 18:31:17 -0500 Subject: [PATCH 308/318] Update sum_str.R --- R/sum_str.R | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 566809f..a0d8e29 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -683,13 +683,13 @@ if (rm_break_anchors) { else { # i>4 tempword=infolist[[j]][i] # find manually input values - print ("This is i") - print (i) + print ("This is j") + print (j) print ("This is tempword") print (tempword) if (grepl("=",tempword)){ - print ("This is i get equal mark") - print (i) + print ("This is j get equal mark") + print (j) # print founded class or classes in output file firstmeet=firstmeet+1 if (firstmeet==1){ From 659314f6656153d3d9e81292e457eff3e5734405 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Sun, 15 Oct 2017 18:34:15 -0500 Subject: [PATCH 309/318] Update sum_str.R --- R/sum_str.R | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index a0d8e29..6a8602b 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -685,8 +685,10 @@ if (rm_break_anchors) { # find manually input values print ("This is j") print (j) - print ("This is tempword") + print ("This is tempword (tempword=infolist[[j]][i])") print (tempword) + print ("This is infolist[[j]]") + print (infolist[[j]]) if (grepl("=",tempword)){ print ("This is j get equal mark") print (j) From bd60688a92b8b2809b05e5b48b3d9f5ff2de62d8 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Sun, 15 Oct 2017 18:37:19 -0500 Subject: [PATCH 310/318] Update sum_str.R --- R/sum_str.R | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/R/sum_str.R b/R/sum_str.R index 6a8602b..4cc4517 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -449,7 +449,10 @@ if (rm_break_anchors) { schemalist[[i]]=grep(":",lines_split1[[i]]) } lines_split=lines_split1 + infolist=lines_split + print ("this is infolist1") + print (infolist) for (i in 1:length(infolist)){ templevel=strsplit(infolist[[i]][1],"\\t") infolist[[i]][1]=nchar(templevel[[1]][2]) @@ -462,6 +465,7 @@ if (rm_break_anchors) { infolist[[i]][length(infolist[[i]])]=gsub("\\}","",infolist[[i]][length(infolist[[i]])]) } infolist1=infolist + # delete JSON-LD style structure and only leave the useful information for (i in grep("\":",infolist)){ infolist[[i]][2]=gsub(",","",infolist1[[i]][4]) @@ -477,6 +481,8 @@ if (rm_break_anchors) { } } infolist=infolist1 + print ("this is infolist2") + print (infolist) schemahad=0 lines_rdf=" @prefix rdfs: .\n" From 9382dce325f7a6234d9ca487df6155d9e3494256 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Sun, 15 Oct 2017 18:39:40 -0500 Subject: [PATCH 311/318] Update sum_str.R --- R/sum_str.R | 3 +++ 1 file changed, 3 insertions(+) diff --git a/R/sum_str.R b/R/sum_str.R index 4cc4517..4637b86 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -387,10 +387,13 @@ if (rm_break_anchors) { fileformat=".ttl" #".txt" outputfile2 <- paste("RDF_output_file_",datetime,fileformat,sep="") write(lines,file=outputfile2) + templines=readLines(outputfile2) + print (templines) lines_content=templines[4:length(templines)] lines_split=strsplit(lines_content, " ") + print (lines_split) baseURI=baseURI UserID=UserID From 4658bb692ce0d26581472ec12c5ccc06833bd73c Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Sun, 15 Oct 2017 23:40:26 -0500 Subject: [PATCH 312/318] Update sum_str.R --- R/sum_str.R | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/R/sum_str.R b/R/sum_str.R index 4637b86..b92c366 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -939,6 +939,16 @@ print(getwd()) print(paste("Your file name is:",outputfile2)) } if (graph){ + if (HideAssociation=TRUE){ + nestinghide <- data.frame(from = nesting$from, + to = nesting$to, + property = rep("",nrow(nesting))) + + g3 <- graph_from_data_frame(nesting, directed=TRUE, vertices=nodes) + } + + +E(g3)$label <- E(g3)$property print(g3, e=TRUE, v=TRUE) plot(g3, edge.arrow.size=.2, edge.curved=.4) } From 71e4b4c2eaa280f3fb7ecb2f6b85967df15f882c Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Sun, 15 Oct 2017 23:41:23 -0500 Subject: [PATCH 313/318] Update sum_str.R --- R/sum_str.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index b92c366..7b08ae6 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -939,7 +939,7 @@ print(getwd()) print(paste("Your file name is:",outputfile2)) } if (graph){ - if (HideAssociation=TRUE){ + if (HideAssociation==TRUE){ nestinghide <- data.frame(from = nesting$from, to = nesting$to, property = rep("",nrow(nesting))) From 9270524afde557194583509d4cd593d9e9e27cc5 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Sun, 15 Oct 2017 23:43:10 -0500 Subject: [PATCH 314/318] Update sum_str.R --- R/sum_str.R | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/R/sum_str.R b/R/sum_str.R index 7b08ae6..eaed7ea 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -135,6 +135,7 @@ sum_str <- function(path_in = getSourceEditorContext()$path, UserAL=FALSE, fillAssociation=FALSE, UserANM=FALSE, + HideAssociation=FALSE, ...) { ## ............................................................................ @@ -195,7 +196,8 @@ assert_number(granularity, lower = 1, upper = 3) prefix=prefix, UserAL=UserAL, fillAssociation=fillAssociation, - UserANM=UserANM) + UserANM=UserANM, + HideAssociation=HideAssociation) }) if (dir_out == "" && !is.null(file_out) && file_out == "object") { @@ -243,7 +245,8 @@ sum_str_helper <- function(path_in, prefix, UserAL, fillAssociation, - UserANM) { + UserANM, + HideAssociation) { ## ............................................................................ ## argument interaction #### From 28abe24b5ff82c7189990fdb45732c1208d98e61 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Sun, 15 Oct 2017 23:44:50 -0500 Subject: [PATCH 315/318] Update sum_str.R --- R/sum_str.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/sum_str.R b/R/sum_str.R index eaed7ea..f106e9f 100644 --- a/R/sum_str.R +++ b/R/sum_str.R @@ -947,7 +947,7 @@ if (graph){ to = nesting$to, property = rep("",nrow(nesting))) - g3 <- graph_from_data_frame(nesting, directed=TRUE, vertices=nodes) + g3 <- graph_from_data_frame(nestinghide , directed=TRUE, vertices=nodes) } From dd9710768f44a2d89785613b7d5ba013d5af6f5e Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Mon, 16 Oct 2017 20:28:20 -0500 Subject: [PATCH 316/318] Update NAMESPACE --- NAMESPACE | 1 + 1 file changed, 1 insertion(+) diff --git a/NAMESPACE b/NAMESPACE index c489855..8b3f9a9 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -5,6 +5,7 @@ export(insert_l1_break) export(insert_l2_break) export(insert_l3_break) export(sum_str) +export(knit2slides) import(checkmate) import(miniUI) import(shiny) From c909d2fbba1a39db359097f334d40802bb55e8a3 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Mon, 16 Oct 2017 20:30:33 -0500 Subject: [PATCH 317/318] Update NAMESPACE --- NAMESPACE | 1 - 1 file changed, 1 deletion(-) diff --git a/NAMESPACE b/NAMESPACE index 8b3f9a9..c489855 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -5,7 +5,6 @@ export(insert_l1_break) export(insert_l2_break) export(insert_l3_break) export(sum_str) -export(knit2slides) import(checkmate) import(miniUI) import(shiny) From 6a2571171a4d8e4c913f66cba0b14b9e23fbec80 Mon Sep 17 00:00:00 2001 From: XiaoliangJiang Date: Tue, 17 Oct 2017 21:35:36 -0500 Subject: [PATCH 318/318] Add files via upload --- demos/RDF_output_file_2017_10_15_15_59_28.ttl | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 demos/RDF_output_file_2017_10_15_15_59_28.ttl diff --git a/demos/RDF_output_file_2017_10_15_15_59_28.ttl b/demos/RDF_output_file_2017_10_15_15_59_28.ttl new file mode 100644 index 0000000..5f0bd4f --- /dev/null +++ b/demos/RDF_output_file_2017_10_15_15_59_28.ttl @@ -0,0 +1,54 @@ + @prefix rdfs: . + @prefix cwf: . + @prefix provone: . + + cwf:IrisWorkflow a provone:Workflow ; + provone:hasSubProcess cwf:IrisProcess ; + rdfs:label " Iris Workflow " . + + cwf:IrisProcess a provone:Process ; + hasInPort cwf:IrisDataIn ; + str:has cwf:VirginicaFilter + rdfs:label " Iris Process " . ; + provone:hasSubProcess cwf:VirginicaFilter ; + provone:hasSubProcess cwf:VirginicaFilter ; + provone:hasSubProcess cwf:VirginicaFilter2 ; + rdfs:label " Iris Process " . + + cwf:IrisDataIn a provone:InputPort ; + hasDefaultParam cwf:IrisData ; + rdfs:label " Iris Data in " . + + cwf:IrisData a provone:Data ; + rdfs:label " Iris Data " . + + cwf:VirginicaFilter a provone:Process ; + str:belongTo cwf:IrisProcess ; + rdfs:label " Test Filter " . + + cwf:VirginicaFilter a provone:Process ; + provone:wasDerivedFrom cwf:IrisProcess ; + rdfs:label " Test Filter2 " . + + cwf:VirginicaFilter a provone:Process ; + provone:wasDerivedFrom cwf:IrisProcess ; + provone:wasDerivedFrom cwf:VirginicaData ; + rdfs:label " Virginica Filter " . + + cwf:VirginicaData a provone:Data ; + provone:wasDerivedFrom cwf:VirginicaFilter ; + rdfs:label " Virginica data " . + + cwf:VirginicaFilter2 a provone:Process ; + provone:wasDerivedFrom cwf:IrisProcess ; + provone:wasDerivedFrom cwf:VirginicaData2 ; + rdfs:label " Virginica Filter 2 " . + + cwf:VirginicaData2 a provone:Data ; + provone:wasDerivedFrom cwf:VirginicaFilter2 ; + provone:beUsedFor cwf:IdProcess ; + rdfs:label " Virginica data 2 " . + + cwf:IdProcess a provone:Process ; + rdfs:label " Identical Process " . +