Semantic stuff (RDF, OWL) on mobile phones - is it possible? - iphone

I'm thinking about using semantic (web) technologies like RDF and OWL in an application on mobile devices. Currently I'm targeting android, but I'd also be interested in the possibilities on the iPhone and on J2ME.
I would like to use a library instead of implementing everything from scratch.
I know that there are some libraries/frameworks like Jena, Redland, Protégé but they don't state on which platforms they are known to work.
Having a dynamic object model and parsing from and to XML are must-haves for me.
I'd also like to use reasoning, but I've been told it was rather computing-intensive, so that's only a nice-to-have.
For all platforms mentioned, the question can be interpreted as
Is it possible in theory? (especially for J2ME I'm not sure)
Are there libraries that are known to work on those platforms?
Is the performance on a mobile platform good enough for real world usage?

You wrote you want J2ME, but other readers might be interested in C#.
Mono makes C# available on iPhone and Android. Once that is done, you can use ROWLEX to deal with RDF and OWL. You might consider reading this Stackoverflow question.

Maybe look into IYOUIT. It is a
mobile application developed in
Python, and running on Nokia Series 60
phones.
It uses OWL and reasoning. You can read the details in this paper.

There's Jena port to Android platform here.
http://code.google.com/p/androjena/

If this is a client-server type application and you have some control over the server, I would do the semantic web stuff server-side, and hand the relevant information to your view client on the mobile device.

A more general answer to your question title is Mosembro, a browser for Android that utilizes Microformats for semantic data. It doesn't do any non-trivial computations with the data, however.

if you have no limit as to use a certain framework, you can use REST api to handle server-client interactions.
more information here.

Related

Are real time cross-platform applications between html and android possible

I'm currently investigating the scope of my project and have come across an issue with regards to the platform on which it can operate. The initial goal is to create a cross platform game across html, andriod and ios.
Is this type of application possible? It is important to note that it would require real time(low latency and consistent) interaction between the three platforms.
If so what are some tools I should take advantage of while developing.
We are doing this exact sort of thing using the 3rd party asset within the Unity UI's:
https://www.assetstore.unity3d.com/en/#/content/10872
and custom Socket.IO (http://socket.io/) server implementation. Works like a champ and is totally agnostic wether the client is Unity3D or just a browser.

Ocropus Engine on iPhone and/or Android

What is the best way to get ocropus running on iOS and/or android?
I'm interested in using Ocropus to digitize some content on mobile devices. I'm largely interested in using a trained 'language' model to make predictions on the device. Training will occur offline and off device. I know a few people have got tesserect running on mobile devices, but I'm unable to find much information on doing the same with Ocropus. I'd greatly appreciate a slice of your collective wisdom in an effort to avoid wasting days taking the wrong path.
Would it be easier to just prototype the algorithm using the scripts, then grab the specific c++ code of interest and include it directly in my application. Or best to compile as a static/dynamic library?
It would be better setting up a simple web service that uses Ocropus or any OCR library for that matter. Then have your smartphone application make requests to the web service. OCR is a CPU intensive process, so it's appropriate to move it off of the phone.

iPhone network communication with pc

I want to make an iPhone app and an application (server) which runs on a PC with Windows. Is there any easy way to do this on the client side (the iPhone), like a library or something?
Looking on Google I found cocoaasyncsocket and xmppframework, but the last commits were done some time ago and before I start my project I want to know if there are other (better) possibilities out there
One option would be to run a web server on the PC, with a set of REST-based services. This approach gives you lots of options for implementation on the server-side, and you'll have lots of possible frameworks to choose from on the client-side as well. One framework you could use on the iPhone is ASIHTTPRequest.
There are lots of advantages to using a web-based approach. There are HTTP frameworks built for almost every device and platform, so if you ever want to interact with the server from the web, an Android device, etc., there will be many tools to help you do that. There are also lots of great tools out there for debugging HTTP interactions.
You could also use a SOAP-based API, but in my opinion SOAP tends to be more complicated than its worth.

iPhone / Android: what protocol stacks do apps use for connecting to centralised services?

Aplogies for the ignorant question, I have no experience with app development on any mobile platform. Basically what I want to know is what communication protocols do apps typically use for accessing/querying centralised services? E.g if I port a webapp/service to iPhone/Android, typically how would I access/query this web service in my app? E.g is it over HTTP, or are there other protocols?
Also, presumably the GUI of an app is constructed with Apple/Android GUI libraries (in java? cocoa?). Can an app GUI be defined with HTML/javascript like a webpage?
Sorry again for the pure noob questions.
Thanks
Your question is pretty broad as you can really implement it however you want, but in my own experience the majority of "centralized" services are accessed directly over HTTP using an HTTP networking library or NSURLConnection. Most of the web services I work with are RESTful. Some people might implement with straight sockets, but that's just pain and would be best avoided if possible.
The GUI side is done using Cocoa Touch on the iPhone. I'm not sure about Android. You can certainly implement a web based app targeted specifically for iPhone. In fact there's been a lot in the news lately about developing HTML5 apps for the iPhone and iPad.

iPhone application architectures

Can you anyone point me to specific books or maybe give me a quick overview of how architectures of data-driven iPhone applications look like? For example, let's say you're implementing an application that searches online shopping sites and gives you recommendations..etc. Is it a common pattern to establish a hosted back-end of webservices which does all the database/shopping site API connections/webservices work and have the iPhone app consume services on this backend? or do you put everything in the iPhone application? Also, if you are establshing a web-services back-end, is it better to use REST/JSON vs REST/XML vs SOAP/XML...etc?
Thanks
To answer the first part of your question, I'd say that's up to you. If there's a lot of processing that needs doing between the web service and the iPhone, then maybe you should have your own backend server doing that processing before sending it to the iPhone. However, if you just need the data from the web service as-is on the iPhone, then just consume it directly.
As for the different formats, with the iPhone smaller is always better when it comes to network traffic. Stick with using REST for sure so you minimize data that needs to be transferred from the iPhone. As for JSON vs XML, obviously JSON is more lightweight which makes it a better candidate for the iPhone generally, but if your data requires a representation more complex than JSON can offer, then go with XML. Don't do SOAP if you can at all avoid it. It's just too heavyweight and will drain the iPhone's battery much more quickly with many requests.
If you are curious about the architecture and implementation details of a data-driven iPhone app, take a look at all of Apple's docs and tutorials about Core Data on the iPhone.