2

このクエリを作成します。

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

HasName は 1 つのデータ型プロパティです。Protege でこのクエリを実行すると、システムはデータ型プロパティの値なしで件名だけを表示します。mwans ?y は空です。また、jenaシステムで実行すると、次のように表示されます:(文字列)

datatype プロパティの値の値を確認するにはどうすればよい?yですか?

4

2 に答える 2

1

これは、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 を照会する必要があります。

于 2011-03-16T11:08:51.607 に答える
0

言語タグがない場合:

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

?y が単純なリテラルの場合、DATATYPE は戻りxsd:stringますが、?y には ^^ データ型がないことに注意してください (RDF 1.1 まで)。

于 2012-08-07T20:31:18.873 に答える