I've put together some patches for ObjectMerging4 that:
1) Add makefiles for GNUstep
2) Fix compilation errors
3) Add primitive value persistence

Please find them attached at: https://gna.org/patch/index.php?2652

Furthermore, I wanted to promote some discussion on OM4. I've identified some 
issues that come to mind:

1) Object Roots

OM4 does not seem to provide a way to separate "core objects" so that you have 
separate object graphs that cannot overlap - it seems everything in the same 
repository can reference any other object in the repository. 

On first thought, this seems to be okay, but it makes it almost impossible to 
work on the same repository from different processes without a synchronisation 
or notification mechanism (which I don't think sqlite3 can provide).

We need object roots at some point so that we can identify the top-level 
objects in a users workspace during search. Having a table for them would also 
help with indexing because we could store the object's type (used for opening 
it) and the date it was last created/accessed so that we can improve search 
results (i.e. put more recently accessed objects first in a search).

2) Property storage

At the moment we are persisting objects using XML property lists. I think this 
could reduce the quality of text-based searches, as any search will pick up XML 
nodes any things like dictionary keys, which shouldn't be indexed. By the looks 
of things, we could use a custom tokenizer with the FTS (full text search) 
mechanism (http://www.sqlite.org/fts3.html#tokenizer), but this would be easier 
if we stored them as old OpenStep property lists.

For simple properties, we should probably have a type column that specifies its 
type, even if we store the value as a string. For this case, sqlite provides 
almost automatic type conversion, which we could use to our advantage to help 
make search results more relevant. For example, if the user types in a string 
that can be converted to a date, we could also do a "date" search on the 
database against any date-type properties. This will expand the list of 
relevant results, especially where data is stored in a different locale to the 
way the user is using it (e.g. different date or number formats).

---
Christopher Armstrong

carmstr...@fastmail.com.au






_______________________________________________
Etoile-dev mailing list
Etoile-dev@gna.org
https://mail.gna.org/listinfo/etoile-dev

Reply via email to