Hello Xuân,

Xuân Baldauf wrote:
Hello Didier,

we are a team of 4 people (3 software engineers) and we feel much like you feel. However, the flexible technology you are wishing for already exists, and it is called Topic Maps (see http://en.wikipedia.org/wiki/Topic_Maps ).

Yes topic maps model is good model to represent contacts, groups and social data in general.

Didier Ptitjes wrote:
About the way to query opimd :
====================

I would like to be able to query data from opimd with a goal (logic meaning of "goal")

Say I want the messages of all the contacts that are friends, I would do :

opimd.query("exists N / C a Contact, C.isFriend, N a Number, N in C.numbers, M a Message, M.number == N.number")
In the Topic Maps Query Language, this looks as follows:

    select $message where
      is-friend-of(friend: $contact, friend: $me) &
      *(*: $contact, *:$message, ...) &
      type-instance(type: message, instance: $message)

    select $message where
      is-friend-of(friend: $contact, friend: Thomas) &
      *(*: $contact, *:$message, ...) &
      type-instance(type: message, instance: $message)

Can you query over the predicates like in high-order logic ? I would rather have a more declarative query language. A query goal is a bit

About the efficiency of objects navigation over dbus :
=================================

(By object navigation, I mean traversal of the object tree.)

I understand, seeing the current code, that one can navigate contacts and messages as dbus objects. However, navigating via dbus through 200 contacts may be really expensive. Thus, I was wondering if someone works an a transparent cache mechanism for dbus objects.

That would not force client to use the cache mechanism. Say one just want to retrieve one contact, then it uses the normal way.

But that would however need a supplementary dbus protocol between opimd and its cached client. That protocol would have methods/signals to : - Claim to the server the objects the client is interested in and not anymore insterested in (the one that it currently have in cache) - Inform a client the changes that occured relative to the objects this client is interested in (deletion, attribute change, ...)

Does this already exists ?
These signaling mechanisms do exist for Topic Maps (but they are currently not implemented over dbus as far as I know).

Could you point me to the APIs ? This is of great interest.

We would also like to create such a data daemon, but based on Topic Maps. In the current stage, it is unclear whether we would extend the existing opimd or create a new one. We would like to ask you (and the community) what do you think about such an idea in general and whether we should put all our efforts together and build a PIM backend which essentially is a flexible MetaDataBase. Because the Topic Maps technology is well-founded and extremely strong in metadata management and synchronization, we would build the MetaDataBase on Topic Maps technology.

Having the metadatabase as a backend of opimd would offer a rich pim model, but would not enable rich query in the front-end. In fact, sitting on top of opimd is quite convenient, either for providing query services to high-level client, or for enriching information provided by opimd.

I started a work in this direction ologicd (§1). I made a dbus wrapper for Flora/xsb Frame-logic language interpreter. You can query a Flora goal through dbus. Flora offers transparent persistent modules. I designed ologicd so that multiple agents run in the same deamon. Also, it would be quite straighforward to implement a persistent Topic Maps model in Flora.

Flora also has a quite nice syntax. The two queries above would be wrote as the folowing goals :

?C : fso#Contact [ number(?_) -> ?_1 ],
?M : fso#Message [ sender -> ?_1 ].

?Contact : fso#Contact [ number(?_) -> ?_1, friends -> { Thomas } ],
?Message : fso#Message [ sender -> ?_1 ].

We are interested in any comments and contribution.

Best regards, Didier.

§1 ologicd
        http://www.shr-project.org/trac/wiki/Ologicd
        http://git.shr-project.org/git/?p=ologicd.git


_______________________________________________
smartphones-standards mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/smartphones-standards

Reply via email to