@prefix this: . @prefix sub: . @prefix schema: . @prefix gen: . @prefix np: . @prefix dct: . @prefix nt: . @prefix npx: . @prefix xsd: . @prefix rdfs: . @prefix prov: . sub:Head { this: a np:Nanopublication; np:hasAssertion sub:assertion; np:hasProvenance sub:provenance; np:hasPublicationInfo sub:pubinfo . } sub:assertion { sub:paragraph a gen:Paragraph; schema:about ; schema:title "Single placeholders are substituted as text"; gen:hasContent """

A single-value placeholder is not a bound SPARQL variable. Its value is substituted into the query as text before the query is parsed, so by the time the query runs the placeholder is gone and only the value remains.

The practical consequence is that bound(?_name) cannot be used: it becomes bound(\"some value\"), which is not valid SPARQL. Guard a comparison with coalesce instead, which yields the fallback when the comparison cannot be evaluated:

filter(coalesce(?date >= ?_startDate, false))

Multi-value placeholders behave differently: they are bound through their values block and are ordinary variables inside the query.

"""; gen:hasPositionString "01.05" . } sub:provenance { sub:assertion prov:wasAttributedTo . } sub:pubinfo { this: dct:created "2026-09-09T14:46:50Z"^^xsd:dateTime; dct:creator ; dct:license ; npx:introduces sub:paragraph; rdfs:label "Single placeholders are substituted as text"; nt:wasCreatedFromProvenanceTemplate ; nt:wasCreatedFromPubinfoTemplate , ; nt:wasCreatedFromTemplate . sub:sig npx:hasAlgorithm "RSA"; npx:hasPublicKey "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAl8cMusqtNyKA6UIsi3f7BAcZmHQXWxU0qk0PLsboMWQxYrGBfGgHTgRHJrBRxL+Zn9kJHKVmz2smDcjCBptXi/OwWy80gjsx+Pbe6IWz3zFPWF1UoFIKfPnC0slV67CQgdM853zW7Bmk9/uflCtK4EtZKmPdRGtUHVC7DTVvDBMDzLRGdE2KCBVN29EbM5GGVNvijYbaZQ9OFQPBkQshayqSIyGRr6rreJdkrRVLIzu3uuAjKYydaeXZWSN2JLnVBwrClKUxaEdCwhb5nXpMtKOMD+R+LgaXLeJUWM8BdRSYnta9ZqI5pHY4y3v+eW7J+HHeTvRbHvlik+Z4hFUXmQIDAQAB"; npx:hasSignature "fIJF7xiipOcqBZC9xSNK3dzFtxoIp+HkF4a+QxMpSO2MKtBdaxnXSVG4l41DS9YCiX77ElaBK8u+ykiXQX9B3UlS8dTRs8GbBGPb4am2YYwlxFfVo9bEYbBLIqa4LUyD+IEf3fb9YqYXmDl2QStc6lRnA+kV6FV6umM2gkXn4scITP/sLA5Fwna/ECp2rmL1+hUbkxGobRREavB6LQV0qyZJzR14kFdrQXsoD9MWJ8NIPuh3Yj2rydJDdtD4TlYdYTFLko1qz9C5/gPZzZqCnWxfO5p78gbgMmouq8839acunAXVqJkIk6b9hZ8dcGfIGfSQNvzaxQrplDwfChXRCQ=="; npx:hasSignatureTarget this:; npx:signedBy . }