每次访问文件时,我都需要用位置(lat,long)和时间信息对其进行注释;跟踪访问文件的时间和地点。
我的应用程序是基于本体的,所以我需要在本体中定义新的属性。
我目前使用的是一个数据属性:
fileAccessedLocation 域:文件 范围:字符串 与日期和时间连接在一起的lat的逗号分隔表示形式。例如52.500556,13.398889_atTime_2014-07-14T08:09:00
在使用此属性的应用程序中,我能够实现所需的功能。
但就本体而言,我不确定连接的时间和位置是否正确。
如果连接方法是错误的,那么我将如何将时间和位置与单个文件访问联系起来?
发布于 2016-02-28 12:55:18
我会使用多个数据属性。下面是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图,而不是本体:FileAccess;在该实体的单个属性中存储多个信息(纬度、经度和日期时间)方便吗?如果这样做,如果我想从生成的数据库中检索所有日期时间在给定范围之间的FileAccess实例,会发生什么?答案很简单,如果不引入更多的计算,就无法对数据源执行查询并检索所需的记录,而这些计算是通过串连字符串将存储在单个属性中的数据分开所需的。因此,例如,您需要连接字符串以将它们存储在单个属性中,然后需要拆分这样的字符串才能使用“聚合属性”的单个组件。更不用说,在对聚合属性进行标记化之后,您需要将每个令牌转换为适当的数据类型。
从本体论的角度来看,这个问题是相似的。数据属性是属性,因此是对象和值之间的二进制关系,其域是一个概念(类),其范围是值域(数据类型)。这不仅对OWL有效,而且对于描述逻辑通常是有效的。
https://stackoverflow.com/questions/35679450
复制相似问题