Re: [ANN] Ontogen: A Version Control System for RDF Leveraging RDF-star

Dear Niklas,


Thank you for your update. To be honest, I haven't closely followed the recent discussions, as I've been focusing on implementing Ontogen based on my work with RDF.ex, the Elixir implementation of RDF 1.1 with the RDF-star spec from the W3C Community Group Final Draft Report of 2021 [1]. I recently updated this to align with the latest W3C RDF 1.2 test suite, covering the changes specified there.


Your response reminds me that I should definitely re-read the spec in its latest edition. I still need to determine if and how I could or must change my implementation of compounds. 


However, using this new operator obviously means implementing it in a new version of RDF.ex with support for the latest RDF 1.2 spec. How stable can the last edition be considered?


- Is it stable enough to serve as a basis for implementing the final version, or is there still too much fluctuation to be expected?
- Is the test suite maintained so that I can rely on conformance with the latest spec when the test suite passes my implementation?


I need to read the new spec to see how the following core functionality, which I want to maintain, can be implemented in this new version with `rdf:reifies`: A core feature of Ontogen that I absolutely want to maintain is the ability to store the graph with the provenance history of the dataset's statements completely isolated from the dataset statements themselves in a dedicated, separate named graph of the RDF dataset of the repository. This is analogous to the separation of a source code repository's version history in the isolated `.git` subdirectory from the actual source code in the surrounding directory. 


Currently, I achieve this by using this part of the old RDF-star specification, according to the old W3C Community Group Final Draft Report of 2021 [1]:


> A triple can be used as an _asserted triple_, a _quoted triple_, or both, in a given graph.


My initial implementation in RDF.ex 0.10 was based on this, and it was updated recently in RDF.ex 2.0 to pass the current version specified in the latest test suite (as of April this year).


I'll need to understand the latest edition first to see how something similar can be achieved for Ontogen in this latest version.


Best regards,
Marcel



[1]: <https://w3c.github.io/rdf-star/cg-spec/2021-12-17.htm>



> On Aug 15, 2024, at 12:44 AM, Niklas Lindström <lindstream@gmail.com> wrote:
> 
> 
> Dear Marcel,
> 
> 
> Thank you for your interest and work!
> 
> 
> Given your earlier feedback, I hope you find it valuable that the
> current RDF-star design now directly supports multiple triples being
> reified by one reifier. (I believe you've expressed support for that
> before [1].)
> 
> 
> Thus you can directly use this construct:
> 
> 
> :employee38
> :firstName "John" ~ :compound1 ;
> :familyName "Smith" ~ :compound1 ;
> :jobTitle "Assistant Designer" ~ :compound1 .
> 
> 
> :compound1 a rtc:Compound ;
> :statedBy :bob ;
> :statedAt "2022-02-16" .
> 
> 
> Which means exactly the same as:
> 
> 
> :employee38
> :firstName "John" ;
> :familyName "Smith" ;
> :jobTitle "Assistant Designer" .
> 
> 
> :compound1 a rtc:Compound ;
> :statedBy :bob ;
> :statedAt "2022-02-16" ;
> rdf:reifies <<( :employee38 :firstName "John" )>> ,
> <<( :employee38 :familyName "Smith" )>> ,
> <<( :employee38 :jobTitle "Assistant Designer" )>> .
> 
> 
> (The latter `<<( ... )>>` form is explicit use of "bare" triple terms,
> which I believe is expected to be mostly used in N-triples, and rarely
> if ever in "user-facing" syntax.)
> 
> 
> Best regards,
> Niklas
> 
> 
> [1]: <https://github.com/w3c/rdf-ucr/issues/26#issuecomment-1991967036>
> 
> 
> 
> 
> 
> 
> 
> 
> On Mon, Aug 12, 2024 at 12:56 PM Marcel Otto
> <marcelotto.de@googlemail.com> wrote:
>> 
>> 
>> 
>> 
>> 
>> Dear RDF-star Community,
>> 
>> 
>> I am pleased to introduce Ontogen - a new version control system specifically designed for RDF that heavily utilizes RDF-star. This is the system I've mentioned at the "RDF-star and RDF 1.2" session of the W3C Breakout Day earlier this year and in RDF-UCR issue #13 (https://github.com/w3c/rdf-ucr/issues/13).
>> 
>> 
>> After a year of intensive development, made possible through the generous support of the NLnet Foundation, Ontogen is now available in an early version.
>> 
>> 
>> Ontogen showcases the power and flexibility of RDF-star, demonstrating its practical application in versioning RDF data:
>> 
>> 
>> 1. Core utilization of RDF-star: Ontogen uses RDF-star as the foundation for its versioning model, allowing for fine-grained control over individual statements without relying on Named Graphs. It does this based on the RTC vocabulary (https://w3id.org/rtc) to create virtual, URI-identifiable sets of statements.
>> 2. Speech Act-based commit model: Ontogen implements a novel commit model based on speech acts. This model enables detailed tracking of data provenance and evolution.
>> 3. Integration with PROV and DCAT: Ontogen integrates the PROV vocabulary for comprehensive provenance information and implements repositories as DCAT catalogs.
>> 
>> 
>> While Ontogen is still in an early stage of development and some important extensions are pending (such as full RDF dataset support and branching), I believe it already serves as a valuable example of RDF-star's potential.
>> 
>> 
>> For more information, documentation, and access to the source code, please visit: https://ontogen.io/
>> 
>> 
>> Best regards,
>> Marcel Otto
>> 

Received on Thursday, 15 August 2024 13:30:56 UTC