-
-
Notifications
You must be signed in to change notification settings - Fork 13
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
Missing parts in documetation #113
Comments
I understand perfectly what you mean, since the research is at the meta level while practical applications are at the concrete level. So far I have put a lot of effort into understanding the meta level to obtain algorithms and insight that can be exploited in practical applications. Bit by bit I am expanding this toolbox, so it becomes a more powerful framework of reasoning over time. In mathematics and physics, you use matrices a lot, right? Here is an example when dealing with matrices:
Symmetric paths are properties that are preserved under some operations on elements. They are very common in many areas, but people are not used to think of them. Path semantics teaches you to go looking for them. In logic, you would write:
It is harder to see in logic that this got something to do with the So, are path semantics limiting then, since it can't describe all equations? No! There is no problem reasoning with path semantics at a meta level of equations:
Yet, this is not the only way path semantics is useful. When you have a partially understood problem, you can reason about it the way programmers do, and then go directly into proving things about it. Here are two examples from Eco PistonDevelopers/eco#16 and PistonDevelopers/eco#34. Path semantics is used often used for problems that are not fully understood, for example:
Path semantics is equivalent to logic, but it is constrained to talk about functions. This is something I find very valuable. If I am working with functions, then I automatically start thinking about what properties these functions have. When working with equations or logic, I don't know how to measure progress. With functions this becomes much easier. Example: Gaussian curvature and physical simulations of soft bodiesSome concepts are also hard to understand if you don't describe them as functions. For example, the Gaussian curvature (a real number) of a physical shape in 3D is defined for any point on a surface, but what does it mean that this number is conserved when the shape is deformed? You can define points on a surface any way you like! How do we know which points are the same when deforming the shape?
The answer is that if you create a uv-map, like in 3D programs, then you can store the Gaussian curvature in a floating point texture. The distances to neighborhood points on the surface are in equilibrium as a spring force, and Gaussian curvature describes this equilibrium in a compact way. When you deform a shape, you create tension in the curvature and this affects the soft body motion in physical simulations. Therefore, if you model e.g. clothing in 3D with springs, you get the conservation of Gaussian curvature for free, because springs hide these laws. Intuitively:
|
Here is another example where path semantics makes things easier to notice https://en.wikipedia.org/wiki/Triangular_matrix.
Notice that the descriptions from Wikipedia are only partial knowledge. They don't cover all the cases. Written like this:
A path semantics algorithm that searches for these connections would infer the total knowledge easily. |
It's very nice to have somebody to talk about practical applications of path semantics. Feel free to ask questions and come up with ideas for what can show off the power of path semantics. |
One point I made that could be clearer:
In path semantics, when you define a function, you are halfway through figuring out how to approach solving the problem. Instead of being this abstract problem that is hard to wrap your head around, you can write this like this:
It gets pretty clear what the goals are, because we are missing the piece of knowledge that determine whether an equation belongs to the set I like the way path semantics makes goals clearer and more intuitive. It feels like I am just writing down what I know, and the next logical step seems to follow automatically. The notation guides me toward better understanding, filling in the gaps of knowledge that I lack. It is also easy to notice subtle things, that you take for granted when trying to solve a problem. For example, that
This is true for all surjective functions (those that outputs all values of the return type). Now I see that since
This is an example of how you can clarify more subtle things about a function, that is often taken as a hidden assumption. |
@bvssvni thanks for the long input. Really appreciate it & will try to get my brain around it :)) |
Feel free to ask questions! |
Can I already play with some code? |
There are some experiments here: https://github.com/bvssvni/path_semantics/tree/master/dyon_experiments These are techniques for finding paths using existing functions. |
Hi! I'm big fan of this work and have read every blog article, docs, etc. I kind of understand the philosophy behind it and the theory.., but what I miss is are REAL LIFE application examples. I mean.., if you could show as some tiny/small useful example (a code) with a real life application (not just theoretical), it would be probably much easier to understand the whole POINT. The example should answer questions like: "What existing problem does't it solve?" or "What new possibilities it opens?"..
It's like Physics. The lectures can go on and on, but the real knowlage and interest, in my option, comes from practical examples- when you see the connection- have to apply it to our inner/outer world.
The text was updated successfully, but these errors were encountered: