Skip to content
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

(feature request) supporting Dublin Core ontology #5

Open
ghost opened this issue Mar 20, 2017 · 6 comments
Open

(feature request) supporting Dublin Core ontology #5

ghost opened this issue Mar 20, 2017 · 6 comments

Comments

@ghost
Copy link

ghost commented Mar 20, 2017

Hello people,
how long/how hard would it be to add an "ontology.dc" subproject here, so that at least some kind of "human documents" (from pdfs to emails) could be supported by the environment?

you know, with the move to "paperless" documents, how could (today's and tomorrow's) old people handle this change?

I'm not so old yet, but I'm already worried about how to safely store "my e-stuff", from blood test reports (my latest one was down-loadable as a pdf, not on paper), to bank accounts reports, and so on.

PS: (EU related) for the fundings, I'd recommend stressing out with EU representatives the fact that "We Europeans" are actually "saving" our docs and stuff using services run by private companies in "trump-land"... Just like using windows in EU institutions, that's rather a EU security issue, indeed.

PPS: (out of scope) I won't trust private or state cloud services, for actually storing the data. I'd rather go for a "distributed storage", where anyone with a node (a small qnap NAS, for example), who wants to "safely store 1G on the net", would also allow others from the net to store (at least) 1G on his node.
See napster/emule storage, for example, or bitcoin's one. Supporting storing documents using dublin core first (indeed: files and their metadata) will help implementing storing "crypted slices" from the net storage, later.

Wish you the best
Corrado Campisano

@ghost
Copy link
Author

ghost commented Mar 20, 2017

PPPS: (some background)

I've experienced the move from paper tickets to "eTickets", in the airline industry: lots of savings and efficiencies, plus some "new & smart" functionalities paper could not support (from reissuing a ticket for a schedule change, up to real-time gate changes notifications).

I used Tomcat+ServiceMix 3.x to implement both a service to extract data from "file printouts" (so that data from the GDS mainframe won't end up printed on paper, but stored on files, renamed after the data extracted from the files themselves), and the UI for accessing those files.

I noticed that ESBs (sematic-less ones!) have been progressively adopted in the travel industry, not just GDSes and airlines, but also big-enough tour operators and travel agencies. Won't do any names but I know real examples.

Finally, I tried implementing some document handling prototype on uAAL, but:

  • there's no ontology for handling documents
  • there's no much "dev friendly" docs, especially on the UI

I hope this helps giving some context to the "bug request" I opened.

Hoping to see the dev-friendly stuff out soon!

cheers
.k.

@ghost ghost changed the title supporting Dublin Core ontology (feature request) supporting Dublin Core ontology Mar 20, 2017
@amedranogil
Copy link
Member

hello @corradocampisano ,
First I would like to thank you for your interest in universAAL. And congratulate you on your enthusiasm on semantic technologies, elderly problems, EU policies, as well as other interests that the uAAL community shares with you. Personally I have been working on an idea for secure P2P semantic documents interchange as well as semantic services framework where I tackle some of the use cases and issues you mention (I have an academic paper written, but not yet published, since it is a purely theoretical framework with no validation behind it, I am not really sure where/how to publish it).
There are a bunch of ideas you are proposing, but you are correct the first step is to come up with an appropriate ontology to model the data. Some time ago I started looking at bibliographic ontologies, came across FaBIO and BIBO, I know it is not the same as you are looking for, but maybe there are some essential concepts that may be shared.
Your documents seem to be personal documents, and I feel you only scraped the surface of the type of documents to manage (you mentioned health reports, and tickets, just looking at my wallet there are at least 4 more types of personal documents, and if I look into my archive I'm sure I can pick up many more types of documents, and that is just on a personal level). So I would suggest to look into a "top level ontology" finding out what are the common properties of all documents, and create all the services (and UIs) relative to this top ontology. This will certainly simplify the development of the service you are proposing, and via semantic interoperability (through extension of the top level ontology) you (or anyone) can very easily add all the document types needed, and even more detailed services, while keeping the core services unchanged.
I would also like to point out that there is a set of new platform services that will help you on the security side of things. I still have to document all of them, but in a practical way, you can set your "personal document" concept as a subclass of the Asset concept (as defined in the universAAL security ontology), and just that will open the doors for your services to use the authorization services. These services will help your application manage who has access to which documents, and which type of access (for example the user has read access to his health reports, but his physicians have modification and creation access rights).
There are other security services that might interest you in your endeavor, for example encryption, signature; but there more complex services like multi-destination encryption this will allow to encrypt resources, and have more than one actor being able to decrypt it (for example the ticket issuing company can encrypt the ticket document so only the company, the travel agency, and the end user can decrypt it).

Any way, I am probably skipping some background you should have on universAAL before getting to this level of integration. But essentially you'll need first to think about a top-level ontology for personal documents, then some semantical services to go with it, then integration with platform services (eg: storage, database, security, etc...) and finally a UI to go with it.

Our efforts ( @universAAL/core ) towards dev-friendliness currently are focused on improving the documentation (you could help if you find any wiki page difficult to understand or just plain wrong), and providing a set of tools ( @universAAL/tool-developers , namely eclipse plugins as well as run time tools to help developers). If you find anything else we need to focus our attention on for making uAAL more dev-friendly, as well as any specific proposals, we are always open to suggestions.

BR,
amedranogil

@ghost
Copy link
Author

ghost commented Mar 20, 2017

HI Gil,
thx for your reply, I'm happy to see I brought something interesting up.

Notice I picked DublinCore just because one of the most used and valued, as far as I know, for handling, generically, metadata about files, which then means all types of documents, even multimedia.

I'm happy you also recognize these sort of needs, and that the new "Asset" concept is already in.

Regarding the docs, I found it quite ok, except for the UI, for which maybe I have different expectations.

What about a "complete", but simple, sample "full app with UI", which only allows you to log in (on a web UI, possibly "hosted" within Karaf itself) an see "what time it is" (with a service providing "exact time" to the bus)?

I'll wait for the coming new features (those you mentioned) and the new dev-friendly stuff (pls don't let all this work end up like Nokia N900's maemo did!)

BR
corrado

@amedranogil
Copy link
Member

There is a sample UI , to test it make sure you install the uAAL-SingleNode.Development feature in your karaf distro. You will also need to maven install it (build it) and copy the jar (in target) to the deploy folder of the karaf. There is also a small edit you'll need to do to the user main menu configuration of the ui.dm so that it appears in the main menu.

All these procedures used to be documented, but I don't know where it is right now (added universAAL/platform#8 to remember my self to work on it).

@ghost
Copy link
Author

ghost commented Mar 21, 2017

Hi Gil,

I tried installing the feature:

  • an exception got thrown
  • a popup (not a browser's one) prompting for login showed up
  • after "logging in" (with karaf/karaf), that UI it then became a "search page" (not a browser's one)

Logs are below, screenshots are attached.

Now:

  1. what "are" those windows?
    1a) Is it some swing UI like in the lightning example?

  2. Is it possible to have a web UI in some other example?

thx
.k.

karaf@uAAL>features:list | grep SingleNode
[uninstalled] [3.4.0           ] uAAL-SingleNode.AALSpace                        universAAL-Feature                Feature collection for an AALSpace with just one node, typical for development too.
[uninstalled] [3.4.0           ] uAAL-SingleNode.Development                     universAAL-Feature                Feature collection for development; WARNING this is a Highly insecure configuration, use only under controlled environments
karaf@uAAL>features:
features:addurl              features:chooseurl           features:info                features:install             features:list                
features:listrepositories    features:listurl             features:listversions        features:refreshurl          features:removerepository    
features:removeurl           features:uninstall           
karaf@uAAL>features:install uAAL-SingleNode.Development

-------------------------------------------------------------------
GMS: address=f7b61771-38f0-4d29-a53d-282423d55bd2, cluster=mw.modules.aalspace.osgi8888, physical address=192.168.1.101:43069
-------------------------------------------------------------------

-------------------------------------------------------------------
GMS: address=f7b61771-38f0-4d29-a53d-282423d55bd2, cluster=mw.bus.ui.osgi8888, physical address=192.168.1.101:41133
-------------------------------------------------------------------

-------------------------------------------------------------------
GMS: address=f7b61771-38f0-4d29-a53d-282423d55bd2, cluster=mw.brokers.control.osgi8888, physical address=192.168.1.101:58346
-------------------------------------------------------------------

-------------------------------------------------------------------
GMS: address=f7b61771-38f0-4d29-a53d-282423d55bd2, cluster=mw.bus.context.osgi8888, physical address=192.168.1.101:45337
-------------------------------------------------------------------

-------------------------------------------------------------------
GMS: address=f7b61771-38f0-4d29-a53d-282423d55bd2, cluster=mw.bus.service.osgi8888, physical address=192.168.1.101:41086
-------------------------------------------------------------------
java.lang.NoClassDefFoundError: org/osgi/util/tracker/ServiceTracker
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:803)
	at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.findClass(BundleWiringImpl.java:2318)
	at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1524)
	at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:77)
	at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1993)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
	at org.apache.felix.framework.Felix.loadBundleClass(Felix.java:1853)
	at org.apache.felix.framework.BundleImpl.loadClass(BundleImpl.java:958)
	at org.universAAL.middleware.container.osgi.run.uAALBundleExtender.loadActivatorClass(uAALBundleExtender.java:68)
	at org.universAAL.middleware.container.osgi.run.uAALBundleExtender.doStart(uAALBundleExtender.java:105)
	at org.universAAL.middleware.container.osgi.run.uAALBundleExtender.bundleChanged(uAALBundleExtender.java:164)
	at org.apache.felix.framework.util.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:869)
	at org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:790)
	at org.apache.felix.framework.util.EventDispatcher.fireBundleEvent(EventDispatcher.java:515)
	at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4429)
	at org.apache.felix.framework.Felix.startBundle(Felix.java:2100)
	at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:976)
	at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:963)
	at org.apache.karaf.features.internal.FeaturesServiceImpl.doInstallFeatures(FeaturesServiceImpl.java:575)
	at org.apache.karaf.features.internal.FeaturesServiceImpl$1.call(FeaturesServiceImpl.java:461)
	at java.util.concurrent.FutureTask.run(FutureTask.java:262)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: org.osgi.util.tracker.ServiceTracker not found by org.apache.servicemix.specs.activation-api-1.1 [104]
	at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1556)
	at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:77)
	at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1993)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
	... 25 more
