[ https://issues.apache.org/jira/browse/TINKERPOP-848?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17430717#comment-17430717 ]
ASF GitHub Bot commented on TINKERPOP-848: ------------------------------------------ spmallette commented on a change in pull request #1485: URL: https://github.com/apache/tinkerpop/pull/1485#discussion_r732167785 ########## File path: gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphml/GraphMLReader.java ########## @@ -138,9 +143,11 @@ public void readGraph(final InputStream graphInputStream, final Graph graphToWri case GraphMLTokens.DATA: final String key = reader.getAttributeValue(null, GraphMLTokens.KEY); final String dataAttributeName = keyIdMap.get(key); + final String defaultValue = defaultValues.get(key); if (dataAttributeName != null) { - final String value = reader.getElementText(); + String elementValue = reader.getElementText(); + final String value = elementValue.length() == 0 && defaultValue.length() != 0 ? defaultValue : elementValue; Review comment: After some more thought, it seems that perhaps we might be both right in our respective thinking on how this should work. There is enough ambiguity to warrant either approach it seems and if we use Gephi as our model (which @krlawrence was good enough to test), then we find that they have implemented it both your way and mine. I think we should follow suit and implement it both ways as well. From your perspective, @amatiushkin you may choose to leave your implementation as it is in this PR and we can look to review/merge where it stands. If you take this approach, we can just create another JIRA to have it work the way I had interpreted the specification. Alternatively, you can implement both approaches on this pull request to match the functionality as Gephi has it. Please let us know how you intend to proceed. Thanks for your patience on this by the way. I would not have guessed this issue to generate as much commenting as it has. 🙂 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@tinkerpop.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Support default attribute values in GraphMLReader > ------------------------------------------------- > > Key: TINKERPOP-848 > URL: https://issues.apache.org/jira/browse/TINKERPOP-848 > Project: TinkerPop > Issue Type: Improvement > Components: io > Affects Versions: 3.0.2-incubating > Reporter: Pavel Klinov > Priority: Trivial > Original Estimate: 2h > Remaining Estimate: 2h > > Looking at the code of GraphMLReader I see that it doesn't support default > values of attributes, which are allowed by the GraphML spec. This is a bit > annoying especially if the input defines default values for attributes which > are used for mandatory data, e.g. edge labels. > One small example is the sample graph at [1]. "d_e" is the label attribute > with a default value. There're <edge .. /> elements w/o body later in the > document and reading those will throw a "java.lang.IllegalArgumentException: > Label can not be null" exception (if the vendor considers edge labels > mandatory). > I'd personaly squash both keyIdMap and keyTypesMap into a single String -> > AttrInfo map, where AttrInfo would contain information about the data > attribute name, type, and the default value. > [1] http://www.eecs.wsu.edu/~yyao/DirectedStudyI/Datasets/AS/sample.graphml -- This message was sent by Atlassian Jira (v8.3.4#803005)