Rdf 本体中实体的排序

Rdf 本体中实体的排序,rdf,owl,ontology,rdfs,Rdf,Owl,Ontology,Rdfs,我有一个在本体中对一些领域数据建模的系统,通常是三重实体 我一直在寻找一种表达多元化和有序性的方法,但还没有通过谷歌找到任何东西。我的主要用例类似于域中的一个实体可以是一个任务列表(买杂货、做饭、吃饭等等),但总的来说,我觉得有能力“衡量”你的优势可能对所有方面都有用 有没有一种公认的方法可以做到这一点?就去一家四星级商店?中间项目(列表)→ listitem)的边到一个有序性和一个域实体?谓词从谓词到权重 下面是一个例子: 为了表示您在图形中所显示的内容,您通常将其视为一个n元关系。您应该看看

我有一个在本体中对一些领域数据建模的系统,通常是三重实体

我一直在寻找一种表达多元化和有序性的方法,但还没有通过谷歌找到任何东西。我的主要用例类似于域中的一个实体可以是一个任务列表(买杂货、做饭、吃饭等等),但总的来说,我觉得有能力“衡量”你的优势可能对所有方面都有用

有没有一种公认的方法可以做到这一点?就去一家四星级商店?中间项目(列表)→ listitem)的边到一个有序性和一个域实体?谓词从谓词到权重

下面是一个例子:


为了表示您在图形中所显示的内容,您通常将其视为一个n元关系。您应该看看W3C工作说明,但简短的版本是,您有一个三元关系,并且您要表达

hasTask(list,1,socks)
hasTask(list,2,shoes)
hasTask(list,3,leash)
对于其中的每一个,您都有一个资源,通常是一个空白节点,但它也可以是一个URI,并且具有与各种组件相关的属性,可能还有一个类型:

_:rel1 rdf:type :taskItem ;
       :hasList :list ;
       :hasord  1;
       :hasTask :socks .
_:rel2 rdf:type :taskItem ;
       :hasList :list ;
       :hasord  2;
       :hasTask :shoes .
_:rel3 rdf:type :taskItem ;
       :hasList :list ;
       :hasord  3;
       :hasTask :leash .
当然,这里有一些变化。与将列表、编号和任务作为属性值的具体化关系不同,列表可以与每个任务项相关:

:list :hasTaskItem [ rdf:type :taskItem ;
                     :hasord  1;
                     :hasTask :socks ] ,
                   [ rdf:type :taskItem ;
                     :hasord  2;
                     :hasTask :shoes ] ,
                   [ rdf:type :taskItem ;
                     :hasord  3;
                     :hasTask :leash ] .
但基本思想是一样的。或者,您可以使用列表。在纯RDF中,您可以使用RDF列表并保持数字的隐式,如:

:list :hasTasks ( :socks :shoes :leash ) .
那只是简写

:list :hasTasks [ rdf:first :socks ;
                  rdf:rest [ rdf:first :shoes ;
                             rdf:rest [ rdf:first :leash ;
                                        rdf:rest rdf:nil ]]].

在OWL中,不能使用rdf:first和rdf:rest,但可以定义自己的类似属性并实现相同的结构。在我的回答ot中有一个指定list类的例子(有人想要一个list,其所有元素都必须是特定类型)。如果您确实采用这种方法,并且希望恢复列表中每个元素的位置,那么您实际上可以使用RDF上的SPARQL查询来执行此操作,正如我在对的回答中所述。

一个示例可能会引发更多响应。特别是,我不知道你所说的多元化是什么意思;我猜你了解猫头鹰的基数特性,但它们不会满足你的需要——但我猜不出你需要什么。@EdStaub,是的,基数很好,但我在寻找普通性。例如,任务列表:
1。穿上袜子,2。穿上鞋子,3。离开房子
。我希望能够在谓词中编码顺序。(在这种情况下,我的模式中有一个名为DoList的实体,它将有一个从DoList到Tasks的谓词,没有max基数)您只需要序列编码吗?你可以很容易地编写一个列表,或者你可以建立一个三级关系,例如,“hasTask(thing,rank,task)”,例如“hasTask(taskList,1,socks),hasTask(taskList,2,shoes),等等。”可能与创建列表相关:,。可能与n元关系相关:,。再次感谢您的指导。我今晚就要回家了,但我会跟进(问问题?),并确保你明天收到你的录取通知书。Cheers@ap你能告诉我这个案子有什么消息吗?