[Nepomuk] Refactoring for Soprano 3
Hari krishna Anandhan
harikrishna.anandhan at gmail.com
Sun Oct 18 09:51:02 CEST 2009
Missed something regarding the design...
in the RDFModel interface, i think there should be another query
method having just the query string, without queryLang. As people
mostly use just SPARQL, it makes life easier.
For inferencing, i think that EnableInference should be member of
RepositoryConnection, instead of adding it for each query. It is
ideally set per connection and can always be disabled by the setting
the member temporarily
Though the RepositoryConnection can be closed in the destructor, i
think having an explicit Close/ Dispose method makes sense.
As inference is planned to be integrated deep, i think
Soprano::Statement should be changed to incorporate 2 things
1. inferred flag - whether the statement has been inferred or is new
2. referenceStatements - for inferred statements , this list contains
all the parent statement from which the inference was reached. For
others , this is null
And, regarding the "dirty reads" proposed by Leo, I am not sure
whether i understand their significance. I suppose transactions cover
"what if" scenarios sufficiently
Let me try to understand the nice guis showing the results "as if
commited" that Leo was suggesting...
Consider an app which shows a list of customers who have balance less
than zero and an inference which shows defaulted customers (with
balance < 0).... you can just start a transaction, change some
balances and see how the inference changes on the fly. if you are
satisfied, you then commit, else just close the app and it
automatically rolls back. Am I missing something ?
More information about the Nepomuk