Interesting.
Why would you have the prefix "https://machine.wikipedia.org/". This
could be useful for many projects particular Wikidata, - not just
wikipedia. Would "https://wikimachine.org/" or something be better?
"mw" is used as prefix for
"mw:P2<t0, t1, t2>" does not seem to be supported by SPARQL and < and
>
are not allowed in IRI_REF. Ordinary parentheses seems to be allowed.
The rule is '<' ([^<>"{}|^`\]-[#x00-#x20])* '>'
"mw:P1(arg0, arg1, arg2)" and "mw:P2<t0, t1, t2>" Why are there
two
kinds of input? Wouldn't one suffice.
"mw:P1" Why are the identifiers prefixed with P? That collides with the
Wikidata properties.
"mw:P1(arg0, arg1, arg2)" This form does not allow for optional arguments.
There is also the question of what should be returned. There should be
room for error messaging.
One idea I have not followed through is to make an empty SPARQL endpoint
that would just provide SPARQL functions (extension functions). This way
the function could possibly be used in a federated query.
best regards
Finn Årup Nielsen
On 10/17/18 11:32 AM, Adam Sobieski wrote:
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/” 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&…
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/
_______________________________________________
Wiki-research-l mailing list
Wiki-research-l(a)lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wiki-research-l