@@ -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