Checking FDO guidelines (Bonino et al. 2019; Anders et al. 2023) against its current implementations as DOIP (“Digital Object Interface Protocol Specification, Version 2.0” 2018) and Linked Data Platform (LDP) (Bonino da Silva Santos, Guizzardi, and Sales 2022), with suggestions for required additions.
G1: invest for many decades |
Handle system stable for 20 years, DOIP 2.0 since 2017. |
Ensure FDO types will not be protocol-bound as DOIP might be updated/replaced |
HTTP stable for 30 years, Semantic Web for 20 years. http:// URIs mostly replaced by https:// . |
Keep flexibility of RDF serialisation formats which may change more frequently |
G2: trustworthiness |
DOI/Handle trusted by all major academic publishers and data repositories. DOIP relatively unknown, in effect only one implementation. |
Further promote DOIP and justify its benefits. Build tutorials and OSI open source implementations. Standardise DOIP-over-HTTP alternative. |
JSON-LD used by half of all websites (W3Techs n.d.), however previous bad experiences with Semantic Web may deter adopters |
Ensure simplicity for end developers, rather than semantic overengineering. Example-driven documentation. |
G3: follows FAIR principles |
See Table [tbl:fair-data-maturity-model] |
Ensure all FAIR principles are covered, build complete examples. |
Touched briefly, see Table [tbl:fair-data-maturity-model] |
Add explicit expression to show each FAIR principle fulfilled. |
G4: machine actionability |
CRUD and extension operations dynamically listed (see Table [tbl:fdo-web-middleware]) |
Specify which operations should work for a given type, to reduce need for dynamic lookup. Specify input/output expectations formally (e.g. JSON Schema). |
HTTP CRUD operations, Open API (see Table [tbl:fdo-web-middleware]) |
Document operations so client can make subsequent HTTP calls. |
G5: abstraction principle |
Handle PIDs as abstraction base. DOIP operations can use any transport protocol. |
Document transport protocols as FDOs, recommend which transport to use. |
URI as abstraction base. Does not specify PID requirements. |
Give stronger deployment recommendations. |
G6: stable binding between entities |
Machine-navigation through PIDs and operations specified per type. Unclear when metadata field is a PID or plain text. |
Make datatype of fields explicit to support navigation. |
Machine-navigation through URIs via properties and types. Unclear when URI should be followed or is just identifier, but always distinct from plain text. |
|
G7: encapsulation |
Operations discovered at runtime (0.DOIP/Op.ListOperations ). |
Allow method discovery by type FDOs in advance (Lannom et al. 2022). |
HTTP methods discovered at runtime (OPTIONS ), indempotent methods attempted directly. Unsupported methods reported using LDP constraints to human-readable text. |
Declare supported methods in advance, e.g. OpenAPI (Miller et al. 2021) |
G8: technology independence |
In theory independent, in reality depends on single implementations of Handle system and DOIP |
Encourage open source DOIP testbeds and lighter reference implementations |
Multiple HTTP implementations, multiple LDP implementations. No FDOF implementations. |
Develop demonstrator of FDOF usage based on existing LDP server. |
G9: standard compliance |
Handle (Sun, Lannom, and Boesch 2003), DOIP (“Digital Object Interface Protocol Specification, Version 2.0” 2018). FDO requirements not standardised yet. |
Formalise standard process of FDO requirements (Weiland et al. 2022) |
HTTP, LDP. However FDOF is not yet standardised. |
Formalise FDOF from FDOF-SEM working group. |
FDOF1: PID as basis |
Extensive use of Handle system. |
Clarify how local testing handles can be used during development, how “temporary” FDOs should evolve (Anders et al. 2022). Register 0.DOIP/* and 0.FDO/* as actual PIDs. |
HTTP URLs as basis for identifiers, but they are frequently not persistent. |
Add strong guidance for PID services like w3id and persistence policies (McMurry et al. 2017). |
FDOF2: PID record w/ type |
Unspecified how to resolve from Handle to DOIP Service (!), in practice 10320/loc , 0.TYPE/DOIPService , URL , URL_REPLICA |
Document requirements for PID Record |
w3id/purl PIDs redirect without giving any metadata. Datacite DOIs content-negotiate to give registered metadata. |
Add FAIR Signposting (Van de Sompel et al. 2022) at PID provider for minimal PID record |
FDOF3: PID resolvable to bytestream & metadata |
Byte stream resolvable (0.DOIP/Retrieve ), includeElementData option can retrieve bytestream or full object structure. No method/attribute defined for separate metadata, only directly in PID Record. Unclear meaning of multiple items and bytestream chunks. |
Clarify expectations for multiple items. Recommend chunks to not be used. |
URIs resolvable by default. Multiple ways to resolve metadata, unclear preference. |
Add FAIR Signposting and preference order. |
FDOF4: Additional attributes |
Freetext attribute keys. Attributes should be defined for FDO type. |
Require that attribute keys should be PIDs (or have predefined mapping to PIDs). Explicitly allow attributes not already defined in type. |
All attributes individually identified. Any Linked Data attributes can be used by URI or with mapped prefix. |
Clarify type expectations of required/recommended/optional attributes. |
FDOF5: Interface: operation by PID |
Extended operations use PID, but “pid-like” DOIP operations/types are not registered as handles. |
Register 0.DOIP/* and 0.FDO/* as PIDs. Clarify that operations can be mapped to protocol directly. |
CRUD operations used directly in HTTP (e.g. PUT ). Unclear how to provide PID for additional operations. |
Specify how additional operations should be called over HTTP. |
FDOF6: CRUD operations + extensions |
0.DOIP/Op.Create , Op.Retrieve , Op.Update , Op.Delete but also 0.DOIP/Op.Search . |
Document |
PUT , GET , POST , DELETE , PATCH , HEAD – extension operations (e.g. WebDAV COPY ) not used, resource patterns (Ekuan et al. 2023) are used instead. |
Document how operation resources can be discovered from an LPD container. Document search API. |
FDOF7: FDOF Types related to operations |
Not yet formalised, by DOIP discoverable on a given FDO rather than type. PR-TypingFDOs leaves this open. |
Add explicit relation between type and operations |
OPTIONS per LDP Resource, but not by type. Common types (ldp:Resource , ldp:Container ) indicate LDP support, but are not required. |
Always make LDP types explicit in FDO profile. |
FDOF8: Metadata as FDO, semantic assertions |
DOIP includes all metadata in PID Record. Separate Metadata FDO need custom property. |
Specify a 0.FDO/metadata or similar to point to Metadata FDOs. |
Assertions are always with semantics, using RDF vocabularies. Unspecified how to find additional metadata resources, rdfs:seeAlso is common. |
Use FAIR Signposting describedby link relation to additional metadata PIDs |
FDOF9: Different metadata levels |
Defines open-ended “Response Attributes” without namespaces, but mandated as “None” for all CRUD operations. Metadata would need to be bundled within custom FDO types or attributes. Unclear how levels are separated within single FDO representation (may need FDOF8). |
Declare which metadata are expected within response attribute or within FDO object. Require PIDs for custom attributes. Define how alternate metadata levels can be represented separately. |
Undefined how to handle multiple metadata granularities or domains, alternative LDP containers can present different views on same stored objects. |
Define how to navigate to alternate views and their semantic implications, e.g. owl:sameAs |
FDOF10: Metadata schemas by community |
Metadata schemas are in practice managed on single Cordra server as local types, using JSON Schema. |
Require types to be FDOs with registered PIDs, implement shared types. |
Plethora of existing RDF vocabularies/ontologies managed by larger communities, e.g. OBO Foundry (Smith et al. 2007) |
Rather document better how individual ad-hoc schemas can be started for prototypes. |
FDOF11: FDO collections w/ semantic relations |
Collection type undefined by DOIP. Informal use of HAS_PARTS Handle attribute (e.g. (Semmler et al. 2022)). |
|
LDP Containers required by specification, also user-created (eg. BasicContainer ). |
Clarify relation to other collections like DCAT 3 (Dataset Exchange Working Group 2023), Schema.org Dataset, OAI-ORE (Lagoze et al. 2008) |
FDOF12: Deleted FDO preserve PID w/ tombstone |
Tombstone for deleted resource undefined by DOIP. 0.DOIP/Status.104 status code does not distinguish “Not Found” or “Gone” |
Formalise tombstone requirements with new FDO type |
410 Gone recommended, but 404 Not Found common. No requirement for tombstone serialisation |
Formalise tombstone requirements and serialisation |