Just to clarify, each of the sub-SELECT queries returns the number of
nodes for the features Hilltop, Riverbank and Swale, right? And if you
run such a SELECT query separately, the number is correct?
> Dear Lorenz,
>
> Apologies for the belated reply, for I was travelling, arrived today.
>
> Let me post the whole question again below:
>
> I have a question related to SPARQL query which is a bit complex one. I would 
> appreciate if someone could help me out. I have 15 Sensing Nodes with their 
> corresponding Point(longitude latitude) geometries given below:
>
> Table 1: Showing results from 1 to 15 of 15. Query took 0.127 s.
>
> node                                                     gwkt
>
> enviot:A0_SoilSensingNode    "POINT(-3.783065 
> 53.202158)"^^<http://www.opengis.net/ont/geosparql#wktLiteral>
> enviot:A1_SoilSensingNode     "POINT(-3.782898 
> 53.201828)"^^<http://www.opengis.net/ont/geosparql#wktLiteral>
> enviot:A2_SoilSensingNode    "POINT(-3.783092 
> 53.202007)"^^<http://www.opengis.net/ont/geosparql#wktLiteral>
> enviot:A3_SoilSensingNode     "POINT(-3.781964 
> 53.201765)"^^<http://www.opengis.net/ont/geosparql#wktLiteral>
> enviot:A5_SoilSensingNode      "POINT(-3.783055 
> 53.202777)"^^<http://www.opengis.net/ont/geosparql#wktLiteral>
> enviot:A6_SoilSensingNode      "POINT(-3.782222 
> 53.202777)"^^<http://www.opengis.net/ont/geosparql#wktLiteral>
> enviot:A7_SoilSensingNode     "POINT(-3.781111 
> 53.202777)"^^<http://www.opengis.net/ont/geosparql#wktLiteral>
> enviot:A8_SoilSensingNode      "POINT(-3.780833 
> 53.203055)"^^<http://www.opengis.net/ont/geosparql#wktLiteral>
> enviot:A9_SoilSensingNode      "POINT(-3.780833 
> 53.202222)"^^<http://www.opengis.net/ont/geosparql#wktLiteral>
> enviot:AA_SoilSensingNode     "POINT(-3.783063 
> 53.202309)"^^<http://www.opengis.net/ont/geosparql#wktLiteral>
> enviot:AB_SoilSensingNode     "POINT(-3.782638 
> 53.202189)"^^<http://www.opengis.net/ont/geosparql#wktLiteral>
> enviot:AC_SoilSensingNode     "POINT(-3.783003 
> 53.202191)"^^<http://www.opengis.net/ont/geosparql#wktLiteral>
> enviot:AD_SoilSensingNode     "POINT(-3.782518 
> 53.201841)"^^<http://www.opengis.net/ont/geosparql#wktLiteral>
> enviot:AE_SoilSensingNode      "POINT(-3.782024 
> 53.202193)"^^<http://www.opengis.net/ont/geosparql#wktLiteral>
> enviot:AF_SoilSensingNode      "POINT(-3.782877 
> 53.201788)"^^<http://www.opengis.net/ont/geosparql#wktLiteral>
>
> These sensing nodes are deployed in a field having three features named 
> Hilltop (it has 3 nodes), Swale (it has 7 nodes) and Riverbank (it has 5 
> nodes). Each of these features has their own geometries like 'Line String', 
> 'Polygon' and 'Line String' respectively along with their geometric 
> coordinates given below:
>
> Table 2: Showing results from 1 to 3 of 3. Query took 0.081 s.
>
> feature                        fgeo                                           
>             fwkt
> enviot:A_Hilltop         enviot:A_HillTopLineGeometry    "LINESTRING 
> (-3.780833  53.203055, -3.781111  53.202777,                                  
>                                                       
>                                                                               
>             -3.780833  53.202222)
>                                                                               
>            "^^<http://www.opengis.net/ont/geosparql#wktLiteral>
>
>
> enviot:A_Riverbank    enviot:A_RiverbankLineGeometry  "LINESTRING (-3.783055  
> 53.202777, -3.783063  53.202309,  
>                                                                               
>             -3.783065  53.202158, -3.783092  53.202007,
>                                                                               
>              -3.782898  53.201828)               
>                                                                               
>                "^^<http://www.opengis.net/ont/geosparql#wktLiteral>
>
>
> enviot:A_Swale           enviot:A_SwalePolygonGeometry   "POLYGON ((-3.782222 
>  53.202777, -3.782024  53.202193, 
>                                                                               
>               -3.782638  53.202189, -3.783003  53.202191, -3.781964           
>        
>                                                                               
>                 53.201765, -3.782518  53.201841, -3.782877  53.201788,     
>                                                                               
>                 -3.782222  53.202777))   
>                                                                               
>                "^^<http://www.opengis.net/ont/geosparql#wktLiteral>
>
>
> NOTE: In the above table (Table 2), the column 'fwkt' has got exactly the 
> same geometry values (Point(long lat) which are the geometry values of 
> individual soil sensing nodes given in column named 'gwkt' in Table 1.
>
> Now my question is:
>
> Which geographic feature contains the maximum number of soil sensing nodes?
>
> The query/answer should retrieve envoi:A_Swale which has 7 soil sensing 
> nodes, which is the maximum.
>
> My current query is (indeed not complete and correct) given below:
>
> PREFIX geosparql: <http://www.opengis.net/ont/geosparql#>
> PREFIX sf: <http://www.opengis.net/ont/sf#>
> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
> PREFIX enviot: 
> <http://www.environmental-iot.com/enviot_ontology/IotSemanticModel#>
> PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
> PREFIX DUL: <http://www.loa-cnr.it/ontologies/DUL.owl#>
> PREFIX ssn: <http://purl.oclc.org/NET/ssnx/ssn#>
> PREFIX geof: <http://www.opengis.net/def/function/geosparql/>
>
> SELECT (MAX(?nodecount) AS ?maxnodecount)     WHERE {
>
>       {
>           SELECT (COUNT(?node) AS ?nodecount) WHERE {
>           ?node               rdf:type           enviot:SoilSensingNode;
>                               geosparql:hasGeometry   ?geo .
>               ?geo    geosparql:asWKT ?gwkt.
>     
>       FILTER (geof:sfTouches(?gwkt, "POLYGON((-3.782222 53.202777, -3.782024 
> 53.202193, -3.782638  53.202189, -3.783003  53.202191, -3.781964 53.201765, 
> -3.782518 53.201841, -3.782877 53.201788, -3.782222 
> 53.202777))"^^geosparql:wktLiteral))
>         }
>      }                
>               
>       {
>            SELECT (COUNT(?node) AS ?nodecount) WHERE {
>                ?node  rdf:type        enviot:SoilSensingNode;
>                               geosparql:hasGeometry   ?geo .
>               ?geo    geosparql:asWKT ?gwkt.
>     
>       FILTER (geof:sfIntersects(?gwkt, "LINESTRING(-3.783055 53.202777, 
> -3.783063 53.202309, -3.783065 53.202158, -3.783092 53.202007, -3.782898 
> 53.201828)"^^geosparql:wktLiteral))
>         }
>      }                
>     {
>          SELECT (COUNT(?node) AS ?nodecount) WHERE {
>            ?node              rdf:type           enviot:SoilSensingNode;
>                               geosparql:hasGeometry   ?geo .
>               ?geo    geosparql:asWKT ?gwkt.
>     
>       FILTER (geof:sfIntersects(?gwkt, "LINESTRING(-3.780833 53.203055, 
> -3.781111 53.202777, -3.780833 53.202222)"^^geosparql:wktLiteral))
>        }
>      }                
>    
> }
>
> If you make two of the sub-queries comments then it retrieves the correct 
> number of Soil Sending Nodes for the one which is filtered but it does not 
> retrieve the max of all these three features (i.e. Hilltop, Swale and 
> Riverbank) having soil sensing nodes which should be 7 in this case.
>
> If you need my ontology which contains the data I can send it to you but a) 
> kindly provide me your personal email address and b) it is highly 
> confidential, so, kindly do not disclose/share it to/with other people.
>
> Many thanks in advance.
>
> Best,
>
> Izhar
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> ________________________________________
> From: Lorenz B. [buehm...@informatik.uni-leipzig.de]
> Sent: 10 March 2017 07:53
> To: users@jena.apache.org
> Subject: Re: Complex SPARQL Query
>
> It's almost unreadable in the current formatting...
>
> At first, it would be good to see
>
> 1. the current SPARQL query
> 2. minimal sample data
> 3. the data that you expect to be returned
>
> I guess, the pseudo query is (please correct me if I'm wrong)
>
> "Which geographic feature contains the maximum number of soil sensing
> nodes?"
>
> And you expect as result
>
> envoi:A_Swale
>
>
> With the current formatting issues, it's pretty hard, because I don't
> know the structure of the data. Once you provide this + the current
> query, it's more or less using the COUNT aggregate function and probably
> GROUP BY
>
>> Hi all,
>>
>>
>> I have a question related to SPARQL query which is a bit complex one. I 
>> would appreciate if someone could help me out. I have developed an ontology 
>> in Protege in which I have imported the GeoSPARQL Ontology. I have 15 
>> Sensing Nodes with their corresponding Point(longitude latitude) geometries 
>> given below:
>>
>>
>> Table 1: Showing results from 1 to 15 of 15. Query took 0.127 s.
>>
>>
>>
>>
>>
>>
>>
>>
>> node
>>
>>
>>
>> geo
>>
>>
>>
>> gwkt
>>
>>
>>
>> 1
>>
>>
>> enviot:A0_SoilSensingNode<http://localhost:7200/resource/enviot/A0_SoilSensingNode>
>>
>>
>> enviot:A0_Geometry<http://localhost:7200/resource/enviot/A0_Geometry>
>>
>>
>> "POINT(-3.783065 
>> 53.202158)"^^<http://www.opengis.net/ont/geosparql#wktLiteral>
>>
>>
>> 2
>>
>>
>> enviot:A1_SoilSensingNode<http://localhost:7200/resource/enviot/A1_SoilSensingNode>
>>
>>
>> enviot:A1_Geometry<http://localhost:7200/resource/enviot/A1_Geometry>
>>
>>
>> "POINT(-3.782898 
>> 53.201828)"^^<http://www.opengis.net/ont/geosparql#wktLiteral>
>>
>>
>> 3
>>
>>
>> enviot:A2_SoilSensingNode<http://localhost:7200/resource/enviot/A2_SoilSensingNode>
>>
>>
>> enviot:A2_Geometry<http://localhost:7200/resource/enviot/A2_Geometry>
>>
>>
>> "POINT(-3.783092 
>> 53.202007)"^^<http://www.opengis.net/ont/geosparql#wktLiteral>
>>
>>
>> 4
>>
>>
>> enviot:A3_SoilSensingNode<http://localhost:7200/resource/enviot/A3_SoilSensingNode>
>>
>>
>> enviot:A3_Geometry<http://localhost:7200/resource/enviot/A3_Geometry>
>>
>>
>> "POINT(-3.781964 
>> 53.201765)"^^<http://www.opengis.net/ont/geosparql#wktLiteral>
>>
>>
>> 5
>>
>>
>> enviot:A5_SoilSensingNode<http://localhost:7200/resource/enviot/A5_SoilSensingNode>
>>
>>
>> enviot:A5_Geometry<http://localhost:7200/resource/enviot/A5_Geometry>
>>
>>
>> "POINT(-3.783055 
>> 53.202777)"^^<http://www.opengis.net/ont/geosparql#wktLiteral>
>>
>>
>> 6
>>
>>
>> enviot:A6_SoilSensingNode<http://localhost:7200/resource/enviot/A6_SoilSensingNode>
>>
>>
>> enviot:A6_Geometry<http://localhost:7200/resource/enviot/A6_Geometry>
>>
>>
>> "POINT(-3.782222 
>> 53.202777)"^^<http://www.opengis.net/ont/geosparql#wktLiteral>
>>
>>
>> 7
>>
>>
>> enviot:A7_SoilSensingNode<http://localhost:7200/resource/enviot/A7_SoilSensingNode>
>>
>>
>> enviot:A7_Geometry<http://localhost:7200/resource/enviot/A7_Geometry>
>>
>>
>> "POINT(-3.781111 
>> 53.202777)"^^<http://www.opengis.net/ont/geosparql#wktLiteral>
>>
>>
>> 8
>>
>>
>> enviot:A8_SoilSensingNode<http://localhost:7200/resource/enviot/A8_SoilSensingNode>
>>
>>
>> enviot:A8_Geometry<http://localhost:7200/resource/enviot/A8_Geometry>
>>
>>
>> "POINT(-3.780833 
>> 53.203055)"^^<http://www.opengis.net/ont/geosparql#wktLiteral>
>>
>>
>> 9
>>
>>
>> enviot:A9_SoilSensingNode<http://localhost:7200/resource/enviot/A9_SoilSensingNode>
>>
>>
>> enviot:A9_Geometry<http://localhost:7200/resource/enviot/A9_Geometry>
>>
>>
>> "POINT(-3.780833 
>> 53.202222)"^^<http://www.opengis.net/ont/geosparql#wktLiteral>
>>
>>
>> 10
>>
>>
>> enviot:AA_SoilSensingNode<http://localhost:7200/resource/enviot/AA_SoilSensingNode>
>>
>>
>> enviot:AA_Geometry<http://localhost:7200/resource/enviot/AA_Geometry>
>>
>>
>> "POINT(-3.783063 
>> 53.202309)"^^<http://www.opengis.net/ont/geosparql#wktLiteral>
>>
>>
>> 11
>>
>>
>> enviot:AB_SoilSensingNode<http://localhost:7200/resource/enviot/AB_SoilSensingNode>
>>
>>
>> enviot:AB_Geometry<http://localhost:7200/resource/enviot/AB_Geometry>
>>
>>
>> "POINT(-3.782638 
>> 53.202189)"^^<http://www.opengis.net/ont/geosparql#wktLiteral>
>>
>>
>> 12
>>
>>
>> enviot:AC_SoilSensingNode<http://localhost:7200/resource/enviot/AC_SoilSensingNode>
>>
>>
>> enviot:AC_Geometry<http://localhost:7200/resource/enviot/AC_Geometry>
>>
>>
>> "POINT(-3.783003 
>> 53.202191)"^^<http://www.opengis.net/ont/geosparql#wktLiteral>
>>
>>
>> 13
>>
>>
>> enviot:AD_SoilSensingNode<http://localhost:7200/resource/enviot/AD_SoilSensingNode>
>>
>>
>> enviot:AD_Geometry<http://localhost:7200/resource/enviot/AD_Geometry>
>>
>>
>> "POINT(-3.782518 
>> 53.201841)"^^<http://www.opengis.net/ont/geosparql#wktLiteral>
>>
>>
>> 14
>>
>>
>> enviot:AE_SoilSensingNode<http://localhost:7200/resource/enviot/AE_SoilSensingNode>
>>
>>
>> enviot:AE_Geometry<http://localhost:7200/resource/enviot/AE_Geometry>
>>
>>
>> "POINT(-3.782024 
>> 53.202193)"^^<http://www.opengis.net/ont/geosparql#wktLiteral>
>>
>>
>> 15
>>
>>
>> enviot:AF_SoilSensingNode<http://localhost:7200/resource/enviot/AF_SoilSensingNode>
>>
>>
>> enviot:AF_Geometry<http://localhost:7200/resource/enviot/AF_Geometry>
>>
>>
>> "POINT(-3.782877 
>> 53.201788)"^^<http://www.opengis.net/ont/geosparql#wktLiteral>
>>
>>
>>
>>
>> These sensing nodes are deployed in a field which is modelled in the 
>> GeoSPARQL ontologies as 'Field' which is the subClass of Feature. Further, 
>> 'Field' has got three sub-features which are modelled as sub-classes named 
>> Hilltop, Swale and Riverbank having their geometries like 'Line String', 
>> 'Polygon' and 'Line String' respectively along with their geometric 
>> coordinates given below:
>>
>>
>>
>> Table 2: Showing results from 1 to 3 of 3. Query took 0.081 s.
>>
>>
>>
>>
>>
>>
>>
>>
>> feature
>>
>>
>>
>> fgeo
>>
>>
>>
>> fwkt
>>
>>
>>
>> 1
>>
>>
>> enviot:A_Hilltop<http://localhost:7200/resource/enviot/A_Hilltop>
>>
>>
>> enviot:A_HillTopLineGeometry<http://localhost:7200/resource/enviot/A_HillTopLineGeometry>
>>
>>
>> "LINESTRING(-3.780833 53.203055, -3.781111 53.202777, -3.780833 
>> 53.202222)"^^<http://www.opengis.net/ont/geosparql#wktLiteral>
>>
>>
>> 2
>>
>>
>> enviot:A_Riverbank<http://localhost:7200/resource/enviot/A_Riverbank>
>>
>>
>> enviot:A_RiverbankLineGeometry<http://localhost:7200/resource/enviot/A_RiverbankLineGeometry>
>>
>>
>> "LINESTRING(-3.783055 53.202777, -3.783063 53.202309, -3.783065 53.202158, 
>> -3.783092 53.202007, -3.782898 
>> 53.201828)"^^<http://www.opengis.net/ont/geosparql#wktLiteral>
>>
>>
>> 3
>>
>>
>> enviot:A_Swale<http://localhost:7200/resource/enviot/A_Swale>
>>
>>
>> enviot:A_SwalePolygonGeometry<http://localhost:7200/resource/enviot/A_SwalePolygonGeometry>
>>
>>
>> "POLYGON((-3.782222 53.202777, -3.782024 53.202193, -3.782638  53.202189, 
>> -3.783003  53.202191, -3.781964 53.201765, -3.782518 53.201841, -3.782877 
>> 53.201788, -3.782222 
>> 53.202777))"^^<http://www.opengis.net/ont/geosparql#wktLiteral>
>>
>> I
>>
>>
>>
>> NOTE: In the above table (Table 2), the column 'fwkt' has got exactly the 
>> same geometry values (Point(long lat) which are the geometry values of 
>> individual soil sensing nodes given in column named 'gwkt' in Table 1.
>>
>>
>> Now my question is:
>>
>>
>> Which geographic feature contains the maximum number of soil sensing nodes?
>>
>> The query/answer should retrieve envoi:A_Swale which has 7 soil sensing 
>> nodes.
>>
>>
>> I would be really grateful if someone could give me any idea/solution how to 
>> retrieve this?
>>
>>
>> If you require any further information please let me know.
>>
>>
>> Many thanks in advance.
>>
>>
>> Best regards,
>>
>>
>> Izhar
>>
>>
> --
> Lorenz Bühmann
> AKSW group, University of Leipzig
> Group: http://aksw.org - semantic web research center
>
>
>
-- 
Lorenz Bühmann
AKSW group, University of Leipzig
Group: http://aksw.org - semantic web research center

Reply via email to