W3C home > Mailing lists > Public > semantic-web@w3.org > November 2012

Re: Incrementing a literal

From: Stephen D. Williams <sdw@lig.net>
Date: Tue, 13 Nov 2012 23:46:00 -0800
Message-ID: <50A34C38.8010005@lig.net>
To: semantic-web@w3.org
What happens when agent A and B try to update the same counter at the same or nearly the same time?
Single threaded, locking for transaction systems aren't scalable and have some other negatives, although they

On the other hand, in many circumstances, rather than updating values, adding new knowledge is the way to solve the problem. Things 
like totals or counts can be considered the results of a query.

On the other other hand, computing / caching / knowing facts resulting from applying a rule isn't necessarily that far from a 
semantic web database.

sdw

On 11/13/12 9:43 PM, Sergey Larionov wrote:
> Henry, ok, time may be seen as continous (or is
> that a current consensus view from some leaders of
> thought). Still, when building the 'counter' ontology
> (or describing something that changes at all),
> can it make sense to somehow avoid the traditional
> programming/overwriting thinking style like:
>
>   update counter with value 1
>   update counter with value 2
>   update counter with value 3
>
> and instead just expand the knowledge by adding (no
> updating or deleting at all) new facts into knowledge
> system as they come:
>
>   counter was 1 at timeA
>   counter was 2 at timeB
>   counter was 3 at timeC
>
> What is impossible here I fail to see? Is it difficult
> to query the 'current' value of a counter from such a
> (corresponding) set of triples using the currently
> available semantic web tools?
>
>>> Melvin, may I propose an opinion that 'needing to
>>> update a value' seems like a design flaw. Why? Taking
>>> your particular example of incrementing a 'counter'
>>> variable which goes from 1 to 2 to 3 and further on,
>>> on each step there actually *was* a time/state when
>>> 'counter' contained each of it's values. And at that
>>> time/state conclusions could be made which were based
>>> on *that* particular value. Updating seems like
>>> effectively erasing the history.
>>>
>>> Now what is 'current value' as it obviously should
>>> have some means to be changed? Well 'current value'
>>> seems like a result of a function taking a specific
>>> 'current' time as an input. Current time is an observer's
>>> context property. So may an answer to your question
>>> contain a suggestion to store all the values for a
>>> counter with their relevant time frame attributes
>>> and obtain 'current' value using a query? SL
>> that is impossible since time is continuous and between any
>> two times there are infinite number of more time slots. You
>> would need temporal reasoning and mereological reasoning to do
>> this. Those tools are not available yet.
>>>
>>>> Is there a pattern for incrementing a literal counter?
>>>> Alice stores turtle in http://example.org/counter
>>>> The initial operation should generate something like
>>>> <#> <#counter> 1.
>>>> Then the subsequent operation
>>>> <#> <#counter> 2.
>>>> And after that.
>>>> <#> <#counter> 3.
>>>> And so on ...
>>>> Is there a neat way to do this in  distributed way?  SPARQL update?   Maybe using Etags?
>   
Received on Wednesday, 14 November 2012 07:46:26 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 21:45:52 GMT