Как мы можем создать запрос на основе SPARQL, чтобы увидеть значение некоторого свойства типа данных? - PullRequest
2 голосов
/ 20 октября 2010

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

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

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

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

Ответы [ 2 ]

1 голос
/ 16 марта 2011

Это зависит от данных, содержащихся в вашем документе 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 thou.

0 голосов
/ 08 августа 2012

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

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

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

...