You can subscribe to this list here.
2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
(1) |
Nov
|
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2010 |
Jan
|
Feb
(11) |
Mar
(17) |
Apr
(12) |
May
(2) |
Jun
(20) |
Jul
(2) |
Aug
(2) |
Sep
(2) |
Oct
(2) |
Nov
|
Dec
(5) |
2011 |
Jan
(4) |
Feb
(1) |
Mar
(2) |
Apr
(2) |
May
(5) |
Jun
|
Jul
(12) |
Aug
(4) |
Sep
(5) |
Oct
(1) |
Nov
(38) |
Dec
(27) |
2012 |
Jan
(46) |
Feb
(182) |
Mar
(83) |
Apr
(22) |
May
(68) |
Jun
(47) |
Jul
(135) |
Aug
(84) |
Sep
(57) |
Oct
(45) |
Nov
(27) |
Dec
(61) |
2013 |
Jan
(59) |
Feb
(78) |
Mar
(66) |
Apr
(107) |
May
(27) |
Jun
(56) |
Jul
(53) |
Aug
(3) |
Sep
(19) |
Oct
(41) |
Nov
(44) |
Dec
(54) |
2014 |
Jan
(49) |
Feb
(72) |
Mar
(22) |
Apr
(41) |
May
(63) |
Jun
(27) |
Jul
(45) |
Aug
(12) |
Sep
(3) |
Oct
(8) |
Nov
(27) |
Dec
(16) |
2015 |
Jan
(3) |
Feb
(20) |
Mar
(6) |
Apr
(4) |
May
(15) |
Jun
(2) |
Jul
(4) |
Aug
|
Sep
(1) |
Oct
(1) |
Nov
|
Dec
|
2016 |
Jan
|
Feb
|
Mar
|
Apr
(16) |
May
(9) |
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <tr...@do...> - 2012-10-22 20:29:45
|
<p>The following issue has been added to a project that you are monitoring.</p> <table border="0"> <tr> <td width="90px" valign="top"><b>Title:</b></td> <td>BIND in SPARQL query produces diffrent results</td> </tr> <tr> <td><b>Project:</b></td> <td>Core Library (dotNetRDF.dll)</td> </tr> <tr> <td><b>Created By:</b></td> <td>Tomasz Pluskiewicz</td> </tr> <tr> <td><b>Milestone:</b></td> <td>0.8.0 RC 1</td> </tr> <tr> <td><b>Category:</b></td> <td>Query</td> </tr> <tr> <td><b>Priority:</b></td> <td>Normal</td> </tr> <tr> <td><b>Type:</b></td> <td>Bug</td> </tr> <tr> <td><b>Description:</b></td> </tr> <tr> <td colspan="2"><p> When using BIND() in a SPARQL query it has been observed that the results are not the same for subsequent executions of same query over the same graph.</p> <p> A test case has been added to test suite in method VDS.RDF.Test.Sparql.SparqlTests#SparqlWithMultipleBinds()</p></td> </tr> </table> <p> More information on this issue can be found at <a href="http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=287" target="_blank">http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=287</a></p> <p style="text-align:center;font-size:8pt;padding:5px;"> If you no longer wish to receive notifications, please visit <a href="http://www.dotnetrdf.org/tracker/Account/UserProfile.aspx" target="_blank">your profile</a> and change your notifications options. </p> |
From: Rob V. <rv...@do...> - 2012-10-20 00:05:49
|
Hey Tom You would use it to combine multiple triple pattern builders into graph pattern builders in order to join and nest graph patterns together e.g. t1.Union(t2); Or: t1.Optional(t2); Or: t1.InGraph(new Uri("http://graph")); Or: t1.Minus(t2); The query builder would allow for either a triple pattern builder or a graph pattern builder to set the where clause. Similarly most of the above methods could either take a triple pattern builder or a graph pattern builder. Sorry for being vague but it's Friday afternoon and I'm about to head home for the weekend having only flown back into the country on Monday (yay jet lag and over tiredness) Rob On 10/19/12 8:05 AM, "Tomasz Pluskiewicz" <tom...@gm...> wrote: >Hi Rob > >I have been pondering your idea of IGraphPatternBuilder but I'm not >sure I understand. Could you give an example of how you would design >it's API? > >Thanks, >Tom > >On Thu, Oct 18, 2012 at 9:31 PM, Rob Vesse <rv...@do...> wrote: >> Hey Tom >> >> That all looks great, comments inline >> >> On 10/18/12 11:34 AM, "Tomasz Pluskiewicz" >><tom...@gm...> >> wrote: >> >>>Hi Rob >>> >>>Actually I have just today been preparing an email to agree on the >>>fluent API. Here it goes. >>> >>>I have been thinking about the shape of the fluent query API and I >>>would like to propose some changes. >>> >>>1. Currently there are quite a few overloads of the Where method. I >>>think the API will be more usable if we left only a limited number, >>>eg. >>> >>>* IQueryBuilder#Where(params ITriplePattern[] patterns) >>>* IQueryBuilder#Where(params Triple[] triples) - not sure about >>>triples here though >>>* IQueryBuilder#Where(GraphPattern) >> >> Yes I agree having a simpler high level interface for building queries >>is >> better >> >>> >>>Regarding the ast overload, what are the ways to create graph >>>patterns? I mean I have seen the ToGraphPattern() method here and >>>there. Which classes define such a method and what are differences in >>>the graph patterns they produce? >> >> ToGraphPattern() is typically on algebra classes but it not reliable >> because >> some algebras (particularly those generated by optimization) cannot be >> converted to graph patterns. >> >> Basically graph pattern wise you have the following: >> >> - Normal >> - OPTIONAL >> - GRAPH >> - UNION >> - SERVICE >> - MINUS >> - EXISTS/NOT EXISTS (within FILTER only) >> >>> >>>2. I think the API should expose functionality but with least required >>>use of the internal SPARQL types like the ITriplePattern, >>>ISparqlExpression and such. I would not remove it of course to leave >>>room for flexibility. For a day-to-day query building I think that >>>maybe creating triple patterns should be split into subjects, >>>predicates, object and possibly graphs (here this posin overlaps the >>>above about GraphPatterns). As such it sould be possible to implement >>>less code and at the same time give a greater flexibility for the user >>>and remove the burden of creating instances of the SparqlVariable >>>class and such. For example: >>> >>>var prefixes = new NamespaceMapped(); >>>// set up prefixes ... >>> >>>IQueryBuilder query = QueryBuilder.Select("person", "name"); >>> >>>// I have just made this up, but could be useful although string name >>>interfere with >>>// QNames. Maybe add a struct QName? >>>query.UsePrefixesFrom(prefixes); >>> >>>2a. >>>// a more flexible form of triple pattern building >>>// note the RdfType mehod. This way it would could provide some common >>>// properties/classes and also leave an opening for users to create >>>their own extension methods >>>query.Where.Subject("person").RdfType().Object(new >>>QName("foaf:Person")); >>> >>>2b. >>>// alternatively there's a proposal without the QName struct/class, >>>which I like more >>>query.Where.Subject("person").RdfType().Object<IUriNode>("foaf:Person")) >>>; >>> >>>2c. >>>// here NodeMatchPattern for predicate with full Uri given and obejct >>>as a VariablePattern >>>query.Where.Subject("person").Predicate(new >>>Uri("http://xmlns.com/foaf/0.1/name")).Object("name")); >>> >>>In terms of graphs, I think that maybe we could provide one more >>>method to such ITripleVariable-producing chain, to select the >>>appropriate named graph pattern >>> >>>2d. >>>query.Where.Subject("person").Predicate(new >>>Uri("http://xmlns.com/foaf/0.1/firstName")).Object("name")).InGraph(new >>>Uri("http://uri/of/graph")); >>>query.Where.Subject("person").Predicate(new >>>Uri("http://xmlns.com/foaf/0.1/lastName")).Object("surname")).InGraph(ne >>>w >>>Uri("http://uri/of/graph")); >>>query.Optional.Subject("person").Predicate<IUriNode>("foaf:mbox_sha1sum" >>>). >>>Object("emailSha1")).InGraph(new >>>Uri("http://uri/with/contact/data")); >>> >>>All the above would produce: >>> >>>ad 2a/2b and 2c >>> >>>WHERE >>>{ >>> ?person a foaf:Person . >>> ?person foaf:name ?name . >>>} >>> >>>ad 2d >>> >>>WHERE >>>{ >>> # calling InGraph() with same parameter should >>> # add triple pattern to same graph pattern, right? >> >> Yes that would make sense, implementing it might be slightly trickier >>but >> the notion is sound >> >> Perhaps InGraph() would turn a ITriplePatternBuilder into a >> IGraphPatternBuilder and the user >> would have the option of adding further triple/graph pattern builders to >> an existing one >> >>> GRAPH <http://uri/of/graph> >>> { >>> ?person foaf:firstName ?name >>> ?person foaf:lastName ?surname >>> } >>> GRAPH <http://uri/with/contact/data> >>> { >>> OPTIONAL { ?person foaf:mbox_sha1sum ?name } >>> } >>>} >>> >>>Not how the OPTIONAL has API equivalent to WHERE >>> >>>3. I have also been thinking that a simmilar way could be used to >>>create CONSTRUCT queries. However with the current static >>>initialization of query builder I would suggest slightly modifying the >>>above to reuse the same methods in both scenarios >>> >>>One way I find quite good could be using an Action<> delegate and >>>introducing an ITriplePatternBuilder interface to actually build the >>>triple patterns: >>> >>>var query = QueryBuilder.Construct( >>> (ITriplePatternBuilder tp) => >>>tp.Subject("person").RdfType().Object<IUriNode>("ex:MyPersonClass") >>>); >> >> I like this approach, it's clean and extensible >> >> I assume we'd have ITriplePatternBuilder, maybe IGraphPatternBuilder and >> likely a IExpressionBuilder ? >> >>> >>>With this approach, the Where/Optional would change to: >>> >>>query.Where( tp => >>>tp.Subject("person").RdfType().Object<IUriNode>("foaf:Person")) ); >>> >>>and internally bouth would look somewhat like: >>> >>>public IQueryBuilder Where(Action<ITriplePatternBuilder> >>>buildTriplePatterns) >>>{ >>> var builder = new TriplePatternBuilder(); //implementation internal >>> buildTriplePatterns(builder); >>> return Where(builder.TriplePatterns.ToArray()); >>>} >>> >>>I think this way we get a clean seperation of concerns, good >>>testability and room for extensibility. >>> >>>4. Ask query is trivial. The SPARQL update could also use the proposed >>>ITriplePatternBuilder I think >>> >>>5. Basic federated queries could be achived in a simmilar way the >>>InGraph() method is used above for >>> >>>6. We need a method for the BIND keyword, eg. >>> >>>public IQueryBuilderBind(ISparqlExpression expression, string >>>variableName) { ... } >> >> There could maybe just be a method on the ITriplePatternBuilder to >>create >> a BIND, possible also similar for FILTER and so forth >> >>> >>> >>> >>>Oh well, there is much more, but we have enough to discuss just for >>>now. Tell me what are your feelings about all the above. You are >>>certainly more experienced with SPARQL so I would be greateful for >>>your own ideas for this feature, which I'm sure you have :). >>> >>>Also, what do you think would be the greatest challenges here? >> >> I don't think anything sounds too hard, the tricky bit is just ensuring >> you turn these into triple/graph patterns in a consistent manner which >> makes sense from the point of the user. We need to be making sure things >> group and nest in predictable and appropriate ways e.g. calling >>InGraph() >> creates all the triple patterns from it's builder in a single GRAPH >> pattern rather than into multiple GRAPH patterns if that makes sense >> >> Sounds like you have a good idea what you are doing so I will leave you >>to >> get on with it for the time being. >> >> One thought I did have is that it probably isn't necessary to have >> everything explicitly implement INodeFactory (even SparqlQuery), what >> would be simpler is just to have the builders that do need to generate >> nodes just extend NodeFactory (and thus get a pre-build implementation >>of >> INodeFactory) though given your above proposal it may turn out that >>making >> the builders be node factories is entirely unnecessary and you can just >> have a private NodeFactory for use within the builders. >> >> Rob >> >>> >>>Thanks, >>>Tom >>> >>>On Thu, Oct 18, 2012 at 7:04 PM, Rob Vesse <rv...@do...> wrote: >>>> Hey Tom >>>> >>>> Can you send me a pull request for what you have so far on the >>>>fluent-query >>>> branch? >>>> >>>> I've finished up the refactor I was working on so have some more time >>>>to >>>> look at the fluent-query work if you'd like some help >>>> >>>> Cheers, >>>> >>>> Rob >>>> >>>> >>>>----------------------------------------------------------------------- >>>>-- >>>>----- >>>> Everyone hates slow websites. So do we. >>>> Make your web apps faster with AppDynamics >>>> Download AppDynamics Lite for free today: >>>> http://p.sf.net/sfu/appdyn_sfd2d_oct >>>> _______________________________________________ >>>> dotNetRDF-develop mailing list >>>> dot...@li... >>>> https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop >>>> >>> >>>------------------------------------------------------------------------ >>>-- >>>---- >>>Everyone hates slow websites. So do we. >>>Make your web apps faster with AppDynamics >>>Download AppDynamics Lite for free today: >>>http://p.sf.net/sfu/appdyn_sfd2d_oct >>>_______________________________________________ >>>dotNetRDF-develop mailing list >>>dot...@li... >>>https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop >> >> >> >> >> >> >>------------------------------------------------------------------------- >>----- >> Everyone hates slow websites. So do we. >> Make your web apps faster with AppDynamics >> Download AppDynamics Lite for free today: >> http://p.sf.net/sfu/appdyn_sfd2d_oct >> _______________________________________________ >> dotNetRDF-develop mailing list >> dot...@li... >> https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop > >-------------------------------------------------------------------------- >---- >Everyone hates slow websites. So do we. >Make your web apps faster with AppDynamics >Download AppDynamics Lite for free today: >http://p.sf.net/sfu/appdyn_sfd2d_oct >_______________________________________________ >dotNetRDF-develop mailing list >dot...@li... >https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop |
From: Tomasz P. <tom...@gm...> - 2012-10-19 15:06:49
|
Hi Rob I have been pondering your idea of IGraphPatternBuilder but I'm not sure I understand. Could you give an example of how you would design it's API? Thanks, Tom On Thu, Oct 18, 2012 at 9:31 PM, Rob Vesse <rv...@do...> wrote: > Hey Tom > > That all looks great, comments inline > > On 10/18/12 11:34 AM, "Tomasz Pluskiewicz" <tom...@gm...> > wrote: > >>Hi Rob >> >>Actually I have just today been preparing an email to agree on the >>fluent API. Here it goes. >> >>I have been thinking about the shape of the fluent query API and I >>would like to propose some changes. >> >>1. Currently there are quite a few overloads of the Where method. I >>think the API will be more usable if we left only a limited number, >>eg. >> >>* IQueryBuilder#Where(params ITriplePattern[] patterns) >>* IQueryBuilder#Where(params Triple[] triples) - not sure about >>triples here though >>* IQueryBuilder#Where(GraphPattern) > > Yes I agree having a simpler high level interface for building queries is > better > >> >>Regarding the ast overload, what are the ways to create graph >>patterns? I mean I have seen the ToGraphPattern() method here and >>there. Which classes define such a method and what are differences in >>the graph patterns they produce? > > ToGraphPattern() is typically on algebra classes but it not reliable > because > some algebras (particularly those generated by optimization) cannot be > converted to graph patterns. > > Basically graph pattern wise you have the following: > > - Normal > - OPTIONAL > - GRAPH > - UNION > - SERVICE > - MINUS > - EXISTS/NOT EXISTS (within FILTER only) > >> >>2. I think the API should expose functionality but with least required >>use of the internal SPARQL types like the ITriplePattern, >>ISparqlExpression and such. I would not remove it of course to leave >>room for flexibility. For a day-to-day query building I think that >>maybe creating triple patterns should be split into subjects, >>predicates, object and possibly graphs (here this posin overlaps the >>above about GraphPatterns). As such it sould be possible to implement >>less code and at the same time give a greater flexibility for the user >>and remove the burden of creating instances of the SparqlVariable >>class and such. For example: >> >>var prefixes = new NamespaceMapped(); >>// set up prefixes ... >> >>IQueryBuilder query = QueryBuilder.Select("person", "name"); >> >>// I have just made this up, but could be useful although string name >>interfere with >>// QNames. Maybe add a struct QName? >>query.UsePrefixesFrom(prefixes); >> >>2a. >>// a more flexible form of triple pattern building >>// note the RdfType mehod. This way it would could provide some common >>// properties/classes and also leave an opening for users to create >>their own extension methods >>query.Where.Subject("person").RdfType().Object(new QName("foaf:Person")); >> >>2b. >>// alternatively there's a proposal without the QName struct/class, >>which I like more >>query.Where.Subject("person").RdfType().Object<IUriNode>("foaf:Person")); >> >>2c. >>// here NodeMatchPattern for predicate with full Uri given and obejct >>as a VariablePattern >>query.Where.Subject("person").Predicate(new >>Uri("http://xmlns.com/foaf/0.1/name")).Object("name")); >> >>In terms of graphs, I think that maybe we could provide one more >>method to such ITripleVariable-producing chain, to select the >>appropriate named graph pattern >> >>2d. >>query.Where.Subject("person").Predicate(new >>Uri("http://xmlns.com/foaf/0.1/firstName")).Object("name")).InGraph(new >>Uri("http://uri/of/graph")); >>query.Where.Subject("person").Predicate(new >>Uri("http://xmlns.com/foaf/0.1/lastName")).Object("surname")).InGraph(new >>Uri("http://uri/of/graph")); >>query.Optional.Subject("person").Predicate<IUriNode>("foaf:mbox_sha1sum"). >>Object("emailSha1")).InGraph(new >>Uri("http://uri/with/contact/data")); >> >>All the above would produce: >> >>ad 2a/2b and 2c >> >>WHERE >>{ >> ?person a foaf:Person . >> ?person foaf:name ?name . >>} >> >>ad 2d >> >>WHERE >>{ >> # calling InGraph() with same parameter should >> # add triple pattern to same graph pattern, right? > > Yes that would make sense, implementing it might be slightly trickier but > the notion is sound > > Perhaps InGraph() would turn a ITriplePatternBuilder into a > IGraphPatternBuilder and the user > would have the option of adding further triple/graph pattern builders to > an existing one > >> GRAPH <http://uri/of/graph> >> { >> ?person foaf:firstName ?name >> ?person foaf:lastName ?surname >> } >> GRAPH <http://uri/with/contact/data> >> { >> OPTIONAL { ?person foaf:mbox_sha1sum ?name } >> } >>} >> >>Not how the OPTIONAL has API equivalent to WHERE >> >>3. I have also been thinking that a simmilar way could be used to >>create CONSTRUCT queries. However with the current static >>initialization of query builder I would suggest slightly modifying the >>above to reuse the same methods in both scenarios >> >>One way I find quite good could be using an Action<> delegate and >>introducing an ITriplePatternBuilder interface to actually build the >>triple patterns: >> >>var query = QueryBuilder.Construct( >> (ITriplePatternBuilder tp) => >>tp.Subject("person").RdfType().Object<IUriNode>("ex:MyPersonClass") >>); > > I like this approach, it's clean and extensible > > I assume we'd have ITriplePatternBuilder, maybe IGraphPatternBuilder and > likely a IExpressionBuilder ? > >> >>With this approach, the Where/Optional would change to: >> >>query.Where( tp => >>tp.Subject("person").RdfType().Object<IUriNode>("foaf:Person")) ); >> >>and internally bouth would look somewhat like: >> >>public IQueryBuilder Where(Action<ITriplePatternBuilder> >>buildTriplePatterns) >>{ >> var builder = new TriplePatternBuilder(); //implementation internal >> buildTriplePatterns(builder); >> return Where(builder.TriplePatterns.ToArray()); >>} >> >>I think this way we get a clean seperation of concerns, good >>testability and room for extensibility. >> >>4. Ask query is trivial. The SPARQL update could also use the proposed >>ITriplePatternBuilder I think >> >>5. Basic federated queries could be achived in a simmilar way the >>InGraph() method is used above for >> >>6. We need a method for the BIND keyword, eg. >> >>public IQueryBuilderBind(ISparqlExpression expression, string >>variableName) { ... } > > There could maybe just be a method on the ITriplePatternBuilder to create > a BIND, possible also similar for FILTER and so forth > >> >> >> >>Oh well, there is much more, but we have enough to discuss just for >>now. Tell me what are your feelings about all the above. You are >>certainly more experienced with SPARQL so I would be greateful for >>your own ideas for this feature, which I'm sure you have :). >> >>Also, what do you think would be the greatest challenges here? > > I don't think anything sounds too hard, the tricky bit is just ensuring > you turn these into triple/graph patterns in a consistent manner which > makes sense from the point of the user. We need to be making sure things > group and nest in predictable and appropriate ways e.g. calling InGraph() > creates all the triple patterns from it's builder in a single GRAPH > pattern rather than into multiple GRAPH patterns if that makes sense > > Sounds like you have a good idea what you are doing so I will leave you to > get on with it for the time being. > > One thought I did have is that it probably isn't necessary to have > everything explicitly implement INodeFactory (even SparqlQuery), what > would be simpler is just to have the builders that do need to generate > nodes just extend NodeFactory (and thus get a pre-build implementation of > INodeFactory) though given your above proposal it may turn out that making > the builders be node factories is entirely unnecessary and you can just > have a private NodeFactory for use within the builders. > > Rob > >> >>Thanks, >>Tom >> >>On Thu, Oct 18, 2012 at 7:04 PM, Rob Vesse <rv...@do...> wrote: >>> Hey Tom >>> >>> Can you send me a pull request for what you have so far on the >>>fluent-query >>> branch? >>> >>> I've finished up the refactor I was working on so have some more time to >>> look at the fluent-query work if you'd like some help >>> >>> Cheers, >>> >>> Rob >>> >>> >>>------------------------------------------------------------------------- >>>----- >>> Everyone hates slow websites. So do we. >>> Make your web apps faster with AppDynamics >>> Download AppDynamics Lite for free today: >>> http://p.sf.net/sfu/appdyn_sfd2d_oct >>> _______________________________________________ >>> dotNetRDF-develop mailing list >>> dot...@li... >>> https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop >>> >> >>-------------------------------------------------------------------------- >>---- >>Everyone hates slow websites. So do we. >>Make your web apps faster with AppDynamics >>Download AppDynamics Lite for free today: >>http://p.sf.net/sfu/appdyn_sfd2d_oct >>_______________________________________________ >>dotNetRDF-develop mailing list >>dot...@li... >>https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop > > > > > > ------------------------------------------------------------------------------ > Everyone hates slow websites. So do we. > Make your web apps faster with AppDynamics > Download AppDynamics Lite for free today: > http://p.sf.net/sfu/appdyn_sfd2d_oct > _______________________________________________ > dotNetRDF-develop mailing list > dot...@li... > https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop |
From: Rob V. <rv...@do...> - 2012-10-18 19:32:39
|
Hey Tom That all looks great, comments inline On 10/18/12 11:34 AM, "Tomasz Pluskiewicz" <tom...@gm...> wrote: >Hi Rob > >Actually I have just today been preparing an email to agree on the >fluent API. Here it goes. > >I have been thinking about the shape of the fluent query API and I >would like to propose some changes. > >1. Currently there are quite a few overloads of the Where method. I >think the API will be more usable if we left only a limited number, >eg. > >* IQueryBuilder#Where(params ITriplePattern[] patterns) >* IQueryBuilder#Where(params Triple[] triples) - not sure about >triples here though >* IQueryBuilder#Where(GraphPattern) Yes I agree having a simpler high level interface for building queries is better > >Regarding the ast overload, what are the ways to create graph >patterns? I mean I have seen the ToGraphPattern() method here and >there. Which classes define such a method and what are differences in >the graph patterns they produce? ToGraphPattern() is typically on algebra classes but it not reliable because some algebras (particularly those generated by optimization) cannot be converted to graph patterns. Basically graph pattern wise you have the following: - Normal - OPTIONAL - GRAPH - UNION - SERVICE - MINUS - EXISTS/NOT EXISTS (within FILTER only) > >2. I think the API should expose functionality but with least required >use of the internal SPARQL types like the ITriplePattern, >ISparqlExpression and such. I would not remove it of course to leave >room for flexibility. For a day-to-day query building I think that >maybe creating triple patterns should be split into subjects, >predicates, object and possibly graphs (here this posin overlaps the >above about GraphPatterns). As such it sould be possible to implement >less code and at the same time give a greater flexibility for the user >and remove the burden of creating instances of the SparqlVariable >class and such. For example: > >var prefixes = new NamespaceMapped(); >// set up prefixes ... > >IQueryBuilder query = QueryBuilder.Select("person", "name"); > >// I have just made this up, but could be useful although string name >interfere with >// QNames. Maybe add a struct QName? >query.UsePrefixesFrom(prefixes); > >2a. >// a more flexible form of triple pattern building >// note the RdfType mehod. This way it would could provide some common >// properties/classes and also leave an opening for users to create >their own extension methods >query.Where.Subject("person").RdfType().Object(new QName("foaf:Person")); > >2b. >// alternatively there's a proposal without the QName struct/class, >which I like more >query.Where.Subject("person").RdfType().Object<IUriNode>("foaf:Person")); > >2c. >// here NodeMatchPattern for predicate with full Uri given and obejct >as a VariablePattern >query.Where.Subject("person").Predicate(new >Uri("http://xmlns.com/foaf/0.1/name")).Object("name")); > >In terms of graphs, I think that maybe we could provide one more >method to such ITripleVariable-producing chain, to select the >appropriate named graph pattern > >2d. >query.Where.Subject("person").Predicate(new >Uri("http://xmlns.com/foaf/0.1/firstName")).Object("name")).InGraph(new >Uri("http://uri/of/graph")); >query.Where.Subject("person").Predicate(new >Uri("http://xmlns.com/foaf/0.1/lastName")).Object("surname")).InGraph(new >Uri("http://uri/of/graph")); >query.Optional.Subject("person").Predicate<IUriNode>("foaf:mbox_sha1sum"). >Object("emailSha1")).InGraph(new >Uri("http://uri/with/contact/data")); > >All the above would produce: > >ad 2a/2b and 2c > >WHERE >{ > ?person a foaf:Person . > ?person foaf:name ?name . >} > >ad 2d > >WHERE >{ > # calling InGraph() with same parameter should > # add triple pattern to same graph pattern, right? Yes that would make sense, implementing it might be slightly trickier but the notion is sound Perhaps InGraph() would turn a ITriplePatternBuilder into a IGraphPatternBuilder and the user would have the option of adding further triple/graph pattern builders to an existing one > GRAPH <http://uri/of/graph> > { > ?person foaf:firstName ?name > ?person foaf:lastName ?surname > } > GRAPH <http://uri/with/contact/data> > { > OPTIONAL { ?person foaf:mbox_sha1sum ?name } > } >} > >Not how the OPTIONAL has API equivalent to WHERE > >3. I have also been thinking that a simmilar way could be used to >create CONSTRUCT queries. However with the current static >initialization of query builder I would suggest slightly modifying the >above to reuse the same methods in both scenarios > >One way I find quite good could be using an Action<> delegate and >introducing an ITriplePatternBuilder interface to actually build the >triple patterns: > >var query = QueryBuilder.Construct( > (ITriplePatternBuilder tp) => >tp.Subject("person").RdfType().Object<IUriNode>("ex:MyPersonClass") >); I like this approach, it's clean and extensible I assume we'd have ITriplePatternBuilder, maybe IGraphPatternBuilder and likely a IExpressionBuilder ? > >With this approach, the Where/Optional would change to: > >query.Where( tp => >tp.Subject("person").RdfType().Object<IUriNode>("foaf:Person")) ); > >and internally bouth would look somewhat like: > >public IQueryBuilder Where(Action<ITriplePatternBuilder> >buildTriplePatterns) >{ > var builder = new TriplePatternBuilder(); //implementation internal > buildTriplePatterns(builder); > return Where(builder.TriplePatterns.ToArray()); >} > >I think this way we get a clean seperation of concerns, good >testability and room for extensibility. > >4. Ask query is trivial. The SPARQL update could also use the proposed >ITriplePatternBuilder I think > >5. Basic federated queries could be achived in a simmilar way the >InGraph() method is used above for > >6. We need a method for the BIND keyword, eg. > >public IQueryBuilderBind(ISparqlExpression expression, string >variableName) { ... } There could maybe just be a method on the ITriplePatternBuilder to create a BIND, possible also similar for FILTER and so forth > > > >Oh well, there is much more, but we have enough to discuss just for >now. Tell me what are your feelings about all the above. You are >certainly more experienced with SPARQL so I would be greateful for >your own ideas for this feature, which I'm sure you have :). > >Also, what do you think would be the greatest challenges here? I don't think anything sounds too hard, the tricky bit is just ensuring you turn these into triple/graph patterns in a consistent manner which makes sense from the point of the user. We need to be making sure things group and nest in predictable and appropriate ways e.g. calling InGraph() creates all the triple patterns from it's builder in a single GRAPH pattern rather than into multiple GRAPH patterns if that makes sense Sounds like you have a good idea what you are doing so I will leave you to get on with it for the time being. One thought I did have is that it probably isn't necessary to have everything explicitly implement INodeFactory (even SparqlQuery), what would be simpler is just to have the builders that do need to generate nodes just extend NodeFactory (and thus get a pre-build implementation of INodeFactory) though given your above proposal it may turn out that making the builders be node factories is entirely unnecessary and you can just have a private NodeFactory for use within the builders. Rob > >Thanks, >Tom > >On Thu, Oct 18, 2012 at 7:04 PM, Rob Vesse <rv...@do...> wrote: >> Hey Tom >> >> Can you send me a pull request for what you have so far on the >>fluent-query >> branch? >> >> I've finished up the refactor I was working on so have some more time to >> look at the fluent-query work if you'd like some help >> >> Cheers, >> >> Rob >> >> >>------------------------------------------------------------------------- >>----- >> Everyone hates slow websites. So do we. >> Make your web apps faster with AppDynamics >> Download AppDynamics Lite for free today: >> http://p.sf.net/sfu/appdyn_sfd2d_oct >> _______________________________________________ >> dotNetRDF-develop mailing list >> dot...@li... >> https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop >> > >-------------------------------------------------------------------------- >---- >Everyone hates slow websites. So do we. >Make your web apps faster with AppDynamics >Download AppDynamics Lite for free today: >http://p.sf.net/sfu/appdyn_sfd2d_oct >_______________________________________________ >dotNetRDF-develop mailing list >dot...@li... >https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop |
From: Tomasz P. <tom...@gm...> - 2012-10-18 18:35:27
|
Hi Rob Actually I have just today been preparing an email to agree on the fluent API. Here it goes. I have been thinking about the shape of the fluent query API and I would like to propose some changes. 1. Currently there are quite a few overloads of the Where method. I think the API will be more usable if we left only a limited number, eg. * IQueryBuilder#Where(params ITriplePattern[] patterns) * IQueryBuilder#Where(params Triple[] triples) - not sure about triples here though * IQueryBuilder#Where(GraphPattern) Regarding the ast overload, what are the ways to create graph patterns? I mean I have seen the ToGraphPattern() method here and there. Which classes define such a method and what are differences in the graph patterns they produce? 2. I think the API should expose functionality but with least required use of the internal SPARQL types like the ITriplePattern, ISparqlExpression and such. I would not remove it of course to leave room for flexibility. For a day-to-day query building I think that maybe creating triple patterns should be split into subjects, predicates, object and possibly graphs (here this posin overlaps the above about GraphPatterns). As such it sould be possible to implement less code and at the same time give a greater flexibility for the user and remove the burden of creating instances of the SparqlVariable class and such. For example: var prefixes = new NamespaceMapped(); // set up prefixes ... IQueryBuilder query = QueryBuilder.Select("person", "name"); // I have just made this up, but could be useful although string name interfere with // QNames. Maybe add a struct QName? query.UsePrefixesFrom(prefixes); 2a. // a more flexible form of triple pattern building // note the RdfType mehod. This way it would could provide some common // properties/classes and also leave an opening for users to create their own extension methods query.Where.Subject("person").RdfType().Object(new QName("foaf:Person")); 2b. // alternatively there's a proposal without the QName struct/class, which I like more query.Where.Subject("person").RdfType().Object<IUriNode>("foaf:Person")); 2c. // here NodeMatchPattern for predicate with full Uri given and obejct as a VariablePattern query.Where.Subject("person").Predicate(new Uri("http://xmlns.com/foaf/0.1/name")).Object("name")); In terms of graphs, I think that maybe we could provide one more method to such ITripleVariable-producing chain, to select the appropriate named graph pattern 2d. query.Where.Subject("person").Predicate(new Uri("http://xmlns.com/foaf/0.1/firstName")).Object("name")).InGraph(new Uri("http://uri/of/graph")); query.Where.Subject("person").Predicate(new Uri("http://xmlns.com/foaf/0.1/lastName")).Object("surname")).InGraph(new Uri("http://uri/of/graph")); query.Optional.Subject("person").Predicate<IUriNode>("foaf:mbox_sha1sum").Object("emailSha1")).InGraph(new Uri("http://uri/with/contact/data")); All the above would produce: ad 2a/2b and 2c WHERE { ?person a foaf:Person . ?person foaf:name ?name . } ad 2d WHERE { # calling InGraph() with same parameter should # add triple pattern to same graph pattern, right? GRAPH <http://uri/of/graph> { ?person foaf:firstName ?name ?person foaf:lastName ?surname } GRAPH <http://uri/with/contact/data> { OPTIONAL { ?person foaf:mbox_sha1sum ?name } } } Not how the OPTIONAL has API equivalent to WHERE 3. I have also been thinking that a simmilar way could be used to create CONSTRUCT queries. However with the current static initialization of query builder I would suggest slightly modifying the above to reuse the same methods in both scenarios One way I find quite good could be using an Action<> delegate and introducing an ITriplePatternBuilder interface to actually build the triple patterns: var query = QueryBuilder.Construct( (ITriplePatternBuilder tp) => tp.Subject("person").RdfType().Object<IUriNode>("ex:MyPersonClass") ); With this approach, the Where/Optional would change to: query.Where( tp => tp.Subject("person").RdfType().Object<IUriNode>("foaf:Person")) ); and internally bouth would look somewhat like: public IQueryBuilder Where(Action<ITriplePatternBuilder> buildTriplePatterns) { var builder = new TriplePatternBuilder(); //implementation internal buildTriplePatterns(builder); return Where(builder.TriplePatterns.ToArray()); } I think this way we get a clean seperation of concerns, good testability and room for extensibility. 4. Ask query is trivial. The SPARQL update could also use the proposed ITriplePatternBuilder I think 5. Basic federated queries could be achived in a simmilar way the InGraph() method is used above for 6. We need a method for the BIND keyword, eg. public IQueryBuilderBind(ISparqlExpression expression, string variableName) { ... } Oh well, there is much more, but we have enough to discuss just for now. Tell me what are your feelings about all the above. You are certainly more experienced with SPARQL so I would be greateful for your own ideas for this feature, which I'm sure you have :). Also, what do you think would be the greatest challenges here? Thanks, Tom On Thu, Oct 18, 2012 at 7:04 PM, Rob Vesse <rv...@do...> wrote: > Hey Tom > > Can you send me a pull request for what you have so far on the fluent-query > branch? > > I've finished up the refactor I was working on so have some more time to > look at the fluent-query work if you'd like some help > > Cheers, > > Rob > > ------------------------------------------------------------------------------ > Everyone hates slow websites. So do we. > Make your web apps faster with AppDynamics > Download AppDynamics Lite for free today: > http://p.sf.net/sfu/appdyn_sfd2d_oct > _______________________________________________ > dotNetRDF-develop mailing list > dot...@li... > https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop > |
From: Rob V. <rv...@do...> - 2012-10-18 17:05:36
|
Hey Tom Can you send me a pull request for what you have so far on the fluent-query branch? I've finished up the refactor I was working on so have some more time to look at the fluent-query work if you'd like some help Cheers, Rob |
From: Rob V. <rv...@do...> - 2012-10-18 17:00:16
|
Done Rob On 10/11/12 7:55 PM, "Tomasz Pluskiewicz" <tom...@gm...> wrote: >Hi Rob > >It seems that there is a problem with standard login on the >bugtracker. I did create an account and it logged me in the first time >but now I cannot log back in. OpenID works though. Could you please >delete the other account (usename tpluscode) > >Thanks, >Tom > >On Thu, Aug 23, 2012 at 12:30 PM, Tomasz Pluskiewicz ><tom...@gm...> wrote: >> It is working now. Thanks Rob. >> >> Tom >> >> On Wed, Aug 22, 2012 at 5:53 PM, Rob Vesse <rv...@vd...> >>wrote: >>> Sorry they changed some of the configuration settings as part of the >>>new >>> version (I jumped about 4 releases with the upgrade) and it seems they >>>now >>> default to public registration being turned off >>> >>> It should now be turned back on again >>> >>> Rob >>> >>> On 8/22/12 12:47 AM, "Tomasz Pluskiewicz" >>><tom...@gm...> >>> wrote: >>> >>>>Hi >>>> >>>>As the tracker finally works I wanted to see if I can submit a feature >>>>proposal but I can't. IMO the tracker could be made open or at least >>>>offer registration. What do you think? Or am I missing something? >>>> >>>>Regards, >>>>Tomasz >>>> >>>>----------------------------------------------------------------------- >>>>--- >>>>---- >>>>Live Security Virtual Conference >>>>Exclusive live event will cover all the ways today's security and >>>>threat landscape has changed and how IT managers can respond. >>>>Discussions >>>>will include endpoint security, mobile security and the latest in >>>>malware >>>>threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ >>>>_______________________________________________ >>>>dotNetRDF-develop mailing list >>>>dot...@li... >>>>https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop >>> >>> >>> >>> >>> >>> >>>------------------------------------------------------------------------ >>>------ >>> Live Security Virtual Conference >>> Exclusive live event will cover all the ways today's security and >>> threat landscape has changed and how IT managers can respond. >>>Discussions >>> will include endpoint security, mobile security and the latest in >>>malware >>> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ >>> _______________________________________________ >>> dotNetRDF-develop mailing list >>> dot...@li... >>> https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop > >-------------------------------------------------------------------------- >---- >Don't let slow site performance ruin your business. Deploy New Relic APM >Deploy New Relic app performance management and know exactly >what is happening inside your Ruby, Python, PHP, Java, and .NET app >Try New Relic at no cost today and get our sweet Data Nerd shirt too! >http://p.sf.net/sfu/newrelic-dev2dev >_______________________________________________ >dotNetRDF-develop mailing list >dot...@li... >https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop |
From: <tr...@do...> - 2012-10-18 16:59:29
|
<p>A new comment has been added to the following issue.</p> <table border="0"> <tr> <td width="90px" valign="top"><b>Title:</b></td> <td>Refactor how GROUP BY, Aggregates and Project Expressions are applied</td> </tr> <tr> <td><b>Project:</b></td> <td>Core Library (dotNetRDF.dll)</td> </tr> <tr> <td><b>Created By:</b></td> <td>Rob Vesse</td> </tr> <tr> <td><b>Date:</b></td> <td>2012-10-18 05:57 PM</td> </tr> <tr> <td><b>Comment:</b></td> </tr> <tr> <td colspan="2"><p> The feature branch has now been merged into default and all regressions that were introrduced by the refactor were diagnosed and fixed as actual regressions or previously hidden bugs</p></td> </tr> </table> <p> More information on this issue can be found at <a href="http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=284" target="_blank">http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=284</a></p> <p style="text-align:center;font-size:8pt;padding:5px;"> If you no longer wish to receive notifications, please visit <a href="http://www.dotnetrdf.org/tracker/Account/UserProfile.aspx" target="_blank">your profile</a> and change your notifications options. </p> |
From: <tr...@do...> - 2012-10-18 16:58:49
|
<p>The following issue has been updated by Rob Vesse:</p> <table border="0"> <tr> <td width="90px" valign="top"><b>Title:</b></td> <td>Refactor how GROUP BY, Aggregates and Project Expressions are applied</td> </tr> <tr> <td><b>Project:</b></td> <td>Core Library (dotNetRDF.dll)</td> </tr> <tr> <td colspan="2"><b>Changes:</b></td> </tr> <tr> <td colspan="2"> <ul> <li>Status changed from "In Progress" to "Completed" </li> <li>Resolution changed from "none" to "Completed" </li> <li>Progress changed from "5,000.00 %" to "10,000.00 %" </li> </ul> </td> </tr> </table> <p> More information on this issue can be found at <a href="http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=284" target="_blank">http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=284</a></p> <p style="text-align:center;font-size:8pt;padding:5px;"> If you no longer wish to receive notifications, please visit <a href="http://www.dotnetrdf.org/tracker/Account/UserProfile.aspx" target="_blank">your profile</a> and change your notifications options. </p> |
From: <tr...@do...> - 2012-10-18 16:58:25
|
<p>A new comment has been added to the following issue.</p> <table border="0"> <tr> <td width="90px" valign="top"><b>Title:</b></td> <td>CountDistinctAggregate produces wrong SPARQL string</td> </tr> <tr> <td><b>Project:</b></td> <td>Core Library (dotNetRDF.dll)</td> </tr> <tr> <td><b>Created By:</b></td> <td>Rob Vesse</td> </tr> <tr> <td><b>Date:</b></td> <td>2012-10-18 05:56 PM</td> </tr> <tr> <td><b>Comment:</b></td> </tr> <tr> <td colspan="2"><p> Fixed by Tom's pull request</p></td> </tr> </table> <p> More information on this issue can be found at <a href="http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=286" target="_blank">http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=286</a></p> <p style="text-align:center;font-size:8pt;padding:5px;"> If you no longer wish to receive notifications, please visit <a href="http://www.dotnetrdf.org/tracker/Account/UserProfile.aspx" target="_blank">your profile</a> and change your notifications options. </p> |
From: <tr...@do...> - 2012-10-18 16:58:13
|
<p>The following issue has been updated by Rob Vesse:</p> <table border="0"> <tr> <td width="90px" valign="top"><b>Title:</b></td> <td>CountDistinctAggregate produces wrong SPARQL string</td> </tr> <tr> <td><b>Project:</b></td> <td>Core Library (dotNetRDF.dll)</td> </tr> <tr> <td colspan="2"><b>Changes:</b></td> </tr> <tr> <td colspan="2"> <ul> <li>Status changed from "New" to "Completed" </li> <li>Resolution changed from "none" to "Fixed" </li> <li>Assigned to changed from "none" to "Tomasz Pluskiewicz" </li> <li>Progress changed from "0.00 %" to "10,000.00 %" </li> </ul> </td> </tr> </table> <p> More information on this issue can be found at <a href="http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=286" target="_blank">http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=286</a></p> <p style="text-align:center;font-size:8pt;padding:5px;"> If you no longer wish to receive notifications, please visit <a href="http://www.dotnetrdf.org/tracker/Account/UserProfile.aspx" target="_blank">your profile</a> and change your notifications options. </p> |
From: <tr...@do...> - 2012-10-17 20:33:34
|
<p>The following issue has been added to a project that you are monitoring.</p> <table border="0"> <tr> <td width="90px" valign="top"><b>Title:</b></td> <td>CountDistinctAggregate produces wrong SPARQL string</td> </tr> <tr> <td><b>Project:</b></td> <td>Core Library (dotNetRDF.dll)</td> </tr> <tr> <td><b>Created By:</b></td> <td>Tomasz Pluskiewicz</td> </tr> <tr> <td><b>Milestone:</b></td> <td>0.8.0 RC 1</td> </tr> <tr> <td><b>Category:</b></td> <td>Query</td> </tr> <tr> <td><b>Priority:</b></td> <td>Normal</td> </tr> <tr> <td><b>Type:</b></td> <td>Bug</td> </tr> <tr> <td><b>Description:</b></td> </tr> <tr> <td colspan="2"><p> The following fails</p> <p> </p> <div> var aggregate = new CountDistinctAggregate(new VariableTerm(countedVariableName));</div> <div> Assert.AreEqual("COUNT(DISTINCT ?var)", aggregate.ToString());</div> <div> </div> <div> The actual return value fo the ToString() call is "COUNT(?var)", hence it is missing the DISTINCT keyword.</div></td> </tr> </table> <p> More information on this issue can be found at <a href="http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=286" target="_blank">http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=286</a></p> <p style="text-align:center;font-size:8pt;padding:5px;"> If you no longer wish to receive notifications, please visit <a href="http://www.dotnetrdf.org/tracker/Account/UserProfile.aspx" target="_blank">your profile</a> and change your notifications options. </p> |
From: <tr...@do...> - 2012-10-16 20:34:37
|
<p>The following issue has been updated by Rob Vesse:</p> <table border="0"> <tr> <td width="90px" valign="top"><b>Title:</b></td> <td>Allow a form of DISTINCT which ignores temporary variables</td> </tr> <tr> <td><b>Project:</b></td> <td>Core Library (dotNetRDF.dll)</td> </tr> <tr> <td colspan="2"><b>Changes:</b></td> </tr> <tr> <td colspan="2"> <ul> <li>Status changed from "Planned" to "Completed" </li> <li>Resolution changed from "none" to "Completed" </li> <li>Progress changed from "0.00 %" to "10,000.00 %" </li> </ul> </td> </tr> </table> <p> More information on this issue can be found at <a href="http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=283" target="_blank">http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=283</a></p> <p style="text-align:center;font-size:8pt;padding:5px;"> If you no longer wish to receive notifications, please visit <a href="http://www.dotnetrdf.org/tracker/Account/UserProfile.aspx" target="_blank">your profile</a> and change your notifications options. </p> |
From: <tr...@do...> - 2012-10-16 17:54:22
|
<p>The following issue has been updated by Rob Vesse:</p> <table border="0"> <tr> <td width="90px" valign="top"><b>Title:</b></td> <td>Inconsistent parameter requirements for SparqlVariables</td> </tr> <tr> <td><b>Project:</b></td> <td>Core Library (dotNetRDF.dll)</td> </tr> <tr> <td colspan="2"><b>Changes:</b></td> </tr> <tr> <td colspan="2"> <ul> <li>Milestone changed from "0.4.0 Beta" to "0.8.0 RC 1" </li> <li>Affected Milestone changed from "0.8.0 RC 1" to "0.4.0 Beta" </li> </ul> </td> </tr> </table> <p> More information on this issue can be found at <a href="http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=285" target="_blank">http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=285</a></p> <p style="text-align:center;font-size:8pt;padding:5px;"> If you no longer wish to receive notifications, please visit <a href="http://www.dotnetrdf.org/tracker/Account/UserProfile.aspx" target="_blank">your profile</a> and change your notifications options. </p> |
From: <tr...@do...> - 2012-10-16 17:54:06
|
<p>A new comment has been added to the following issue.</p> <table border="0"> <tr> <td width="90px" valign="top"><b>Title:</b></td> <td>Inconsistent parameter requirements for SparqlVariables</td> </tr> <tr> <td><b>Project:</b></td> <td>Core Library (dotNetRDF.dll)</td> </tr> <tr> <td><b>Created By:</b></td> <td>Rob Vesse</td> </tr> <tr> <td><b>Date:</b></td> <td>2012-10-16 06:51 PM</td> </tr> <tr> <td><b>Comment:</b></td> </tr> <tr> <td colspan="2"><p> SparqlVariable, VariablePattern and VariableTerm should now all accept a name with/without the leading ?/$</p></td> </tr> </table> <p> More information on this issue can be found at <a href="http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=285" target="_blank">http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=285</a></p> <p style="text-align:center;font-size:8pt;padding:5px;"> If you no longer wish to receive notifications, please visit <a href="http://www.dotnetrdf.org/tracker/Account/UserProfile.aspx" target="_blank">your profile</a> and change your notifications options. </p> |
From: <tr...@do...> - 2012-10-16 17:53:43
|
<p>The following issue has been updated by Rob Vesse:</p> <table border="0"> <tr> <td width="90px" valign="top"><b>Title:</b></td> <td>Inconsistent parameter requirements for SparqlVariables</td> </tr> <tr> <td><b>Project:</b></td> <td>Core Library (dotNetRDF.dll)</td> </tr> <tr> <td colspan="2"><b>Changes:</b></td> </tr> <tr> <td colspan="2"> <ul> <li>Category changed from "none" to "Query" </li> <li>Status changed from "none" to "Completed" </li> <li>Milestone changed from "none" to "0.4.0 Beta" </li> <li>Resolution changed from "none" to "Fixed" </li> <li>Assigned to changed from "none" to "Rob Vesse" </li> <li>Progress changed from "0.00 %" to "10,000.00 %" </li> </ul> </td> </tr> </table> <p> More information on this issue can be found at <a href="http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=285" target="_blank">http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=285</a></p> <p style="text-align:center;font-size:8pt;padding:5px;"> If you no longer wish to receive notifications, please visit <a href="http://www.dotnetrdf.org/tracker/Account/UserProfile.aspx" target="_blank">your profile</a> and change your notifications options. </p> |
From: <tr...@do...> - 2012-10-16 17:41:27
|
<p>A new comment has been added to the following issue.</p> <table border="0"> <tr> <td width="90px" valign="top"><b>Title:</b></td> <td>Inconsistent parameter requirements for SparqlVariables</td> </tr> <tr> <td><b>Project:</b></td> <td>Core Library (dotNetRDF.dll)</td> </tr> <tr> <td><b>Created By:</b></td> <td>Rob Vesse</td> </tr> <tr> <td><b>Date:</b></td> <td>2012-10-16 06:39 PM</td> </tr> <tr> <td><b>Comment:</b></td> </tr> <tr> <td colspan="2"><p> This is a historical artifact due to how the two things are creating within the SPARQL parser infrastructure, there is no real reason to maintain the inconsistency so I will fix it ASAP</p></td> </tr> </table> <p> More information on this issue can be found at <a href="http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=285" target="_blank">http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=285</a></p> <p style="text-align:center;font-size:8pt;padding:5px;"> If you no longer wish to receive notifications, please visit <a href="http://www.dotnetrdf.org/tracker/Account/UserProfile.aspx" target="_blank">your profile</a> and change your notifications options. </p> |
From: Tomasz P. <tom...@gm...> - 2012-10-11 18:56:45
|
Hi Rob It seems that there is a problem with standard login on the bugtracker. I did create an account and it logged me in the first time but now I cannot log back in. OpenID works though. Could you please delete the other account (usename tpluscode) Thanks, Tom On Thu, Aug 23, 2012 at 12:30 PM, Tomasz Pluskiewicz <tom...@gm...> wrote: > It is working now. Thanks Rob. > > Tom > > On Wed, Aug 22, 2012 at 5:53 PM, Rob Vesse <rv...@vd...> wrote: >> Sorry they changed some of the configuration settings as part of the new >> version (I jumped about 4 releases with the upgrade) and it seems they now >> default to public registration being turned off >> >> It should now be turned back on again >> >> Rob >> >> On 8/22/12 12:47 AM, "Tomasz Pluskiewicz" <tom...@gm...> >> wrote: >> >>>Hi >>> >>>As the tracker finally works I wanted to see if I can submit a feature >>>proposal but I can't. IMO the tracker could be made open or at least >>>offer registration. What do you think? Or am I missing something? >>> >>>Regards, >>>Tomasz >>> >>>-------------------------------------------------------------------------- >>>---- >>>Live Security Virtual Conference >>>Exclusive live event will cover all the ways today's security and >>>threat landscape has changed and how IT managers can respond. Discussions >>>will include endpoint security, mobile security and the latest in malware >>>threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ >>>_______________________________________________ >>>dotNetRDF-develop mailing list >>>dot...@li... >>>https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop >> >> >> >> >> >> ------------------------------------------------------------------------------ >> Live Security Virtual Conference >> Exclusive live event will cover all the ways today's security and >> threat landscape has changed and how IT managers can respond. Discussions >> will include endpoint security, mobile security and the latest in malware >> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ >> _______________________________________________ >> dotNetRDF-develop mailing list >> dot...@li... >> https://lists.sourceforge.net/lists/listinfo/dotnetrdf-develop |
From: <tr...@do...> - 2012-10-11 18:55:02
|
<p>The following issue has been added to a project that you are monitoring.</p> <table border="0"> <tr> <td width="90px" valign="top"><b>Title:</b></td> <td>Inconsistent parameter requirements for SparqlVariables</td> </tr> <tr> <td><b>Project:</b></td> <td>Core Library (dotNetRDF.dll)</td> </tr> <tr> <td><b>Created By:</b></td> <td>http://tpluscode.myopenid.com/</td> </tr> <tr> <td><b>Milestone:</b></td> <td>none</td> </tr> <tr> <td><b>Category:</b></td> <td>none</td> </tr> <tr> <td><b>Priority:</b></td> <td>Low</td> </tr> <tr> <td><b>Type:</b></td> <td>Refactor</td> </tr> <tr> <td><b>Description:</b></td> </tr> <tr> <td colspan="2"><p> I think the API for creating <strong>SparqlVariables</strong> and <strong>VariablePatterns</strong> is inconsistent.</p> <p> Calling <strong>new SparqlVariable(string)</strong> requires that the name has the leading question mark removed. However the <strong>new VariablePattern(string) </strong>requires the variable to have the question mark included.</p> <p> I think this is counterintuitive. Is there a reason for such design?</p> <p> I would suggest unifying the API</p></td> </tr> </table> <p> More information on this issue can be found at <a href="http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=285" target="_blank">http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=285</a></p> <p style="text-align:center;font-size:8pt;padding:5px;"> If you no longer wish to receive notifications, please visit <a href="http://www.dotnetrdf.org/tracker/Account/UserProfile.aspx" target="_blank">your profile</a> and change your notifications options. </p> |
From: <tr...@do...> - 2012-10-03 22:36:53
|
<p>A new comment has been added to the following issue.</p> <table border="0"> <tr> <td width="90px" valign="top"><b>Title:</b></td> <td>Refactor how GROUP BY, Aggregates and Project Expressions are applied</td> </tr> <tr> <td><b>Project:</b></td> <td>Core Library (dotNetRDF.dll)</td> </tr> <tr> <td><b>Created By:</b></td> <td>Rob Vesse</td> </tr> <tr> <td><b>Date:</b></td> <td>2012-10-03 11:35 PM</td> </tr> <tr> <td><b>Comment:</b></td> </tr> <tr> <td colspan="2"><p> Feature branch is group-refactor</p></td> </tr> </table> <p> More information on this issue can be found at <a href="http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=284" target="_blank">http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=284</a></p> <p style="text-align:center;font-size:8pt;padding:5px;"> If you no longer wish to receive notifications, please visit <a href="http://www.dotnetrdf.org/tracker/Account/UserProfile.aspx" target="_blank">your profile</a> and change your notifications options. </p> |
From: <tr...@do...> - 2012-10-03 22:36:44
|
<p>The following issue has been updated by Rob Vesse:</p> <table border="0"> <tr> <td width="90px" valign="top"><b>Title:</b></td> <td>Refactor how GROUP BY, Aggregates and Project Expressions are applied</td> </tr> <tr> <td><b>Project:</b></td> <td>Core Library (dotNetRDF.dll)</td> </tr> <tr> <td colspan="2"><b>Changes:</b></td> </tr> <tr> <td colspan="2"> <ul> <li>Status changed from "Planned" to "In Progress" </li> <li>Progress changed from "0.00 %" to "5,000.00 %" </li> </ul> </td> </tr> </table> <p> More information on this issue can be found at <a href="http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=284" target="_blank">http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=284</a></p> <p style="text-align:center;font-size:8pt;padding:5px;"> If you no longer wish to receive notifications, please visit <a href="http://www.dotnetrdf.org/tracker/Account/UserProfile.aspx" target="_blank">your profile</a> and change your notifications options. </p> |
From: <tr...@do...> - 2012-10-03 19:24:44
|
<p>A new comment has been added to the following issue.</p> <table border="0"> <tr> <td width="90px" valign="top"><b>Title:</b></td> <td>Refactor how GROUP BY, Aggregates and Project Expressions are applied</td> </tr> <tr> <td><b>Project:</b></td> <td>Core Library (dotNetRDF.dll)</td> </tr> <tr> <td><b>Created By:</b></td> <td>Rob Vesse</td> </tr> <tr> <td><b>Date:</b></td> <td>2012-10-03 08:22 PM</td> </tr> <tr> <td><b>Comment:</b></td> </tr> <tr> <td colspan="2"><p> NB - This work will be carried out in a feature branch to minimize risk of breaking current support if the refactor doesn't work out as planned</p></td> </tr> </table> <p> More information on this issue can be found at <a href="http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=284" target="_blank">http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=284</a></p> <p style="text-align:center;font-size:8pt;padding:5px;"> If you no longer wish to receive notifications, please visit <a href="http://www.dotnetrdf.org/tracker/Account/UserProfile.aspx" target="_blank">your profile</a> and change your notifications options. </p> |
From: <tr...@do...> - 2012-10-03 19:24:15
|
<p>The following issue has been added to a project that you are monitoring.</p> <table border="0"> <tr> <td width="90px" valign="top"><b>Title:</b></td> <td>Refactor how GROUP BY, Aggregates and Project Expressions are applied</td> </tr> <tr> <td><b>Project:</b></td> <td>Core Library (dotNetRDF.dll)</td> </tr> <tr> <td><b>Created By:</b></td> <td>Rob Vesse</td> </tr> <tr> <td><b>Milestone:</b></td> <td>0.8.0 RC 1</td> </tr> <tr> <td><b>Category:</b></td> <td>Query</td> </tr> <tr> <td><b>Priority:</b></td> <td>High</td> </tr> <tr> <td><b>Type:</b></td> <td>Refactor</td> </tr> <tr> <td><b>Description:</b></td> </tr> <tr> <td colspan="2"><p> The current method of applying GROUP BY, Aggregates and Project Expressions works and passes the official tests but implementation wise is somewhat different from other implementations like ARQ. The code in question is quite convuluted and hard to read making it difficult to maintain or extend going forward.</p> <p> This task is to refactor the code appropriately, this includes the following:</p> <ul> <li> Move code for group calculation and GroupMultiset population fully into GroupBy</li> <li> Move code for aggregate calculation into GroupBy</li> <li> Properly handle the case of aggregates with no GROUP BY - create a GroupMultiset containing a single group</li> <li> Handle project expressions as Extend over the inner algebra</li> <li> Remove separate Project operator since it's actual intended function is already handled by Select</li> </ul></td> </tr> </table> <p> More information on this issue can be found at <a href="http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=284" target="_blank">http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=284</a></p> <p style="text-align:center;font-size:8pt;padding:5px;"> If you no longer wish to receive notifications, please visit <a href="http://www.dotnetrdf.org/tracker/Account/UserProfile.aspx" target="_blank">your profile</a> and change your notifications options. </p> |
From: <tr...@do...> - 2012-10-03 19:17:39
|
<p>The following issue has been added to a project that you are monitoring.</p> <table border="0"> <tr> <td width="90px" valign="top"><b>Title:</b></td> <td>Allow a form of DISTINCT which ignores temporary variables</td> </tr> <tr> <td><b>Project:</b></td> <td>Core Library (dotNetRDF.dll)</td> </tr> <tr> <td><b>Created By:</b></td> <td>Rob Vesse</td> </tr> <tr> <td><b>Milestone:</b></td> <td>0.8.0 RC 1</td> </tr> <tr> <td><b>Category:</b></td> <td>Query</td> </tr> <tr> <td><b>Priority:</b></td> <td>High</td> </tr> <tr> <td><b>Type:</b></td> <td>Improvement</td> </tr> <tr> <td><b>Description:</b></td> </tr> <tr> <td colspan="2"><p> The 0.7.2 release introduces fixes to align property path support with the SPARQL 1.1 specification which means applying DISTINCT over some intermediate results. For the tests cases and most simple property paths this will always be fine but there may be some cases where this is problematic</p> <p> This task is to investigate whether this is the case and if neccessary make the relevant changes to DISTINCT to allow the required special case behaviour</p></td> </tr> </table> <p> More information on this issue can be found at <a href="http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=283" target="_blank">http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=283</a></p> <p style="text-align:center;font-size:8pt;padding:5px;"> If you no longer wish to receive notifications, please visit <a href="http://www.dotnetrdf.org/tracker/Account/UserProfile.aspx" target="_blank">your profile</a> and change your notifications options. </p> |
From: <tr...@do...> - 2012-10-03 19:14:53
|
<p>The following issue has been updated by Rob Vesse:</p> <table border="0"> <tr> <td width="90px" valign="top"><b>Title:</b></td> <td>Refactor how parsers/writers are selected - Allow direct selection by file extension</td> </tr> <tr> <td><b>Project:</b></td> <td>Core Library (dotNetRDF.dll)</td> </tr> <tr> <td colspan="2"><b>Changes:</b></td> </tr> <tr> <td colspan="2"> <ul> <li>Status changed from "In Progress" to "Completed" </li> <li>Resolution changed from "none" to "Completed" </li> <li>Progress changed from "4,000.00 %" to "10,000.00 %" </li> </ul> </td> </tr> </table> <p> More information on this issue can be found at <a href="http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=282" target="_blank">http://www.dotnetrdf.org/tracker/Issues/IssueDetail.aspx?id=282</a></p> <p style="text-align:center;font-size:8pt;padding:5px;"> If you no longer wish to receive notifications, please visit <a href="http://www.dotnetrdf.org/tracker/Account/UserProfile.aspx" target="_blank">your profile</a> and change your notifications options. </p> |