
|
If you were logged in you would be able to see more operations.
|
|
Sesame
Created: 07/Jan/10 12:11 PM
Updated: 07/Jan/10 02:30 PM
|
|
| Component/s: |
SeRQL,
SPARQL
|
| Affects Version/s: |
None
|
| Fix Version/s: |
2.3.1
|
|
|
File Attachments:
|
1.
multiprojection.patch (3 kb)
|
|
Issue Links:
|
Related
|
|
This issue is related to:
|
|
SES-385
duplicate statements in SPARQL-constr...
|
|
|
|
|
|
|
CONSTRUCT queries should be reduced further. Currently only consecutive duplicates are removed, however, larger construct clauses repeat a pattern (over and over).
The MultiProjectionIterator should not repeat projections that were also produced from the previous nested BindingSet.
This does not have a big impact when the repository is embedded, but when the repository is remote and the result is serialized by the Sesame Server the duplicates have a noticeable impact on performance. A common construct query I have been using was serialized to 47K over HTTP using RDF/XML, by reducing the number of duplicates this could be reduced to 9.1K.
|
|
|
Change by Arjohn Kampman [07/Jan/10 12:12 PM]
|
| Field |
Original Value |
New Value |
|
Fix Version/s
|
|
2.3.1
[ 10430
]
|
|
Fix Version/s
|
2.3-pr1
[ 10410
]
|
|
|
Description
|
Issue was raised by Henry Story on sesame-devel:
---------------------------------------------------------------------------------
Not sure if this is a bug or not, as I don't have a deep grasp of SPARQL semantics. If I sent the following query
CONSTRUCT { ?c a rdfs:Class . }
WHERE { [] a ?c . }
I get a huge number of results like this
:Issue a rdfs:Class , rdfs:Class , rdfs:Class , rdfs:Class ,
rdfs:Class , rdfs:Class , rdfs:Class , rdfs:Class , rdfs:Class ,
rdfs:Class , rdfs:Class , rdfs:Class , rdfs:Class , rdfs:Class ,
rdfs:Class , rdfs:Class , rdfs:Class , rdfs:Class , rdfs:Class ,
rdfs:Class , rdfs:Class , rdfs:Class , rdfs:Class , rdfs:Class ,
rdfs:Class , rdfs:Class , rdfs:Class , rdfs:Class , rdfs:Class ,
rdfs:Class , rdfs:Class , rdfs:Class , rdfs:Class , rdfs:Class ,
rdfs:Class , rdfs:Class , rdfs:Class , rdfs:Class , rdfs:Class ,
rdfs:Class , rdfs:Class , rdfs:Class , rdfs:Class , rdfs:Class ,
rdfs:Class , rdfs:Class , rdfs:Class , rdfs:Class , rdfs:Class ,
rdfs:Class , rdfs:Class , rdfs:Class , rdfs:Class....
There is no DISTINCT clause for CONSTRUCT, but it seems to me that the graph returned is a little verbose. It is just repeating n times the same relation.
---------------------------------------------------------------------------------
|
CONSTRUCT queries should be reduced further. Currently only consecutive duplicates are removed, however, larger construct clauses repeat a pattern (over and over).
The MultiProjectionIterator should not repeat projections that were also produced from the previous nested BindingSet.
This does not have a big impact when the repository is embedded, but when the repository is remote and the result is serialized by the Sesame Server the duplicates have a noticeable impact on performance. A common construct query I have been using was serialized to 47K over HTTP using RDF/XML, by reducing the number of duplicates this could be reduced to 9.1K.
|
|
Reporter
|
Henry Story
[ bblfish
]
|
James Leigh
[ james
]
|
Here is a patch that reduces duplicates from consecutive multi-projections (construct clause pattern sets).
|
Change by Arjohn Kampman [07/Jan/10 12:14 PM]
|
| Field |
Original Value |
New Value |
|
Attachment
|
|
multiprojection.patch
[ 10290
]
|
Supplied patch was applied and then modified to reduce processing overhead. MultiProjectionIterator now compares results with the previous result from the same projection instead of with the previous results of all projections, but this probably works in most cases.
|
Change by Arjohn Kampman [07/Jan/10 02:30 PM]
|
| Field |
Original Value |
New Value |
|
Status
|
Open
[ 1
]
|
Resolved
[ 5
]
|
|
Resolution
|
|
Fixed
[ 1
]
|
|
|