Hu Holger,
It seems that only having ‘multiple object variables + filters’ gives the right
result.
So:
SELECT ?spec ?bpsWeg1 ?mengselType1 ?bpsStartKilometrering1 ?eisvoormengseltype
?minhol ?maxhol ?eiszeef2 ?eiszeef0dot063 ?minbind ?monster ?locatie
?monsterLaag ?laag ?bitumenSoort ?verdichtingsgraad ?holleruimtePercentage
?bindmiddelPercentage ?doorZeef2millimPercentage ?doorZeef63micromPercentage
?jaar ?somVanRafeling
{
?spec rdf:type sa:OntwerpSpecificatie .
?spec sa:bpsWeg ?bpsWeg .
?spec sa:mengselVoldoetAanDeEisenVoor ?eisvoormengseltype .
?spec sa:minimumPercentageHolleRuimte ?minhol .
?spec sa:maximumPercentageHolleRuimte ?maxhol .
?spec sa:algemeneEisPercentageDoorZeef2mm ?eiszeef2 .
?spec sa:algemeneEisPercentageDoorZeef0dot063mm ?eiszeef0dot063 .
?spec sa:minimalePercentageBindmiddel ?minbind .
?monster rdf:type sa:Monster .
?monster sa:bpsWeg ?bpsWeg1 .
OPTIONAL { ?monster sa:bpsStartKilometrering ?bpsStartKilometrering1 } .
?monster sa:locatie ?locatie .
?monster nen2660:hasPart ?monsterLaag .
?monsterLaag rdf:type sa:MonsterLaag .
?monsterLaag sa:mengselType ?mengselType1 .
?monsterLaag sa:laag ?laag .
?monsterLaag sa:bitumenSoort ?bitumenSoort .
OPTIONAL { ?monsterLaag sa:verdichtingsgraad ?verdichtingsgraad } .
OPTIONAL { ?monsterLaag sa:holleruimtePercentage ?holleruimtePercentage } .
OPTIONAL { ?monsterLaag sa:bindmiddelPercentage ?bindmiddelPercentage } .
OPTIONAL { ?monsterLaag sa:doorZeef2millimPercentage
?doorZeef2millimPercentage } .
OPTIONAL { ?monsterLaag sa:doorZeef63micromPercentage
?doorZeef63micromPercentage } .
?meting rdf:type sa:MonitoringMeting .
OPTIONAL { ?meting sa:surfaceOmschrijving ?mengselType2 } .
?meting sa:jaar ?jaar .
?meting sa:bpsWeg ?bpsWeg2 .
?meting sa:bpsStartKilometrering ?bpsStartKilometrering2 .
OPTIONAL { ?meting sa:somVanRafeling ?somVanRafeling } .
FILTER (?mengselType1 = ?mengselType2) .
FILTER (?bpsWeg1 = ?bpsWeg2) .
FILTER (?bpsStartKilometrering1 = ?bpsStartKilometrering2) .
}
So, the red way gives the right results.
The result where there is only one ?bpsWeg, one ?bpsMengselType en one
?bpsStartKilometring without filter gives many unwanted results.
I thought it would be equivalent. Guess not….(maybe related to optional
attributes?)
Gr Michel
Dr. ir. H.M. (Michel) Bohms
Scientist Specialist
Structural Reliability
T +31 (0)88 866 31 07
M +31 (0)63 038 12 20
E [email protected]<mailto:[email protected]>
Location<http://www.tno.nl/locations/DTS>
[cid:[email protected]]<http://www.tno.nl/>
This message may contain information that is not intended for you. If you are
not the addressee or if this message was sent to you by mistake, you are
requested to inform the sender and delete the message. TNO accepts no liability
for the content of this e-mail, for the manner in which you use it and for
damage of any kind resulting from the risks inherent to the electronic
transmission of messages.
From: Bohms, H.M. (Michel)
Sent: Thursday 25 November 2021 7:31 PM
To: '[email protected]' <[email protected]>
Subject: RE: [topbraid-users] sparql question
Yes it was ☹
Still a lot of (now changed) results that I have to check….
Can I derive that it should work in the end using this approach (involving a
common object variable)?
Ie I do not need to use multiple variables and then FILTER them out based on
equalness?
Thx Michel
Dr. ir. H.M. (Michel) Bohms
Scientist Specialist
Structural Reliability
T +31 (0)88 866 31 07
M +31 (0)63 038 12 20
E [email protected]<mailto:[email protected]>
Location<http://www.tno.nl/locations/DTS>
[cid:[email protected]]<http://www.tno.nl/>
This message may contain information that is not intended for you. If you are
not the addressee or if this message was sent to you by mistake, you are
requested to inform the sender and delete the message. TNO accepts no liability
for the content of this e-mail, for the manner in which you use it and for
damage of any kind resulting from the risks inherent to the electronic
transmission of messages.
From: [email protected]<mailto:[email protected]>
<[email protected]<mailto:[email protected]>> On
Behalf Of Holger Knublauch
Sent: Thursday 25 November 2021 1:53 AM
To: [email protected]<mailto:[email protected]>
Subject: Re: [topbraid-users] sparql question
Is this a typo ?bpsStartkilometrering vs ?bpsStartKilometrering (upper-case K) ?
Holger
On 2021-11-25 6:56 am, 'Bohms, H.M. (Michel)' via TopBraid Suite Users wrote:
When I want to select attributes from different classes (monster & meting) that
share the value of another attribute (here ‘bpsStartKilometrering’), I now use
the red below in annex 1.
In the results I however get lines where ?meting sa:bpsStartKilometrering
?bpsStartKilometrering . is not satisfied.
The example instance has startKilomtrering 3100 and the year is 2020 and
sumofrafeling has some values..
But the original measure do not have year/sum for 3100!
So I guess I have to do differently? Like having 2 variables:
bpsStartKilometrering1 and bpsStartKilometrering2 (one for Monster and one for
Meting) and then somehow:
bpsStartKilometrering1=bpsStartKilometrering2?
It seems now the result lines become (many) joins of subquestion results per
class that are not subsetted by using the same variable…
Annex 1 sparql select code
SELECT ?spec ?bpsWeg ?bpsStartkilometrering ?eisvoormengseltype ?minhol ?maxhol
?eiszeef2 ?eiszeef0dot063 ?minbind ?monster ?locatie ?monsterLaag ?laag
?bitumenSoort ?verdichtingsgraad ?holleruimtePercentage ?bindmiddelPercentage
?doorZeef2millimPercentage ?doorZeef63micromPercentage ?jaar ?somVanRafeling
{
?spec rdf:type sa:OntwerpSpecificatie .
?spec sa:bpsWeg ?bpsWeg .
?spec sa:mengselVoldoetAanDeEisenVoor ?eisvoormengseltype .
?spec sa:minimumPercentageHolleRuimte ?minhol .
?spec sa:maximumPercentageHolleRuimte ?maxhol .
?spec sa:algemeneEisPercentageDoorZeef2mm ?eiszeef2 .
?spec sa:algemeneEisPercentageDoorZeef0dot063mm ?eiszeef0dot063 .
?spec sa:minimalePercentageBindmiddel ?minbind .
?monster rdf:type sa:Monster .
?monster sa:bpsWeg ?bpsWeg .
OPTIONAL { ?monster sa:bpsStartKilometrering ?bpsStartkilometrering } .
?monster sa:locatie ?locatie .
?monster nen2660:hasPart ?monsterLaag .
?monsterLaag rdf:type sa:MonsterLaag .
?monsterLaag sa:mengselType "SMA-NL 11B" .
?monsterLaag sa:laag ?laag .
?monsterLaag sa:bitumenSoort ?bitumenSoort .
OPTIONAL { ?monsterLaag sa:verdichtingsgraad ?verdichtingsgraad } .
OPTIONAL { ?monsterLaag sa:holleruimtePercentage ?holleruimtePercentage } .
OPTIONAL { ?monsterLaag sa:bindmiddelPercentage ?bindmiddelPercentage } .
OPTIONAL { ?monsterLaag sa:doorZeef2millimPercentage
?doorZeef2millimPercentage } .
OPTIONAL { ?monsterLaag sa:doorZeef63micromPercentage
?doorZeef63micromPercentage } .
?meting rdf:type sa:MonitoringMeting .
OPTIONAL { ?meting sa:surfaceOmschrijving "SMA-NL 11B" } .
?meting sa:jaar ?jaar .
?meting sa:bpsWeg ?bpsWeg .
?meting sa:bpsStartKilometrering ?bpsStartKilometrering .
OPTIONAL { ?meting sa:somVanRafeling ?somVanRafeling } .
}
Annex 2 unwanted result (one of many)
{
"spec": {
"uri": https://w3id.org/sa/def#_505007,
"label": "_505007"
},
"bpsWeg": {
"lex": "N317"
},
"bpsStartkilometrering": {
"lex": "3100",
"dt": "integer"
},
"eisvoormengseltype": {
"lex": "Sma - NL 11 B 40/60"
},
"minhol": {
"lex": "4.50",
"dt": "double"
},
"maxhol": {
"lex": "8.00",
"dt": "double"
},
"eiszeef2": {
"lex": "28.00",
"dt": "double"
},
"eiszeef0dot063": {
"lex": "7.70",
"dt": "double"
},
"minbind": {
"lex": "6.4",
"dt": "double"
},
"monster": {
"uri": https://w3id.org/sa/def#_12A,
"label": "_12A"
},
"locatie": {
"lex": "km 3.1 6.00m uit LK"
},
"monsterLaag": {
"uri": https://w3id.org/sa/def#_12A1,
"label": "_12A1"
},
"laag": {
"lex": "1",
"dt": "integer"
},
"bitumenSoort": {
"lex": "70/100"
},
"verdichtingsgraad": null,
"holleruimtePercentage": {
"lex": "4.00",
"dt": "double"
},
"bindmiddelPercentage": {
"lex": "6.50",
"dt": "double"
},
"doorZeef2millimPercentage": {
"lex": "26.40",
"dt": "double"
},
"doorZeef63micromPercentage": {
"lex": "8.50",
"dt": "double"
},
"jaar": {
"lex": "2020",
"dt": "integer"
},
"somVanRafeling": {
"lex": "4",
"dt": "integer"
}
},
Dr. ir. H.M. (Michel) Bohms
Scientist Specialist
Structural Reliability
T +31 (0)88 866 31 07
M +31 (0)63 038 12 20
E [email protected]<mailto:[email protected]>
Location<http://www.tno.nl/locations/DTS>
[cid:[email protected]]<http://www.tno.nl/>
This message may contain information that is not intended for you. If you are
not the addressee or if this message was sent to you by mistake, you are
requested to inform the sender and delete the message. TNO accepts no liability
for the content of this e-mail, for the manner in which you use it and for
damage of any kind resulting from the risks inherent to the electronic
transmission of messages.
--
You received this message because you are subscribed to the Google Groups
"TopBraid Suite Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to
[email protected]<mailto:[email protected]>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/topbraid-users/d10e05d774c245898d0d87645b27d977%40tno.nl<https://groups.google.com/d/msgid/topbraid-users/d10e05d774c245898d0d87645b27d977%40tno.nl?utm_medium=email&utm_source=footer>.
--
You received this message because you are subscribed to the Google Groups
"TopBraid Suite Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to
[email protected]<mailto:[email protected]>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/topbraid-users/bb3e5ceb-0f66-6b4e-dfb3-11c64c3df869%40topquadrant.com<https://groups.google.com/d/msgid/topbraid-users/bb3e5ceb-0f66-6b4e-dfb3-11c64c3df869%40topquadrant.com?utm_medium=email&utm_source=footer>.
--
You received this message because you are subscribed to the Google Groups
"TopBraid Suite Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/topbraid-users/a888a69ee59b401581f2bfafbb6ae770%40tno.nl.