2017-12-02 89 views
0

나는 this 개의 기사에 영감을 불어 넣었으며 geosparql 온톨로지를 사용하여 온톨로지를 만들었습니다. Area와 Park라는 두 개의 클래스가 geosparql의 Feature 클래스의 하위 클래스로 작성되었습니다. 3 영역 인스턴스와 1 Park 인스턴스가 온톨로지에 추가되었습니다. 그런 다음 geometry 인스턴스가 geosparql의 Polygon 클래스의 서브 클래스로 작성되었습니다 (asWKT). 그리고 geometry 인스턴스는 hasGeometry 객체 속성 (The created ontology and instances)을 통해 Park 및 Area 인스턴스와 관련되었습니다.geosparql의 토폴로지 쿼리

토폴로지 쿼리를 만들어 Park 인스턴스 내에있는 Area 인스턴스를 찾으려고했습니다. 그래서, 필자는 4.3의 sparql 질의 플러그인을 사용하여 아래 질의를 실행했다.

PREFIX geosparql : http://www.opengis.net/ont/geosparql# PREFIX SU : http://www.example.org/su#

SELECT X { 는 SU X Y ?? 영역; geosparql : hasGeometry? xgeo. ? y a su : Park; geosparql : hasGeometry? ygeo. ? xgeo geosparql : sfWithin? ygeo. }

결과가 반환되지 않지만 Park 인스턴스 내에 두 개의 Area 인스턴스가 있다는 것을 알고 있습니다. 나는 그 문제를 발견하지 못했습니다. geosparql과 protégé를 사용하여 토폴로지 관계를 쿼리하지 않습니까?

답변

1

sfWithin 엔티티의 "좋은"사용을 가져 오지 않는 것이 문제입니다.

http://www.opengis.net/ont/geosparql#sfWithinhttp://www.opengis.net/def/function/geosparql/sfWithin 사이에 차이가 있습니다.

사실, 나는이 진술과 함께 제자 훈련을 진행하는 방법을 아직 알지 못합니다. 유감입니다.

정말 토폴로지 쿼리를 사용해야하는 경우 GraphDB 대신 GeoSPARQL에 적합한 작동 플러그인을 구현할 수 있습니다.