Repository navigation
First proposal for LDES2.0: RDF Messages, interval relations, indirect membership, LDES as DCAT distribution - #116
Draft
pietercolpaert wants to merge 7 commits into
Draft
pietercolpaert wants to merge 7 commits into
pietercolpaert wants to merge 7 commits into
Conversation
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Status: discussion draft, not meant to be merged as-is. Every open point is also marked as an
Issue:in the spec text. This draft introduces breaking changes, hence why we’d call this 2.0. A client can however choose to be compliant to both LDES 1.0 and LDES 2.0.Files:
eventstreams.bs(consumer spec,Level: 2),vocabulary.bs,vocabulary.ttl,context.jsonld,server-primer.bs.Existing convention:
eventstreams.bsonly uses MUST/SHOULD/MAY for client behaviour. Producer rules moved toserver-primer.bs.What changes
1. Members are RDF Messages, pages are RDF Message logs
ldes:immutable, and in the root page the LDES context). It is the first message, and a client recognises it by content: it has the page IRI as a subject, or describes the LDES. No<> a ldes:Pagetriple is needed (ldes:Pagefollows from the domain ofldes:relation).description message of the page that links to it ( ldes:immutable
true in P1), so a client can stop revalidating before fetching it.
2. Everything is in the LDES namespace now. Alignments to TREE and DCAT where relevant
tree:is removed from the spec text. New terms:ldes:page,ldes:relation,ldes:shape,ldes:member,ldes:Page,ldes:Relation.ldes:Page,ldes:Relation,ldes:relationandldes:pageare subclass/subproperty axioms (OWL 2 RL) of their TREE counterparts. Checked withowlrl: after reasoning, a TREE client seestree:Node,tree:relation,tree:Relationandtree:nodeand can traverse an LDES. It cannot prune, as the relation has no specific TREE type.tree:Collection,tree:member,tree:shape) areskos:closeMatch. See the discussion below.4. Relations
ldes:relation [ ldes:page <p> ; … bounds … ]. Bounds are[from, until):ldes:timeFrom/ldes:timeUntil(timezone mandatory)ldes:sequenceFrom/ldes:sequenceUntilldes:pageNumber/ldes:pageNumberUntil(see point 6)tree:pathandtree:valueare replaced by the bounds.5. New traversal algorithm, small state
6. Implicit order is still possible, but now need page numbers (which still can be a tree)
ldes:timestampPathandldes:sequencePathis ordered by the log. The ordering key is (page number, index in page).ldes:pageNumber(and optionallyldes:pageNumberUntilfor a range). The root page is number 0 unless stated otherwise.rdf:Listof pages, ornextlinks (a second paging construct, and the state becomes page IRIs).7. Direct and indirect membership (new chapter)
<ES> ldes:member <m>in the message.ldes:memberGraph true(the only named graph),ldes:memberType <C>(the only subject of that type), orldes:memberPath <P>(the only subject with that path, e.g. the timestampPath).8. The LDES is one specific view, and a
dcat:Distributionldes:EventStreamis adcat:Distributionof adcat:Dataset, no longer the dataset.tree:view,tree:viewDescriptionandldes:EventSourceare removed.303 See Otherkeeps the LDES IRI and the page IRI apart. A client finds the LDES via?s rdf:type ldes:EventStreamin the root page's description message.dcat:accessURLis only used in the DCAT-AP catalog (it carries the LDES IRI), not within LDES pages.9. Retention policy moves to the LDES
ldes:retentionPolicyis now described on theldes:EventStreaminstead of the root node or a view description.ldes:DurationAgoPolicy,ldes:LatestVersionSubset,ldes:PointInTimePolicy,ldes:amountandldes:pointInTime.10. Timezones
(server primer), but clients must still cope without one. A client
uses a configured default timezone, otherwise the new
ldes:defaultTimezone of the LDES, otherwise assumes one shared,
unknown timezone within the LDES. Only when a literal without a
timezone is compared with one that has a timezone does it use the
-14h/+14h period and worst-case comparison. Skipping a member or
relation, or reporting a mis-ordered page, only happens when the
comparison is certain.
primer.
Discussion topics
ldes:pageNumberUntil, or only flat pagination?timeFrom/Until,sequenceFrom/Until,pageNumber/Until), or one genericldes:from/ldes:untilwhose datatype picks the path?ldes:pageas the relation target name?ldes:memberandldes:shapeare not subproperties oftree:member/tree:shape, because their domain istree:Collection(adcat:Dataset), so a reasoner would infer the LDES is also a dataset. Do we accept that, or add an optional alignment file?tree:viewcannot be inferred at all.profileparameter on the media type and.ldesfile infix, as in the TREE profile. RDF Messages has no media types yet.Not done yet
searchtree.svgandassets/ldes-vocabulary-overview.svgstill show TREE.vocabulary.bsstill uses MUST in term definitions; not aligned with the client-only convention yet.README.mdhas no 2.0 changelog entry; no migration note from 1.0 to 2.0.