On 11 Jul 2011, at 18:27, Henry Story wrote:

> 
> On 11 Jul 2011, at 18:06, Reto Bachmann-Gmür (JIRA) wrote:
> 
>> 
>>   [ 
>> https://issues.apache.org/jira/browse/CLEREZZA-603?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13063414#comment-13063414
>>  ] 
>> 
>> Reto Bachmann-Gmür commented on CLEREZZA-603:
>> ---------------------------------------------
>> 
>> Your code is calling b_ on an explicitely specified EzMGraph,  All the 
>> examples should shows usage that either subclass EzMGraph to create an 
>> instance or set the context to specific graph by importing the methods of an 
>> EzMGraph instance, but I see the method coud be improved not to require 
>> implict conversions thus allowing usage as you describe (have b_ return a 
>> (Rich)GraphNode rather than a bnode.
>> 
>> put the patched version in the svn folder issues/CLEREZZA-603?
> 
> for me working on git, it's easier if I put the patch on github. The 
> CLEREZZA-xxx folder structure is not very standards based, and is not 
> visibile from github.

Sorry: I mean it's not visible from the git clone, even from the one you get 
from the clerezza repository at

     http://git.apache.org

> 
> Furthermore in general it also has a problem in that sometimes changes in one 
> module require some changes across different modules, one would have to copy 
> a number of directories out into it.

So in this case my fix to the issue 603 then also required a fix to WebID 
tester. 


> You can easily pull down all from git.apache.org and then pull down from my 
> github, work on it and put that up somewhere on your github. Then it is easy 
> to work in a distributed manner, and it is very fast.

In fact that is the workflow that one can deduce from this git model which I 
mentioned earlier today

  http://nvie.com/posts/a-successful-git-branching-model/

> It also helps keep track of changes much better.
> 
> Henry
> 
>> 
>> Cheers,
>> Reto
>> 
>>> EzMGraph fails when working with more than one instance
>>> -------------------------------------------------------
>>> 
>>>               Key: CLEREZZA-603
>>>               URL: https://issues.apache.org/jira/browse/CLEREZZA-603
>>>           Project: Clerezza
>>>        Issue Type: Bug
>>>          Reporter: Henry Story
>>>          Priority: Critical
>>> Original Estimate: 1h
>>> Remaining Estimate: 1h
>>> 
>>> All the EzMGraph test cases currently assume that there is only one ez 
>>> graph available per method.  
>>> When one adds two EzMGraphs together in some code one gets a failure as the 
>>> following test case shows when run in EzMGraphTest class:
>>>     @Test
>>>     def twographs {
>>>             val ez1 = new EzMGraph() {(
>>>                     b_("reto") -- FOAF.name --> "Reto 
>>> Bachman-Gmür".lang("rm")
>>>             )}
>>>             Assert.assertEquals("the two graphs should be equal",1,ez1.size)
>>>             import ez1._
>>>             ez1.b_("reto") -- FOAF.homepage --> "http://bblfish.net/".uri
>>>             Assert.assertEquals("ez1 has grown by one",2,ez1.size)
>>>             //now a second graph
>>>             val ez2 = new EzMGraph() {(
>>>                     b_("hjs") -- FOAF.name --> "Henry Story"
>>>             )}
>>>             ez2.b_("hjs") -- FOAF.homepage --> "http://bblfish.net/".uri
>>>              //both of these tests fail
>>>             Assert.assertEquals("ez1 is the same size as it used to 
>>> be",2,ez1.size)
>>>             Assert.assertEquals("ez2 has grown by one",2,ez2.size)
>>>     }
>>> This is caused by a bit too much implicit magic.  EzMGraph extends 
>>> TcDependentConversions which is defined as
>>> protected trait TcDependentConversions {
>>>     
>>>     def baseTc: TripleCollection
>>>     
>>>     implicit def toRichGraphNode(resource: Resource) = {
>>>             new RichGraphNode(new GraphNode(resource, baseTc))
>>>     }
>>> }
>>> So when developing this one has to import the toRichGraphNode method for 
>>> the TripleCollection one is using.
>>> Hence you will see the first
>>>             import ez1._
>>> above. The errors can be avoided if one enters a new import for ez2._ just 
>>> before code using ez2 . The problem is that this will never be picked up by 
>>> the compiler and the error will only be found at runtime. But then code 
>>> would look like this
>>>             import ez1._
>>>             ez1.b_("reto") -- FOAF.homepage --> "http://bblfish.net/".uri
>>>               import ez2._
>>>             ez2.b_("hjs") -- FOAF.homepage --> "http://bblfish.net/".uri
>>>             import ez1._
>>>                     ez1.b_("reto") -- FOAF.currentProject --> 
>>> "http://clerezza.org/".uri
>>> The answer to this problem is simply to have the ez1.b_ method return a 
>>> RichGraphNode directly containing the EzGraphNode from which it was called.
>>> It makes more sense anyway to have a Graph return a GraphNode when one asks 
>>> for a node from it. Certainly a BNode outside of the context of a graph 
>>> makes very little sense.
>>> 
>> 
>> --
>> This message is automatically generated by JIRA.
>> For more information on JIRA, see: http://www.atlassian.com/software/jira
>> 
>> 
> 
> Social Web Architect
> http://bblfish.net/
> 

Social Web Architect
http://bblfish.net/

Reply via email to