That seems less like a reasoning issue and more an issue of building up an ASCII chart in a single pass. I doubt most humans would be able to accomplish that.
To demonstrate this a bit, I asked for HP's family tree as JSON, suitable for use in a charting library, and this is what it came up with:
Sorry about HN formatting, but you get the idea. This looks fairly accurate to me. What about this demonstrates less "reasoning" then turning it into an ASCII chart?
To demonstrate this a bit, I asked for HP's family tree as JSON, suitable for use in a charting library, and this is what it came up with:
---
{ "nodes": [ { "id": "Harry Potter" }, { "id": "Ginny Weasley" }, { "id": "James Potter" }, { "id": "Lily Potter (née Evans)" }, { "id": "Arthur Weasley" }, { "id": "Molly Weasley (née Prewett)" }, { "id": "Fleamont Potter" }, { "id": "Euphemia Potter" }, { "id": "Mr. Evans" }, { "id": "Mrs. Evans" }, { "id": "Vernon Dursley" }, { "id": "Petunia Dursley (née Evans)" }, { "id": "Dudley Dursley" }, { "id": "James Sirius Potter" }, { "id": "Albus Severus Potter" }, { "id": "Lily Luna Potter" } ], "links": [ { "source": "Harry Potter", "target": "James Potter" }, { "source": "Harry Potter", "target": "Lily Potter (née Evans)" }, { "source": "Ginny Weasley", "target": "Arthur Weasley" }, { "source": "Ginny Weasley", "target": "Molly Weasley (née Prewett)" }, { "source": "James Potter", "target": "Fleamont Potter" }, { "source": "James Potter", "target": "Euphemia Potter" }, { "source": "Lily Potter (née Evans)", "target": "Mr. Evans" }, { "source": "Lily Potter (née Evans)", "target": "Mrs. Evans" }, { "source": "Petunia Dursley (née Evans)", "target": "Mr. Evans" }, { "source": "Petunia Dursley (née Evans)", "target": "Mrs. Evans" }, { "source": "Vernon Dursley", "target": "Petunia Dursley (née Evans)" }, { "source": "Dudley Dursley", "target": "Vernon Dursley" }, { "source": "Dudley Dursley", "target": "Petunia Dursley (née Evans)" }, { "source": "James Sirius Potter", "target": "Harry Potter" }, { "source": "James Sirius Potter", "target": "Ginny Weasley" }, { "source": "Albus Severus Potter", "target": "Harry Potter" }, { "source": "Albus Severus Potter", "target": "Ginny Weasley" }, { "source": "Lily Luna Potter", "target": "Harry Potter" }, { "source": "Lily Luna Potter", "target": "Ginny Weasley" } ] }
---
Sorry about HN formatting, but you get the idea. This looks fairly accurate to me. What about this demonstrates less "reasoning" then turning it into an ASCII chart?