Geosparkl с протеже и парламентом

Я новичок в GeoSPARQL. Я скачал онтологию, импортировал ее в Protégé и создал классы и отдельные подписки Приложение B в руководстве пользователя GeoSPARQL ( PDF).

  1. При использовании парламента для запроса WKT значения дублируются, чего не происходит в Protégé:

    SELECT ?geom 
    WHERE {
        ?x my:exactGeometry ?xGeom .
        ?xGeom geo:asWKT ?geom .
    }
    

    Результат показывает каждое значение 2 раза.

  2. Я не получаю никаких результатов при выполнении функций geof:sf.


person loosha    schedule 02.09.2013    source источник
comment
Вы имеете в виду, что вы не получаете результатов для geof:sf функций при запросе с помощью Parliament или Protégé?   -  person Joshua Taylor    schedule 03.09.2013


Ответы (1)


Я не использовал GeoSPARQL, поэтому не могу многое из этого решить, но, во-первых, такой запрос, как

SELECT ?geom WHERE {
    ?x my:exactGeometry ?xGeom .
    ?xGeom geo:asWKT ?geom .
}

по умолчанию будет возвращать одно значение для ?geom для каждого способа сопоставления шаблона графика. Например, если граф содержит

_:x1 my:exactGeometry _:xGeom1 .
_:xGeom1 geo:asWKT _:geom .
_:x2 my:exactGeometry _:xGeom2 .
_:xGeom2 geo:asWKT _:geom .

так что есть два совпадающих шаблона (один с ?x = _:x1 и ?xGeom = _:xGeom1, а другой с ?x = _:x2 и ?xGeom = _:xGeom2), вы увидите _:geom в результатах дважды. Вы можете удалить такие дубликаты, используя distinct в своем запросе:

SELECT DISTINCT ?geom WHERE {
    ?x my:exactGeometry ?xGeom .
    ?xGeom geo:asWKT ?geom .
}

Во-вторых, как я уже упоминал, я не являюсь пользователем GeoSPARQL, но подозреваю, что спецификация просто определяет, что должны делать эти функции расширения. Если вы не загрузили какой-либо код (например, плагин Protégé), я не вижу, где можно было бы обеспечить реализацию этих функций. Расширения SPARQL должны предоставляться реализацией конечной точки SPARQL; они не определены в загружаемых вами онтологиях или данных, которые вы запрашиваете. В статье Википедии о GeoSPARQL есть раздел Реализации, в котором перечислены три реализации, поддерживающие GeoSPARQL. Одним из них является парламент, о котором вы упомянули, но не упомянули, не работают ли функции в Protégé или в парламенте.

person Joshua Taylor    schedule 03.09.2013
comment
Спасибо за вашу помощь @Joshua. Я могу решить обе проблемы, они связаны не со SPARQL или Protege, а с парламентом. это тройное хранилище, поэтому всякий раз, когда я меняю значения в Prtoege и снова загружаю онтологию в парламент, оно добавляет новое значение и сохраняет предыдущие, что касается второй проблемы, Protege не может использовать функцию, предоставляемую GeoSPARQL, поэтому я использовал Парламент. проблема заключалась в том, что ресурс для типа данных, установленный Protege, отличается от ресурса, поддерживаемого парламентом. пришлось менять вручную - person loosha; 04.09.2013
comment
@loosha Я рад, что этот ответ помог вам найти решение. Однако похоже, что фактическое решение несколько отличалось от того, что я упомянул. Вам следует подумать о том, чтобы написать свое фактическое решение в качестве ответа и принять его вместо моего. На StackOverflow вполне приемлемо отвечать на ваши собственные вопросы, и это похоже на тот случай, когда вы, возможно, захотите сделать именно это. - person Joshua Taylor; 04.09.2013