cap: Documentation
Browse Sign In

Matching

Tagged URN matching vs CAP-specific matching

Tagged URN Semantics

Generic tagged URN matching supports ?, !, and * with a full cross-product truth table.

Use this model only for TaggedUrn operations.

CAP Direction Matching

CapUrn::accepts(pattern, request) uses media semantics for direction tags:

  • in: cap_in.accepts(request_in)
  • out: cap_out.conforms_to(request_out)

This is asymmetric by design.

CAP Non-Direction Tag Semantics

For tags other than in/out, CapUrn::accepts does not implement the full tagged-URN ?/! table.

  1. Every pattern tag must exist in the request.
  2. If either side is *, the tag matches.
  3. Otherwise values must be exactly equal.
Pattern: cap:op=extract;format=*
Request: cap:op=extract;format=pdf
Result:  match

Pattern: cap:op=extract;format=pdf
Request: cap:op=extract
Result:  no match (missing required tag)

References