假设我有以下Turtle声明:
@prefix : <http://example.org#> .
:ls :list (:a :b :c)
有没有办法获得集合中元素的位置?
例如,使用此查询:
PREFIX :     <http://example.org#>
PREFIX rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
SELECT ?elem WHERE {
 ?x :list ?ls .
 ?ls rdf:rest*/rdf:first ?elem .
}
我明白了:
--------
| elem |
========
| :a   |
| :b   |
| :c   |
--------
但我想要一个查询来获取:
--------------
| elem | pos |
==============
| :a   |  0  |
| :b   |  1  |
| :c   |  2  |
--------------
可能吗?
我的工作是关于推荐系统的图书馆书籍.作为输入我需要书籍分类本体.在我的本体论中对图书馆书籍进行了分类.这个分类有14个类别,除了兄弟类作者,书,伊斯本.书籍类中的个人是书的主题(约600个主题),作者类中的个人是名字的作者,也是isbn类.我用protege 4.1设计了这个本体.
我也收集了并且手动将部分归属于类别的书.对象属性是名称"hasSubject"与个别书类相关的类别.示例书"A"具有主题类别"S"和"F"......作为结果,我想获得属于图书类别的矩阵.这是如果书属于一个类别然后得到1而另一个取值为0的方式.像这样:
     cat1   cat2   cat3   
book1   1      0      0   
book2   1      0      1   
book3   1      1      0  
在此示例中表示book1属于类别1且不属于类别2和3.如何使用sparql进行保护?