在 Ontology 数据 属性 中连接不同的信息
Concatenate different information in an Ontology Data Property
每次访问文件时,我都需要用位置(纬度、经度)和时间信息对其进行注释;跟踪访问文件的时间和地点。
我的应用程序是基于 ontology 的,因此我需要通过在我的 ontology 中定义新属性来实现它。
我目前正在通过数据属性:
fileAccessedLocation
Domains: File
Ranges: string
A comma separated representation of a lat, lon concatenated with Date & Time. e.g. 52.500556, 13.398889_atTime_2014-07-14T08:09:00
在我的申请中属性我能够实现我所需要的。
但就 ontology 而言,我不确定连接时间和位置的方法是否正确。
如果连接方法错误,那么我如何将时间和位置与单个文件访问相关联?
我会使用多个数据属性。
这是 OWL 函数式样式语法中的示例:
Declaration(Class(prefix:FileAccess))
Declaration(DataProperty(prefix:Latitude))
Declaration(DataProperty(prefix:Longitude))
Declaration(DataProperty(prefix:AccessTime))
FunctionalDataProperty(prefix:Latitude)
FunctionalDataProperty(prefix:Longitude)
FunctionalDataProperty(prefix:AccessTime)
DataPropertyRange(prefix:Latitude xsd:double)
DataPropertyRange(prefix:Longitude xsd:double)
DataPropertyRange(prefix:AccessTimexsd:dateTime)
SubClassOf(DataSomeValuesFrom(prefix:Latitude rdfs:Literal) prefix:FileAccess)
SubClassOf(DataSomeValuesFrom(prefix:Longitude rdfs:Literal) prefix:FileAccess)
SubClassOf(DataSomeValuesFrom(prefix:AccessTime rdfs:Literal) prefix:FileAccess)
你可以试着换个角度看问题。假设您有一个带有实体的 ER 图,而不是 ontology:FileAccess
;在这个实体的单个属性中存储多个信息(纬度、经度和日期时间)是否方便?如果这样做,如果我想从生成的数据库中检索日期时间在给定范围内的所有 FileAccess
实例,会发生什么情况?答案很简单,您不能在数据源上执行查询并在不引入更多计算的情况下检索所需的记录,这些计算需要通过连接字符串来分离您存储在单个属性中的数据。因此,例如,您需要连接字符串以将它们存储在单个属性中,然后您需要拆分此类字符串才能使用 "aggregate attribute" 的单个组件。更不用说在对聚合属性进行标记后,您需要将每个标记转换为适当的数据类型。
从 ontology 的角度来看,问题是类似的。数据属性是属性,因此是对象和值之间的二元关系,其域是一个概念 (class),其范围是一个值域(数据类型)。这不仅对 OWL 有效,而且对描述逻辑通常有效。
每次访问文件时,我都需要用位置(纬度、经度)和时间信息对其进行注释;跟踪访问文件的时间和地点。
我的应用程序是基于 ontology 的,因此我需要通过在我的 ontology 中定义新属性来实现它。
我目前正在通过数据属性:
fileAccessedLocation
Domains: File
Ranges: stringA comma separated representation of a lat, lon concatenated with Date & Time. e.g. 52.500556, 13.398889_atTime_2014-07-14T08:09:00
在我的申请中属性我能够实现我所需要的。
但就 ontology 而言,我不确定连接时间和位置的方法是否正确。
如果连接方法错误,那么我如何将时间和位置与单个文件访问相关联?
我会使用多个数据属性。 这是 OWL 函数式样式语法中的示例:
Declaration(Class(prefix:FileAccess))
Declaration(DataProperty(prefix:Latitude))
Declaration(DataProperty(prefix:Longitude))
Declaration(DataProperty(prefix:AccessTime))
FunctionalDataProperty(prefix:Latitude)
FunctionalDataProperty(prefix:Longitude)
FunctionalDataProperty(prefix:AccessTime)
DataPropertyRange(prefix:Latitude xsd:double)
DataPropertyRange(prefix:Longitude xsd:double)
DataPropertyRange(prefix:AccessTimexsd:dateTime)
SubClassOf(DataSomeValuesFrom(prefix:Latitude rdfs:Literal) prefix:FileAccess)
SubClassOf(DataSomeValuesFrom(prefix:Longitude rdfs:Literal) prefix:FileAccess)
SubClassOf(DataSomeValuesFrom(prefix:AccessTime rdfs:Literal) prefix:FileAccess)
你可以试着换个角度看问题。假设您有一个带有实体的 ER 图,而不是 ontology:FileAccess
;在这个实体的单个属性中存储多个信息(纬度、经度和日期时间)是否方便?如果这样做,如果我想从生成的数据库中检索日期时间在给定范围内的所有 FileAccess
实例,会发生什么情况?答案很简单,您不能在数据源上执行查询并在不引入更多计算的情况下检索所需的记录,这些计算需要通过连接字符串来分离您存储在单个属性中的数据。因此,例如,您需要连接字符串以将它们存储在单个属性中,然后您需要拆分此类字符串才能使用 "aggregate attribute" 的单个组件。更不用说在对聚合属性进行标记后,您需要将每个标记转换为适当的数据类型。
从 ontology 的角度来看,问题是类似的。数据属性是属性,因此是对象和值之间的二元关系,其域是一个概念 (class),其范围是一个值域(数据类型)。这不仅对 OWL 有效,而且对描述逻辑通常有效。