Результат столбца неожиданно ничего не возвращает - PullRequest
1 голос
/ 26 марта 2019

Имейте запрос SPARQL, который ничего не возвращает для Airport_Name, когда я считаю, что это должно.

 PREFIX nas: <https://data.nasa.gov/ontologies/atmonto/NAS#>
 PREFIX gen: <https://data.nasa.gov/ontologies/atmonto/general#>


SELECT *
WHERE{
{
{SELECT ?Airport_Name{
    ?Airport rdf:type nas:Airport ;
    nas:airportName ?Airport_Name .
    }
}

}UNION{
    ?Location rdf:type gen:PointLocation;
    gen:longitude ?X ;
    gen:latitude ?Y .

}


?Location rdf:type gen:PointLocation;
gen:longitude ?X ;
gen:latitude ?Y .
FILTER (?X > -80 && ?X < -64 && ?Y > 18 && ?Y < 32)

}

Ожидаемый результат должен возвращать Location, X, Y и Airport_Name

Example result

Когда я пытаюсь вернуть Airport_Name внизу, столбцы Location затем отображаются пустыми, поэтому я не уверен, что было сделаноошибочно.Если бы кто-нибудь мог указать мне правильное направление, это было бы очень ценно.

1 Ответ

1 голос
/ 26 марта 2019

Ваш запрос имеет несколько проблем, правильный запрос будет выглядеть примерно так:

Запрос

SELECT  *
WHERE
  { ?airport  rdf:type/rdfs:subClassOf*  nas:Airport ;
              nas:airportName      ?Airport_Name ;
              nas:airportLocation  ?location .
    ?location  gen:longitude       ?X ;
               gen:latitude        ?Y
    FILTER ( ?X > "-80"^^xsd:float && ?X < "-64"^^xsd:float && ?Y > "18"^^xsd:float && ?Y < "32"^^xsd:float )
  }

Результат (пример с LIMIT 10)

--------------------------------------------------------------------------------------------------------------------------
| airport         | Airport_Name                | location            | X                       | Y                      |
==========================================================================================================================
| nas:MYEMairport | "Governors Harbour"         | nas:MYEMcoordinates | "-76.330178"^^xsd:float | "25.283586"^^xsd:float |
| nas:MDPCairport | "Punta Cana Intl"           | nas:MDPCcoordinates | "-68.366186"^^xsd:float | "18.570781"^^xsd:float |
| nas:MUGTairport | "Mariana Grajales"          | nas:MUGTcoordinates | "-75.158333"^^xsd:float | "20.085278"^^xsd:float |
| nas:MDSTairport | "Cibao Intl"                | nas:MDSTcoordinates | "-70.604689"^^xsd:float | "19.406092"^^xsd:float |
| nas:MYLSairport | "Stella Maris"              | nas:MYLScoordinates | "-75.268778"^^xsd:float | "23.583047"^^xsd:float |
| nas:MBNCairport | "North Caicos"              | nas:MBNCcoordinates | "-71.939658"^^xsd:float | "21.917486"^^xsd:float |
| nas:MUMOairport | "Orestes Acosta"            | nas:MUMOcoordinates | "-74.922222"^^xsd:float | "20.653889"^^xsd:float |
| nas:MYRPairport | "New Port Nelson"           | nas:MYRPcoordinates | "-74.836186"^^xsd:float | "23.684378"^^xsd:float |
| nas:MYEGairport | "George Town"               | nas:MYEGcoordinates | "-75.781670"^^xsd:float | "23.466667"^^xsd:float |
| nas:MUBYairport | "Carlos Manuel De Cespedes" | nas:MUBYcoordinates | "-76.621389"^^xsd:float | "20.396389"^^xsd:float |
--------------------------------------------------------------------------------------------------------------------------

Обратите внимание, что запрос использует путь свойства rdf:type/rdfs:subClassOf*, который работает, только если вы также загрузили онтологию (NAS.ttl).Путь свойства необходим, потому что данные экземпляра (airportInst.ttl) используют подклассы nas:Airport, такие как nas:InternationAirport или nas:CanadianAirport.

...