Skip to content

Commit c8b8800

Browse files
committed
Added dictionary citiesByCountry.
Fixed som minor bugs in order to improve robustness.
1 parent 4f1549f commit c8b8800

File tree

5 files changed

+1495
-11
lines changed

5 files changed

+1495
-11
lines changed

ldbc_socialnet_dbgen/src/main/java/ldbc/socialnet/dbgen/dictionary/LocationDictionary.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ public class LocationDictionary {
5656

5757
public static final int INVALID_LOCATION = -1;
5858
private static final String SEPARATOR = " ";
59-
private static final String SEPARATOR_CITY = " ";
59+
private static final String SEPARATOR_CITY = " ";
6060

6161
int numUsers;
6262
int curLocationIdx;
@@ -195,7 +195,9 @@ public int getRandomCity(int countryId) {
195195
}
196196

197197
if (citiesFromCountry.get(countryId).size() == 0) {
198-
System.err.println("Country with no known cities");
198+
Location location = locations.get(countryId);
199+
String countryName = location.getName();
200+
System.err.println("Country with no known cities: "+countryName);
199201
return INVALID_LOCATION;
200202
}
201203

@@ -235,12 +237,13 @@ private void readCities() {
235237
String line;
236238
while ((line = dictionary.readLine()) != null){
237239
String data[] = line.split(SEPARATOR_CITY);
240+
// System.err.println(data[0]);
238241
if (countryNames.containsKey(data[0])) {
239242
Integer countryId = countryNames.get(data[0]);
240-
if (!cityNames.containsKey(data[2])) {
243+
if (!cityNames.containsKey(data[1])) {
241244
Location location = new Location();
242245
location.setId(locations.size());
243-
location.setName(data[2]);
246+
location.setName(data[1]);
244247
location.setLatt(locations.get(countryId).getLatt());
245248
location.setLongt(locations.get(countryId).getLongt());
246249
location.setPopulation(-1);
@@ -250,7 +253,7 @@ private void readCities() {
250253
isPartOf.put(location.getId(), countryId);
251254
citiesFromCountry.get(countryId).add(location.getId());
252255

253-
cityNames.put(data[2], location.getId());
256+
cityNames.put(data[1], location.getId());
254257

255258
cities++;
256259
}

ldbc_socialnet_dbgen/src/main/java/ldbc/socialnet/dbgen/dictionary/OrganizationsDictionary.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -102,16 +102,19 @@ public void extractOrganizationNames() {
102102
String data[] = line.split(SEPARATOR);
103103
String locationName = data[0];
104104
if (locationName.compareTo(lastLocationName) != 0) {
105-
if (locationDic.getCountryId(locationName) != LocationDictionary.INVALID_LOCATION) {
105+
if (locationDic.getCountryId(locationName) != LocationDictionary.INVALID_LOCATION &&
106+
locationDic.getCityId(data[2]) != LocationDictionary.INVALID_LOCATION ) {
106107
lastLocationName = locationName;
107108
curLocationId = locationDic.getCountryId(locationName);
108109
String organizationName = data[1].trim();
109110
organizationsByLocations.get(curLocationId).add(organizationName);
110111
Integer cityId = locationDic.getCityId(data[2]);
111112
organizationToLocation.put(organizationName, cityId);
112113
totalNumOrganizations++;
113-
}
114-
} else{
114+
} /*else {
115+
System.err.println("ERROR:Invalid country or city of organization: "+locationName+" "+data[2]);
116+
}*/
117+
} else if( locationDic.getCityId(data[2]) != LocationDictionary.INVALID_LOCATION ) {
115118
String organizationName = data[1].trim();
116119
organizationsByLocations.get(curLocationId).add(organizationName);
117120
Integer cityId = locationDic.getCityId(data[2]);
@@ -128,9 +131,8 @@ public void extractOrganizationNames() {
128131

129132
// 90% of people go to top-10 universities
130133
// 10% go to remaining universities
131-
public int getRandomOrganization(int countryId) {
134+
public int getRandomOrganization(int locationId) {
132135

133-
int locationId = countryId;
134136
double prob = randUnRelatedOrganization.nextDouble();
135137

136138
Vector<Integer> countries = locationDic.getCountries();

ldbc_socialnet_dbgen/src/main/java/ldbc/socialnet/dbgen/generator/ScalableGenerator.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,8 @@ public enum OrganisationType {
164164
private static final String emailDicFile = DICTIONARY_DIRECTORY + "email.txt";
165165
private static final String givennamesDicFile = DICTIONARY_DIRECTORY + "givennameByCountryBirthPlace.txt.freq.full";
166166
private static final String organizationsDicFile = DICTIONARY_DIRECTORY + "institutesCityByCountry.txt";
167-
private static final String cityDicFile = DICTIONARY_DIRECTORY + "institutesCityByCountry.txt";
167+
// private static final String cityDicFile = DICTIONARY_DIRECTORY + "institutesCityByCountry.txt";
168+
private static final String cityDicFile = DICTIONARY_DIRECTORY + "citiesByCountry.txt";
168169
private static final String languageDicFile = DICTIONARY_DIRECTORY + "languagesByCountry.txt";
169170
private static final String popularPlacesDicFile = DICTIONARY_DIRECTORY + "popularPlacesByCountry.txt";
170171
private static final String agentFile = DICTIONARY_DIRECTORY + "smartPhonesProviders.txt";

0 commit comments

Comments
 (0)