как мы можем создать запрос на основе SPARQL, чтобы увидеть значение некоторого свойства типа данных?

Я создаю этот запрос:

PREFIX VB: <http://VBnet#>
SELECT  ?x ?y
WHERE 
{
  ?x VB:HasName ?y
}     

HasName — это свойство одного типа данных. Когда я запускаю этот запрос в Protege, система показывает мне только тему без какого-либо значения для свойства типа данных. mwans ?y пуст. Также, когда я запускаю систему jena, покажите мне только: (String)

Как я могу увидеть значение свойства типа данных значение ?y?


person saman    schedule 20.10.2010    source источник
comment
Можете ли вы отредактировать свой вопрос и показать данные, которые вы запрашиваете (желательно в формате Turtle/NTriples), так как трудно сказать, почему ваш запрос не работает, не глядя на данные. Сам запрос кажется действительным, но могут быть некоторые проблемы с вашими данными.   -  person RobV    schedule 20.10.2010


Ответы (2)


Это зависит от данных, содержащихся в вашем документе RDF. Если значения являются типизированными литералами, вы можете проанализировать набор результатов SPARQL и запросить тип данных значений, ограниченных переменной ?y. Если значения отображаются несовместимым с RDF способом (например, html), тип данных может не отображаться. В противном случае вы увидите что-то вроде этого:

<sparql xmlns="http://www.w3.org/2005/sparql-results#"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   xsi:schemaLocation="http://www.w3.org/2001/sw/DataAccess/rf1/result2.xsd">
<head>
<variable name="y"/>
</head>
<results distinct="false" ordered="true">
 <result>
   <binding name="y"><literal xml:lang="en">John</literal></binding> //literals with language
 </result>
 <result>
   <binding name="y"><literal datatype="http://www.w3.org/2001/XMLSchema#integer">30</literal></binding> //typed literals
 </result>
...

Для извлечения типа данных вам необходимо запросить у Jena API тыс.

person Community    schedule 16.03.2011

Предполагая отсутствие языковых тегов:

SELECT  ?x ?y (DATATYPE(?y) AS ?dt)

Обратите внимание, что если ?y является простым литералом, то DATATYPE возвращает xsd:string, но ?y не имеет типа данных ^^ (до RDF 1.1).

person AndyS    schedule 07.08.2012