Skip to content

Commit 16f7673

Browse files
committed
using OutputStreamWriter , removing Createfile method
1 parent 1c01dde commit 16f7673

File tree

1 file changed

+34
-25
lines changed

1 file changed

+34
-25
lines changed

scripts/src/main/scala/org/dbpedia/extraction/scripts/LanguageSpecificLinksGenerator.scala

Lines changed: 34 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -29,26 +29,25 @@ object LanguageSpecificLinksGenerator {
2929
arg.split(" ").map(_.trim).filter(_.nonEmpty)
3030
}
3131

32-
/**
33-
* helper function to create files and save them in te filesWriter HashMap
34-
* @param fileName
35-
*/
36-
private def createFile(fileName: String)
37-
{
38-
val file = new File(fileName)
39-
file.createNewFile()
40-
val writer = new BufferedWriter(new FileWriter(file))
41-
filesWriters += (fileName->writer)
42-
}
43-
4432
/**
4533
* helper function to write line by line in a file
34+
* create file if doesn't exist
4635
* @param file name of the file as created by the createFile Function and saved in the HashMap
4736
* @param str string to be written in the file
4837
*/
49-
private def logToFile(file: String, str: String)
38+
private def logToFile(fileName: String, str: String)
5039
{
51-
val writer = filesWriters(file)
40+
if(!filesWriters.contains(fileName))
41+
{
42+
val file = new File(fileName)
43+
val outputStream = new FileOutputStream(file)
44+
val outputStreamWriter = new OutputStreamWriter(outputStream)
45+
val bufferedWriter:BufferedWriter = new BufferedWriter(outputStreamWriter)
46+
47+
filesWriters += (fileName->bufferedWriter)
48+
}
49+
50+
val writer = filesWriters(fileName)
5251
writer.write(str)
5352
writer.newLine()
5453
}
@@ -78,17 +77,16 @@ object LanguageSpecificLinksGenerator {
7877
val baseDir = new File(args(1))
7978
val file = Source.fromFile(baseDir)
8079

81-
createFile("./languagelinks.ttl")
80+
//languagelinks triples needed are those contain schema:about predicates and wikipediapages subjects which indicated wikipedia page
81+
val regx = """.*\.wikipedia.org\/wiki.*<http:\/\/schema\.org\/about>""".r
82+
8283

8384
for(ln <- file.getLines){
8485
val triple = split(ln);
8586

8687
//check if the triple is in the correct .ttl format
8788
if(triple.length ==4){
8889

89-
//languagelinks triples needed are those contain schema:about predicates and wikipediapages subjects which indicated wikipedia page
90-
val regx = """.*\.wikipedia.org\/wiki.*<http:\/\/schema\.org\/about>""".r
91-
9290
if(regx.findFirstIn(ln) != None ){
9391
triple(0) = triple(0).replace(".wikipedia.org/wiki",".dbpedia.org/resource")
9492
logToFile("./languagelinks.ttl",triple(2)+" "+"<http://www.w3.org/2002/07/owl#sameAs>"+" "+triple(0)+" .")
@@ -123,6 +121,8 @@ object LanguageSpecificLinksGenerator {
123121
var oldQ = ""
124122
var triplesObjects = List[String]()
125123
val lines = file.getLines
124+
125+
val langRegx = """<http:\/\/(.*).dbpedia.*>""".r
126126
for(ln <- lines){
127127

128128
val triple = split(ln);
@@ -140,21 +140,16 @@ object LanguageSpecificLinksGenerator {
140140
for(obj <- triplesObjects)
141141
{
142142
//extracting language
143-
val langRegx = """<http:\/\/(.*).dbpedia.*>""".r
144143
val langRegx(lang) = obj
145144

146-
//creating file for language if not exists
145+
//initializing file name
147146
val fileName = "./llinkfiles/interlanguage_links_same_as_"+lang+".ttl"
148147

149-
if(!filesWriters.contains(fileName))
150-
{
151-
createFile(fileName)
152-
}
153-
154148
//removing itself
155149
val innerTripleObjects = triplesObjects.diff(List(obj))
156150

157151

152+
//logtofile funciton includes creating files if not exist
158153
for(obj2 <- innerTripleObjects)
159154
{
160155
logToFile(fileName,obj +" <http://www.w3.org/2002/07/owl#sameAs> " +obj2+" .")
@@ -177,6 +172,20 @@ object LanguageSpecificLinksGenerator {
177172
}
178173

179174

175+
if(option =="test")
176+
{
177+
val x = Set("a","b","c","d","e")
178+
179+
for(i<-x)
180+
{
181+
logToFile(i+".txt",i)
182+
}
183+
184+
closeWriters()
185+
186+
}
187+
188+
180189
}
181190

182191

0 commit comments

Comments
 (0)