-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Proposed alternative syntax for Surface #5
Comments
That are great proposals for experiments. At this stage for us RDF Surfaces is a kind of assembly language for logic for us. Jos and I discussed today that transpilers could be imagined to translate your syntax into the current RDF Surfaces syntax to experiment with the look and feel and developer friendliness. A very literal translation would still require programmers to write programs in first-order logic. |
For me it is really nice to have it in N3 esp. for its built-ins and some surfaces are just built-ins. |
Here is an example of a Lisp-like syntactic sugar along the lines that you suggested that can be added on top of RDF surfaces: N3L. The logical meaning of these programs stays the same and still is like programming in first-order logic. What should happen with the logic in a reasoner is the core question. |
What about something like that, where
{ ... }
is a positive surface{! ... }
is a negative surface{? ... }
is a query surface{* ... }
is a neutral surfac{@:MySurfaceType ... }
is a custom type surfaceWe also need a way to declare a bnode in a surface that is only used in triples from inner surfaces. We could enclose them in
|
, like:NB: my first attempt was
{! _:x | ... }
, which looks like "x such that ...." in math notation, but that would be tricky to parse, especially if more than 3 variables are declared -- is it an invalid triple, or a list of declared variables?The proposal above is visually similar, and also reminiscent of closures in Rust and Ruby ;)
The text was updated successfully, but these errors were encountered: