Client-side Preprocessing and the Semantic Web

Semantic Web Interest Group,


Hello. I am pleased to share some ideas from the new Automated Planning and Scheduling Community Group<https://www.w3.org/community/planning/> pertaining to client-side preprocessing. These techniques can enable templating, generics, parametric polymorphism, and macros with every Semantic Web format.


These ideas are presented at and can also be discussed at the following locations:
https://github.com/WICG/proposals/issues/82
https://github.com/w3c-cg/planning/discussions/21


These techniques allow preprocessors, e.g., GPP or PHP, to process and produce content, e.g., N3, client-side and for this client-side preprocessing to be simply declared using markup.

<script preprocess="text/php" type="application/ld+json" src="..." />

<script preprocess="text/php" type="application/ld+json">PHP content which, when processed, results in JSON-LD</script>


Some preprocessors, e.g., PHP, can be provided with environment variables. This capability can allow arguments, e.g., templating arguments, to be passed to preprocessing contexts. Knowledgebases can also be provided to preprocessing contexts so that knowledge about arguments can be used during preprocessing. The following is a rough-draft sketch of a generic type definition which uses client-side preprocessing to vary N3 contents:


<types>
  <type name="widget" uri="...">
    <parameters>
      <parameter name="T" uri="...">
        <!-- describe type parameter here -->
      </parameter>
    </parameters>
    <metadata preprocess="text/php" type="text/n3">
      <!-- preprocessor receives the type argument for parameter T and a knowledgebase -->
    </metadata>
    <definition preprocess="text/php" type="text/n3">
      <!-- preprocessor receives the type argument for parameter T and a knowledgebase -->
    </definition>
  </type>
</types>


Thank you.



Best regards,

Adam Sobieski

Received on Thursday, 1 December 2022 15:30:15 UTC