Add Task/TODO shape (RFC 5545 iCalendar VTODO)#62
Conversation
Adds a SHACL shape for cal:Vtodo grounded in the W3C iCalendar in RDF vocabulary, mirroring the RFC 5545 §3.6.2 VTODO calendar component. Constrains summary, description, dtstart, due, status (NEEDS-ACTION / IN-PROCESS / COMPLETED / CANCELLED), priority (0-9), percentComplete (0-100), and categories. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Remove rdf: and rdfs: prefix declarations that were not used. - Note in cal:percentComplete description that RFC 5545 §3.8.1.11 ties the value to status (0 when NEEDS-ACTION, 100 when COMPLETED, meaningful when IN-PROCESS); the shape does not enforce that cross-field relationship in line with the catalogue's Interoperability First design principle. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Adds a new SHACL domain shape for task/TODO resources (cal:Vtodo) using the W3C iCalendar-in-RDF vocabulary, aligned with RFC 5545’s VTODO component. This extends the repository’s existing calendar-related shapes (e.g., meeting.ttl, event.ttl) with a task-focused validation shape.
Changes:
- Introduces
task_shape:TaskShapetargetingcal:Vtodo. - Adds SHACL property constraints for core VTODO fields (summary, description, dtstart, due, status enum, priority range, percentComplete range, repeatable categories).
- Includes standard shape metadata (
dct:created,vs:term_status, provenance links, references,sh:codeIdentifier).
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
Yesterday @renyuneyun presented task management app. I have demo app using simple tasks & projects in sai-js. Also @NoelDeMartin has focus app with tasks. I'm not sure about SolidOS but I note that data-module for tasks mentions SolidOS issues https://github.com/solid-contrib/data-modules/tree/main/tasks/vanilla |
Type of Change
Domain
Shape Details
Shape Change
Description:
Adds a SHACL shape for
cal:Vtodogrounded in theW3C iCalendar in RDF vocabulary,
which mirrors the iCalendar
VTODOcalendar component defined inRFC 5545 §3.6.2.
This sits alongside the existing
meeting.ttlandevent.ttldomain files (both targeting
cal:Vevent) and reuses theW3C iCalendar in RDF vocabulary they already use.
Constraints cover:
cal:summary(xsd:string, max 1) – short titlecal:description(xsd:string, max 1) – longer descriptioncal:dtstart(xsd:dateorxsd:dateTime, max 1)cal:due(xsd:dateorxsd:dateTime, max 1)cal:status(xsd:string, max 1, enumNEEDS-ACTION/IN-PROCESS/COMPLETED/CANCELLEDper RFC 5545 §3.8.1.11 for
VTODO)cal:priority(xsd:integer0-9 per RFC 5545 §3.8.1.9)cal:percentComplete(xsd:integer0-100; cross-fieldsemantics with
cal:statusare documented but not enforced)cal:categories(xsd:string, repeatable)Immutability Confirmation
(New file – no existing shapes were touched.)
Examples
Valid example
Invalid example
Compatibility
New domain file. No existing shape touched. Reuses the same
cal:namespace asmeeting.ttlandevent.ttlfor a differenttarget class (
cal:Vtodo).Validation
Tools used:
pyshacl, plus the repository'sscripts/validate-shacl-shapes-file.py,scripts/check-metadata-and-immutability-file.py, andscripts/check-namespaces-and-names-file.py.Reviewer Checklist