-
Notifications
You must be signed in to change notification settings - Fork 3
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
Killer App #13
Comments
The OpenEASE robotics programming and learning environment is completely SWI-Prolog/Semweb based. |
Good example Wouter.
|
What this reminds me of is the fact that most all persons and programmers XSB-Prolog's ideal was to create that language people thought was prolog. |
Douglas, I agree - many non academics at least come to Prolog looking for 'an AI language', perhaps something closer to Chatscript. Certainly a 'killer app' can't be esoteric. It has to be something with "wide usefulness and encourages lots of users to buy into the ecosystem" |
May be it could help the discussion when I tell how I came back to SWI-Prolog after 20 years. This time I just tried it out a bit for programming a word analysis tool and afterwards forgot the language because it was too difficult to interface with other programming tools. |
@wdiestel Heterogeneous data/information/knowledge integration is indeed a place where SWI shines! I'm not sure how Prolog could be used through a spreadsheet UI / I have no experience with that. The only thing that comes to my mind in this area is also DES, which is at least related to SWI/Prolog. ClioPatria does provide Web UIs for query editing, data browsing, and such. Also take a look at SWISH. You could build Web UIs for data entry on top of SWISH. You could visualize results of SWISH in UI tables, DOT graphs for visualization, etc. Also check Nicos' Real for the latter. The benefit of building on top of Pengines/SWISH is that code will not be tied to specific proprietary tools that some of us cannot run, so reach and impact may be bigger. |
Another area where reactive programming excels (no pun intended!) is building data driven GUI's, like React and Elm languages. I once did some VBA on Excel programming professionally, and reactive functional and logic paradigms often go together. A start would be a pack to add reactivity to SWI-Prolog, probably with some support to make it work on the browser side as well. Coincidentally, that's something somewhat like what I've started on for some proprietary code just this week. Another very useful addition to SWI-Prolog would be a web standards based boxes and arrows editor - which would address a lot of applications like wdiestel is speaking about. And I built essentially these same two things, or parts of them, for a previous employer as well. So I think we're seeing a common application area emerge (a bit) from the mist. @wdiestel , sounds like we're struggling with wanting a somewhat similar tool. Suggest you contact me at [email protected] and lets explore possible ways to help ourselves by some common project. |
@Anniepoo I hope you're not making XPCE part of the *killer app", that would be the "killed app" section :-P On a serious note: drawing graphs is a generic enough UI paradigm that many would be eager to use it (I would use it in the SW realm). When I looked into this 2 years ago, there was no good, out-of-the-box JS lib that could do it. I'm not sure whether it does exist today. |
There isn't a box and line editor, but there's an interactive component lib, http://fabricjs.com/ Building the editor from that would be relatively easy. No, obviously I don't want to build on xpce. But I do think that many of the things we're good at are graphs, and having the end visualization point be the completely static graphviz isn't serving us as well as it could. |
I'm writing a separate comment here - Is this really a 'killer app', or just 'something we would like'? Here's the Merriam Webster dictionary definition of a 'Killer App':
A killer app has to be "so necessary or desirable" - which means it needs to impact the lives of a lot of people who are not currently SWI-Prolog users. That eliminates:
There are people who spend their days thinking about OS community development. Most of what they've written makes some assumptions about how such projects are structured that don't really apply to us, but I'm thinking there must be somebody out there who can help us think up something. |
An example of how applications can drive infrastructure. I recently needed a GUI based JSON client, a tool to test a REST server by handing it JSON, where I could set the content, the headers, etc. 2 minutes search came up with a Java based one that seemed OK. I downloaded it and discovered I had the sources, but found a d/l link to the jar, so I downloaded the jar and ran that, and I have my tool running. If I'd had to install the JRE to do so, that would have been a big enough barrier that I'd have gone looking for another solution. Now, if I'd had to hack on the tool to get what I want, the cost would have been higher. Do I know Java? Do I have a JDK and suitable IDE installed? Well, predictably, and sadly, yes, I do. So the costs of using Java based tool are fairly low for me. So for X to be a killer app, it has to be so valuable that people, lots of them, install SWI-Prolog (or it has to be something with SWI-Prolog installed) and prefer to program this particular application type in SWI-Prolog. In that sense, the last killer apps we've seen have been the Android and iOS operating systems, and their surrounding ecosystem, including in iOS's case, Objective-C., and node.js . |
@Anniepoo Thanks for the illustrative example! Having a user run a SWI Prolog program is indeed a problem on Windows/Linux and possibly more so on iOS/Android where I have no experience. From colleagues I know that it is also difficult on the Apple/Mac/OS-X side but I have no direct experience there either (I refer to this as 'Apple' since I do not know how they call their OS and whether OS-X = Mac = iOS these days). Current steps for running a SWI application:
Most users will not get through these three steps as indicated by Annie. I see the following solutions:
Solutions 1 through 4 all depend on significant innovations that may be years away. Solution 5 is here today. This implies that no user need even consider installing SWI. Am I missing something here? |
Well ...
|
And, (6), we could provide a docker recipe. That is particularly useful for web enabled applications such as ClioPatria or SWISH. |
Agreed, anything we do to lower the hassle factor of installing SWI-Prolog lowers cost of adoption. I notice that we're losing ground to Jena/fuseki/etc. from the Apache community in the semantic web world. Having recently (with Douglas) worked on a semantic web in Java application, and then (EModelWorks) done the same in Prolog, the Prolog solution's glaringly better. Returning to Douglas' comment - One way to have a killer app opportunity is what Apple did to make Objective C 'grow up'. Make it critical to using a compelling platform. ROS is a candidate for competition. ROS (the Robot Operating System) from Willow Garage has a lot of issues. In short, it's extremely heavy. So, imagine an AI and robotics stack built around SWI-Prolog that is accessible to people who aren't professional software engineers. That's a lot more accessible playground than ROS. (And I'm reminded that Snap! has accumulated an interesting ecosystem of hardware interfaces - all that's missing are the NLP/CV bits) Perhaps something that should be added to the roadmap for the relatively near term is a capable, compelling implementation of a pceDraw style arcs and sticks model editor, as a first small step towards many of these possibilities? I think this was vaguely in the back of my mind with my bit of futzing with the drawing program. |
Another thought. Perhaps we're not the right people to be doing this work. Maybe we should recruit someone with a background in marketing or product development who would be willing to look at the many fun toys we have and help us come up with a killer app. |
@JanWielemaker Good point! Docker may be an easy install option. Does someone have experience with this? |
It would be useful to build an application that has wide usefulness and encourages lots of users to buy into the ecosystem, as Rails and Redmine did for Ruby and applets did for Java.
This is distinguished from the 'cool app', one or more programs that would entice beginners to start programming in Prolog.
The text was updated successfully, but these errors were encountered: