如何在OWL中声明属性必须具有一组有序值?

时间:2013-03-29 12:29:03

标签: rdf ontology owl rdfs

如何在OWL中声明属性必须具有一组有序值?

例如:一个程序必须有一个rdf:Seq of Series,而一个系列必须有一个rdf:Seq of Episodes?

http://purl.org/ontology/po/本体使用属性http://purl.org/ontology/po/position代替。

哪种方法更好?

2 个答案:

答案 0 :(得分:0)

在OWL(和RDF)中很难表示序列,它更多的是关于无序的事物。我找到的最好的方法是通过属性分配一个数字,然后跟踪这个索引,并在需要时使用它来迭代。

表示你想要捕获的内容的OWL本体可以是这样的(使用曼彻斯特语法 - 你可以保存为.owl文件并使用Protege打开 - #是注释):

Prefix: xsd: <http://www.w3.org/2001/XMLSchema#>
Prefix: owl: <http://www.w3.org/2002/07/owl#>
Prefix: : <brain#>
Prefix: xml: <http://www.w3.org/XML/1998/namespace>
Prefix: rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
Prefix: dc: <http://purl.org/dc/elements/1.1/>
Prefix: rdfs: <http://www.w3.org/2000/01/rdf-schema#>
Ontology: <brain.owl>

Datatype: xsd:int

ObjectProperty: has
  Characteristics: 
    Transitive

# Property used to save the number in the sequence
DataProperty: episode-number
  Range: 
    xsd:int

# Definition of a program: A program as at least a series
Class: Program
  SubClassOf: 
    has some Series

Class: owl:Thing

# Definition of series: A series as at least one episode
Class: Series
  SubClassOf: 
    has some Episode

Class: Episode

# Instance of episode
Individual: episode1
  Types: 
    Episode

  # Episode number
  Facts:  
   episode-number  "1"^^xsd:int

# Second instance of episode
Individual: episode2
  Types: 
    Episode

Facts:  
 episode-number  "2"^^xsd:int

假设你想迭代剧集实例。这可以通过OWL查询Episode and episode-number value 1来实现。您必须自己更新号码。

答案 1 :(得分:0)

  

如何在OWL中声明属性必须具有一组有序的   值?例如:一个程序必须有一个rdf:Seq of Series,和一个   系列必须有一个rdf:Seq of Episodes?

如果你在OWL(DL)工作,那么你不应该真正使用RDF集合。 loopasam's answer是好的,如果你可以重新建立关系并包含位置编号,但你也可以在OWL中声明自己的列表结构,类似于RDF列表(它只是单链表的RDF编码)。因此你可以拥有

:series hasEpisodeList [ ex:first :episodeA ;
                         ex:rest [ ex:first :episodeB ;
                                   ex:rest [ :episodeC ;
                                             ex:rest ex:nil ] ] ] .

然而,这种方法的缺点是数字信息只是隐含的,并且使用DL查询很难重建(尽管使用SPARQL并不太难)。表示序列的两种方法都在Ordering of entities in an ontology以及它链接到的其他问题和答案中进行了更详细的描述。