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