SCM

SCM Repository

[tm] Annotation of /pkg/R/source.R
ViewVC logotype

Annotation of /pkg/R/source.R

Parent Directory Parent Directory | Revision Log Revision Log


Revision 693 - (view) (download)
Original Path: trunk/tm/R/source.R

1 : feinerer 689 # Author: Ingo Feinerer
2 :    
3 :     # Source objects
4 :    
5 :     setClass("Source",
6 :     representation(LoDSupport = "logical",
7 :     Position = "numeric",
8 :     "VIRTUAL"))
9 :    
10 :     # A directory with files
11 :     setClass("DirSource",
12 :     representation(FileList = "character",
13 :     Load = "logical"),
14 :     contains = c("Source"))
15 :    
16 :     # A single CSV file where each line is interpreted as document
17 :     setClass("CSVSource",
18 :     representation(URI = "ANY",
19 :     Content = "character"),
20 :     contains = c("Source"))
21 :    
22 :     # A single XML file consisting of several Reuters documents
23 :     # Works both for Reuters21578XML and RCV1 XML files
24 :     setClass("ReutersSource",
25 :     representation(URI = "ANY",
26 :     Content = "list"),
27 :     contains = c("Source"))
28 :    
29 :     # A single XML (RDF) file containing Gmane R mailing list archive feeds
30 :     setClass("GmaneRSource",
31 :     representation(URI = "ANY",
32 :     Content = "list"),
33 :     contains = c("Source"))
34 :    
35 :    
36 :     # Methods for Source objects
37 :    
38 :     setGeneric("DirSource", function(directory, load = FALSE, recursive = FALSE) standardGeneric("DirSource"))
39 :     setMethod("DirSource",
40 :     signature(directory = "character"),
41 :     function(directory, load = FALSE, recursive = FALSE) {
42 :     d <- dir(directory, full.names = TRUE, recursive = recursive)
43 :     isdir <- sapply(d, file.info)["isdir",]
44 :     files <- d[isdir == FALSE]
45 :     new("DirSource", LoDSupport = TRUE, FileList = files,
46 :     Position = 0, Load = load)
47 :     })
48 :    
49 :     setGeneric("CSVSource", function(object) standardGeneric("CSVSource"))
50 :     setMethod("CSVSource",
51 :     signature(object = "character"),
52 :     function(object) {
53 :     object <- substitute(file(object))
54 :     con <- eval(object)
55 :     content <- scan(con, what = "character")
56 :     close(con)
57 :     new("CSVSource", LoDSupport = FALSE, URI = object,
58 :     Content = content, Position = 0)
59 :     })
60 :     setMethod("CSVSource",
61 :     signature(object = "ANY"),
62 :     function(object) {
63 :     object <- substitute(object)
64 :     con <- eval(object)
65 :     content <- scan(con, what = "character")
66 :     close(con)
67 :     new("CSVSource", LoDSupport = FALSE, URI = object,
68 :     Content = content, Position = 0)
69 :     })
70 :    
71 :     setGeneric("ReutersSource", function(object) standardGeneric("ReutersSource"))
72 :     setMethod("ReutersSource",
73 :     signature(object = "character"),
74 :     function(object) {
75 :     object <- substitute(file(object))
76 :     con <- eval(object)
77 :     corpus <- paste(readLines(con), "\n", collapse = "")
78 :     close(con)
79 :     tree <- xmlTreeParse(corpus, asText = TRUE)
80 :     content <- xmlRoot(tree)$children
81 :    
82 :     new("ReutersSource", LoDSupport = FALSE, URI = object,
83 :     Content = content, Position = 0)
84 :     })
85 :     setMethod("ReutersSource",
86 :     signature(object = "ANY"),
87 :     function(object) {
88 :     object <- substitute(object)
89 :     con <- eval(object)
90 :     corpus <- paste(readLines(con), "\n", collapse = "")
91 :     close(con)
92 :     tree <- xmlTreeParse(corpus, asText = TRUE)
93 :     content <- xmlRoot(tree)$children
94 :    
95 :     new("ReutersSource", LoDSupport = FALSE, URI = object,
96 :     Content = content, Position = 0)
97 :     })
98 :    
99 :     setGeneric("GmaneRSource", function(object) standardGeneric("GmaneRSource"))
100 :     setMethod("GmaneRSource",
101 :     signature(object = "character"),
102 :     function(object) {
103 :     object <- substitute(file(object))
104 :     con <- eval(object)
105 :     corpus <- paste(readLines(con), "\n", collapse = "")
106 :     close(con)
107 :     tree <- xmlTreeParse(corpus, asText = TRUE)
108 :     content <- xmlRoot(tree)$children
109 :     content <- content[names(content) == "item"]
110 :    
111 :     new("GmaneRSource", LoDSupport = FALSE, URI = object,
112 :     Content = content, Position = 0)
113 :     })
114 :     setMethod("GmaneRSource",
115 :     signature(object = "ANY"),
116 :     function(object) {
117 :     object <- substitute(object)
118 :     con <- eval(object)
119 :     corpus <- paste(readLines(con), "\n", collapse = "")
120 :     close(con)
121 :     tree <- xmlTreeParse(corpus, asText = TRUE)
122 :     content <- xmlRoot(tree)$children
123 :     content <- content[names(content) == "item"]
124 :    
125 :     new("GmaneRSource", LoDSupport = FALSE, URI = object,
126 :     Content = content, Position = 0)
127 :     })
128 :    
129 :     setGeneric("step_next", function(object) standardGeneric("step_next"))
130 :     setMethod("step_next",
131 :     signature(object = "DirSource"),
132 :     function(object) {
133 :     object@Position <- object@Position + 1
134 :     object
135 :     })
136 :     setMethod("step_next",
137 :     signature(object = "CSVSource"),
138 :     function(object) {
139 :     object@Position <- object@Position + 1
140 :     object
141 :     })
142 :     setMethod("step_next",
143 :     signature(object = "ReutersSource"),
144 :     function(object) {
145 :     object@Position <- object@Position + 1
146 :     object
147 :     })
148 :     setMethod("step_next",
149 :     signature(object = "GmaneRSource"),
150 :     function(object) {
151 :     object@Position <- object@Position + 1
152 :     object
153 :     })
154 :    
155 :     setGeneric("get_elem", function(object) standardGeneric("get_elem"))
156 :     setMethod("get_elem",
157 :     signature(object = "DirSource"),
158 :     function(object) {
159 :     filename <- object@FileList[object@Position]
160 :     list(content = readLines(filename),
161 :     uri = substitute(file(filename)))
162 :     })
163 :     setMethod("get_elem",
164 :     signature(object = "CSVSource"),
165 :     function(object) {
166 :     list(content = object@Content[object@Position],
167 :     uri = object@URI)
168 :     })
169 :     setMethod("get_elem",
170 :     signature(object = "ReutersSource"),
171 :     function(object) {
172 :     # Construct a character representation from the XMLNode
173 :     con <- textConnection("virtual.file", "w")
174 :     saveXML(object@Content[[object@Position]], con)
175 :     close(con)
176 :    
177 :     list(content = virtual.file, uri = object@URI)
178 :     })
179 :     setMethod("get_elem",
180 :     signature(object = "GmaneRSource"),
181 :     function(object) {
182 :     # Construct a character representation from the XMLNode
183 :     con <- textConnection("virtual.file", "w")
184 :     saveXML(object@Content[[object@Position]], con)
185 :     close(con)
186 :    
187 :     list(content = virtual.file, uri = object@URI)
188 :     })
189 :    
190 :     setGeneric("eoi", function(object) standardGeneric("eoi"))
191 :     setMethod("eoi",
192 :     signature(object = "DirSource"),
193 :     function(object) {
194 :     if (length(object@FileList) <= object@Position)
195 :     return(TRUE)
196 :     else
197 :     return(FALSE)
198 :     })
199 :     setMethod("eoi",
200 :     signature(object = "CSVSource"),
201 :     function(object) {
202 :     if (length(object@Content) <= object@Position)
203 :     return(TRUE)
204 :     else
205 :     return(FALSE)
206 :     })
207 :     setMethod("eoi",
208 :     signature(object = "ReutersSource"),
209 :     function(object) {
210 :     if (length(object@Content) <= object@Position)
211 :     return(TRUE)
212 :     else
213 :     return(FALSE)
214 :     })
215 :     setMethod("eoi",
216 :     signature(object = "GmaneRSource"),
217 :     function(object) {
218 :     if (length(object@Content) <= object@Position)
219 :     return(TRUE)
220 :     else
221 :     return(FALSE)
222 :     })

R-Forge@R-project.org
ViewVC Help
Powered by ViewVC 1.0.0  
Thanks to:
Vienna University of Economics and Business University of Wisconsin - Madison Powered By FusionForge