Skip to content

Commit de1962b

Browse files
author
Pham Minh Duc
committed
Fix the Turtle serializer.
- Issue: wrongly use both dbpowl and dbp for subject URI in generating TagClass.
1 parent 34d2558 commit de1962b

File tree

3 files changed

+20
-21
lines changed

3 files changed

+20
-21
lines changed

src/main/java/ldbc/snb/datagen/serializer/snb/interactive/TurtleInvariantSerializer.java

Lines changed: 13 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -91,35 +91,29 @@ protected void serialize(final Organization organization) {
9191
protected void serialize(final TagClass tagClass) {
9292

9393
StringBuffer result = new StringBuffer(350);
94+
Turtle.writeDBPData(writers[FileNames.SOCIAL_NETWORK.ordinal()],SN.getTagClassURI(tagClass.id), RDFS.label, Turtle.createLiteral(Dictionaries.tags.getClassLabel(tagClass.id)));
95+
Turtle.createTripleSPO(result, SN.getTagClassURI(tagClass.id), RDF.type, SNVOC.TagClass);
96+
9497
if (tagClass.name.equals("Thing")) {
95-
Turtle.writeDBPData(writers[FileNames.SOCIAL_NETWORK.ordinal()],"<http://www.w3.org/2002/07/owl#Thing>", RDFS.label, Turtle.createLiteral(Dictionaries.tags.getClassLabel(tagClass.id)));
96-
Turtle.createTripleSPO(result, "<http://www.w3.org/2002/07/owl#Thing>", RDF.type, SNVOC.TagClass);
97-
Turtle.createTripleSPO(result, "<http://www.w3.org/2002/07/owl#Thing>", SNVOC.id, Long.toString(tagClass.id));
98-
writers[FileNames.SOCIAL_NETWORK.ordinal()].write(result.toString());
99-
} else {
100-
Turtle.writeDBPData(writers[FileNames.SOCIAL_NETWORK.ordinal()],DBPOWL.prefixed(Dictionaries.tags.getClassName(tagClass.id)), RDFS.label,
101-
Turtle.createLiteral(Dictionaries.tags.getClassLabel(tagClass.id)));
102-
Turtle.createTripleSPO(result, DBP.fullPrefixed(Dictionaries.tags.getClassName(tagClass.id)), RDF.type, SNVOC.TagClass);
103-
Turtle.createTripleSPO(result, DBP.fullPrefixed(Dictionaries.tags.getClassName(tagClass.id)), SNVOC.id, Long.toString(tagClass.id));
104-
writers[FileNames.SOCIAL_NETWORK.ordinal()].write(result.toString());
105-
}
98+
Turtle.createTripleSPO(result, SN.getTagClassURI(tagClass.id), SNVOC.url, "<http://www.w3.org/2002/07/owl#Thing>");
99+
} else {
100+
Turtle.createTripleSPO(result, SN.getTagClassURI(tagClass.id), SNVOC.url, DBPOWL.prefixed(Dictionaries.tags.getClassName(tagClass.id)));
101+
}
102+
103+
Turtle.createTripleSPO(result, SN.getTagClassURI(tagClass.id), SNVOC.id, Long.toString(tagClass.id));
104+
writers[FileNames.SOCIAL_NETWORK.ordinal()].write(result.toString());
105+
106106
Integer parent = Dictionaries.tags.getClassParent(tagClass.id);
107107
if (parent != -1) {
108-
String parentPrefix;
109-
if (Dictionaries.tags.getClassName(parent).equals("Thing")) {
110-
parentPrefix = "<http://www.w3.org/2002/07/owl#Thing>";
111-
} else {
112-
parentPrefix = DBPOWL.prefixed(Dictionaries.tags.getClassName(parent));
113-
}
114-
Turtle.writeDBPData(writers[FileNames.SOCIAL_NETWORK.ordinal()],DBPOWL.prefixed(Dictionaries.tags.getClassName(tagClass.id)), RDFS.subClassOf, parentPrefix);
108+
Turtle.writeDBPData(writers[FileNames.SOCIAL_NETWORK.ordinal()],SN.getTagClassURI(tagClass.id), RDFS.subClassOf, SN.getTagClassURI(parent));
115109
}
116110
}
117111

118112
protected void serialize(final Tag tag) {
119113
StringBuffer result = new StringBuffer(350);
120114
Turtle.writeDBPData(writers[FileNames.SOCIAL_NETWORK.ordinal()],DBP.fullPrefixed(tag.name), FOAF.Name, Turtle.createLiteral(tag.name));
121115
Integer tagClass = tag.tagClass;
122-
Turtle.writeDBPData(writers[FileNames.SOCIAL_NETWORK.ordinal()],DBP.fullPrefixed(tag.name), RDF.type, DBPOWL.prefixed(Dictionaries.tags.getClassName(tagClass)));
116+
Turtle.writeDBPData(writers[FileNames.SOCIAL_NETWORK.ordinal()],DBP.fullPrefixed(tag.name), RDF.type, SN.getTagClassURI(tagClass));
123117
Turtle.createTripleSPO(result, DBP.fullPrefixed(tag.name), SNVOC.id, Turtle.createLiteral(Long.toString(tag.id)));
124118
writers[FileNames.SOCIAL_NETWORK.ordinal()].write(result.toString());
125119
}

src/main/java/ldbc/snb/datagen/vocabulary/SN.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,10 @@ public static String getKnowsURI(long id) {
145145
return BLANK_NODE + "knows" + String.format("%020d", id);
146146
}
147147

148+
public static String getTagClassURI(long id) {
149+
return BLANK_NODE + "tagclass" + String.format("%06d", id);
150+
}
151+
148152
public static Long formId(long id) {
149153
long lowMask = 0x0FFFFF; // This mask is used to get the lowest 20 bits.
150154
long lowerPart = (lowMask & id);
@@ -158,4 +162,4 @@ public static long composeId(long id, long date) {
158162
long idMask = ~(0xFFFFFFFFFFFFFFFFL << 33);
159163
return (bucket << 33) | (id & idMask);
160164
}
161-
}
165+
}

src/main/java/ldbc/snb/datagen/vocabulary/SNVOC.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ public class SNVOC {
9797
public static final String Tag = PREFIX + "Tag";
9898
public static final String TagClass = PREFIX + "TagClass";
9999
public static final String isPartOf = PREFIX + "isPartOf";
100+
public static final String url = PREFIX + "url";
100101

101102
/**
102103
* Gets the LDBC social network vocabulary prefix version of the input.
@@ -118,4 +119,4 @@ public static String getUrl(String string) {
118119
public static String fullprefixed(String string) {
119120
return "<" + NAMESPACE + string + ">";
120121
}
121-
}
122+
}

0 commit comments

Comments
 (0)