I would like to share, for discussion, some knowledge representation ideas with respect to a URL-addressable predicate calculus.
In the following examples, we can use the prefix “mw” for “https://machine.wikipedia.org/%E2%80%9D as per xmlns:mw="https://machine.wikipedia.org/" .
mw:P1 → https://machine.wikipedia.org/P1
mw:P1(arg0, arg1, arg2) → https://machine.wikipedia.org/P1?A0=arg0&A1=arg1&A2=arg2
mw:P2 → https://machine.wikipedia.org/P2
mw:P2<t0, t1, t2> → https://machine.wikipedia.org/P2?T0=t0&T1=t1&T2=t2
mw:P2<t0, t1, t2>(arg0, arg1, arg2) → https://machine.wikipedia.org/P2?T0=t0&T1=t1&T2=t2&A0=arg0&A...
Some points:
1. There is a mapping between each predicate calculus expression and a URL.
2. Navigating to mapped-to URLs results in processing on servers, e.g. PHP scripts, which generates outputs.
3. The outputs vary per the content types requested via HTTP request headers.
4. The outputs may also vary per the languages requested via HTTP request headers.
5. Navigating to https://machine.wikipedia.org/P1 generates a definition for a predicate.
6. Navigating to https://machine.wikipedia.org/P2?T0=t0&T1=t1&T2=t2 generates a definition for a predicate after assigning values to the parameters T0, T1, T2. That is, a definition of a predicate is generated by a script, e.g. a PHP script, which may vary its output based on the values for T0, T1, T2.
7. The possible values for T0, T1, T2, A0, A1, A2 may be drawn from the same set. T0, T1, T2 need not be constrained to be types from a type system.
8. The values for T0, T1, T2, A0, A1, A2, that is t0, t1, t2, arg0, arg1, arg2, could also each resolve to URLs.
Best regards, Adam Sobieski http://www.phoster.com/contents/