我们如何创建基于 SPARQL 的查询来查看某些数据类型属性的值?

发布于 2024-09-28 09:14:07 字数 275 浏览 6 评论 0原文

我创建了这个查询:

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

HasName 是一种数据类型属性。当我在 Protege 中运行此查询时,系统仅显示主题,而没有任何数据类型属性值。 mwans ?y 为空。另外,当我在 jena 系统中运行时,仅显示:(字符串)

如何查看数据类型属性的值 ?y 的值?

I create this query:

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

HasName is one datatype property. When I run this query in Protege, system show me just the subject without any value for datatype property. mwans ?y is empty. Also when I run in jena system show me just:(String)

How can I see the value of datatype property the value of ?y?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

恰似旧人归 2024-10-05 09:14:07

这取决于 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。

It depends on the data contained in your RDF document. If the values are typed literals then you can parse the SPARQL result set and ask for the datatype of the values bounded to ?y variable. If the values are rendered in a non RDF compliant way (e.g. html) the datatype may not appear. Otherwise you'll see something like this:

<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>
...

For extracting the datatype you need to query the Jena API thou.

时光沙漏 2024-10-05 09:14:07

假设没有语言标签:

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

请注意,如果 ?y 是纯文字,则 DATATYPE 返回 xsd:string 但 ?y 没有 ^^ 数据类型(直到 RDF 1.1)。

Assuming no language tags:

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

Note that if ?y is a plain literal then DATATYPE return xsd:string but ?y has no ^^ datatype (until RDF 1.1).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文