Thank you both.
> On Feb 9, 2022, at 1:42 PM, Andrii Berezovskyi <[email protected]> wrote:
>
> Ryan,
>
> Here is an example of how we use it in JUnit:
> https://github.com/eclipse/lyo/blob/aa3b18e4f28f3960d3a86a0b54151dccec2f139f/core/oslc4j-jena-provider/src/test/java/org/eclipse/lyo/oslc4j/provider/jena/JenaModelHelperTest.java#L64
>
> And here is an AssertJ helper we wrote:
> https://github.com/eclipse/lyo/blob/aa3b18e4f28f3960d3a86a0b54151dccec2f139f/core/oslc4j-jena-provider/src/test/java/org/eclipse/lyo/oslc4j/provider/jena/helpers/JenaAssert.java
>
> /Andrew
>
> On 2022-02-09, 17:10, "Shaw, Ryan" <[email protected]> wrote:
>
> Thank you, Andy.
>
> I agree that working on the triple level is the correct way to approach
> this. I was looking for something quick and dirty that would work with
> textual diffing by a VCS, hence my focus on the blank node labels.
>
> Are there any examples of how to use the isomorphism utilities in Jena?
>
>> On Feb 5, 2022, at 12:48 PM, Andy Seaborne <[email protected]> wrote:
>>
>>
>>
>> On 04/02/2022 19:09, Shaw, Ryan wrote:
>>> Hello,
>>> I am trying to experiment with generating diffable N-Triples or flat Turtle
>>> files.
>> ...
>>> Thanks,
>>> Ryan
>>
>>
>> Info: There is work on a charter for
>>
>> "RDF Dataset Canonicalization and Hash Working Group"
>>
>> https://w3c.github.io/rch-wg-charter/
>>
>> The end of section 1 has some links to related work.
>>
>> Given RDF is inherently unordered, canonicalization and "diff of triples"
>> are related.
>>
>>
>> For diff-able files, what counts as "different" between two files?
>>
>> Instead of changing the bnode algorithm, have you considered making use of
>> bnode-isomorphism? That is, during a diff, maintain a growing mapping from
>> bnodes in one list of triples to bnodes in the other list?
>> Iso.isomorphicTriples
>>
>> (The list being the triples in encounter order during parsing). It is
>> working not so much on the syntax as the abstraction of triples. e.g A
>> Turtle file and an NT file produced by parsing the TTL file can be defined
>> to be "the same".
>>
>> It's fairly portable across files generated by other systems as well except
>> for Turtle lists - Jena as a fixed order for triple generation for a list
>> but it isn't necesasrily the same for all systems.
>>
>> Jena's Turtle algorithm, which is in LangTurtleBase, generates in list
>> order, with rdf:first, then rdf:rest; the triple the referencing the list
>> appears after the list. It happens to be the way the spec explains it:
>> https://www.w3.org/TR/turtle/#sec-parsing-triples
>> but that is defining the outcome and isn't a requirement.
>>
>> Andy
>
>