ERROR: Bundle mw.container.osgi [66] EventDispatcher: Error during dispatch. (java.lang.RuntimeException: java.lang.NoClassDefFoundError: org/osgi/util/tracker/ServiceTracker)
java.lang.RuntimeException: java.lang.NoClassDefFoundError: org/osgi/util/tracker/ServiceTracker
	at org.universAAL.middleware.container.osgi.run.uAALBundleExtender.bundleChanged(uAALBundleExtender.java:174)
	at org.apache.felix.framework.util.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:869)
	at org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:790)
	at org.apache.felix.framework.util.EventDispatcher.fireBundleEvent(EventDispatcher.java:515)
	at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4429)
	at org.apache.felix.framework.Felix.startBundle(Felix.java:2100)
	at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:976)
	at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:963)
	at org.apache.karaf.features.internal.FeaturesServiceImpl.doInstallFeatures(FeaturesServiceImpl.java:575)
	at org.apache.karaf.features.internal.FeaturesServiceImpl$1.call(FeaturesServiceImpl.java:461)
	at java.util.concurrent.FutureTask.run(FutureTask.java:262)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NoClassDefFoundError: org/osgi/util/tracker/ServiceTracker
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:803)
	at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.findClass(BundleWiringImpl.java:2318)
	at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1524)
	at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:77)
	at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1993)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
	at org.apache.felix.framework.Felix.loadBundleClass(Felix.java:1853)
	at org.apache.felix.framework.BundleImpl.loadClass(BundleImpl.java:958)
	at org.universAAL.middleware.container.osgi.run.uAALBundleExtender.loadActivatorClass(uAALBundleExtender.java:68)
	at org.universAAL.middleware.container.osgi.run.uAALBundleExtender.doStart(uAALBundleExtender.java:105)
	at org.universAAL.middleware.container.osgi.run.uAALBundleExtender.bundleChanged(uAALBundleExtender.java:164)
	... 13 more
Caused by: java.lang.ClassNotFoundException: org.osgi.util.tracker.ServiceTracker not found by org.apache.servicemix.specs.activation-api-1.1 [104]
	at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1556)
	at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:77)
	at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1993)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
	... 25 more
![screenshot from 2017-03-21 14 14 33](https://cloud.githubusercontent.com/assets/25619972/24148681/268ea352-0e40-11e7-863f-74e810abe2f7.png)
![screenshot from 2017-03-21 14 15 02](https://cloud.githubusercontent.com/assets/25619972/24148683/26ab87c4-0e40-11e7-816d-f6ad254c4275.png)


@amedranogil
Copy link
Member

So universAAL UI is capable of interacting with the user using different technologies, the "default" one is through Java Swing GUI, but using the UI.handler.WEB(page needs updating) will enable you to access the web format interacction.

the "search page" is the universAAL main menu, which is empty since it has not been configured yet. when configured there should be a button per application/form for the user to select, the search is just in thecase the user has many buttons.

I would suggest to open another Issue regading the UI set up / help either in the platform repository or the UI repository; as this conversation is steering in another direction as the original (Ontology).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant