Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rdf 在本体数据属性中连接不同的信息_Rdf_Semantic Web_Owl_Ontology - Fatal编程技术网

Rdf 在本体数据属性中连接不同的信息

Rdf 在本体数据属性中连接不同的信息,rdf,semantic-web,owl,ontology,Rdf,Semantic Web,Owl,Ontology,每次访问文件时,我都需要用位置(lat,long)和时间信息对其进行注释;跟踪访问文件的时间和位置 我的应用程序是基于本体的,因此我需要在本体中定义新的属性 我目前正在通过数据属性执行此操作: fileAccessedLocation 域:文件 范围:字符串 一种以逗号分隔的lat、lon表示形式,与日期和时间连接在一起。e、 g.52.500556,13.398889_atTime_2014-07-14T08:09:00 在我的应用程序中,我能够实现我所需要的 但就本体论而言,我不确定连接时间

每次访问文件时,我都需要用位置(lat,long)和时间信息对其进行注释;跟踪访问文件的时间和位置

我的应用程序是基于本体的,因此我需要在本体中定义新的属性

我目前正在通过数据属性执行此操作:

fileAccessedLocation

域:文件
范围:字符串

一种以逗号分隔的lat、lon表示形式,与日期和时间连接在一起。e、 g.52.500556,13.398889_atTime_2014-07-14T08:09:00

在我的应用程序中,我能够实现我所需要的

但就本体论而言,我不确定连接时间和位置是否正确


如果串联方法错误,那么如何将时间和位置与单个文件访问关联起来?

我将使用多个数据属性。 以下是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)
你可以试着从另一个角度来看待这个问题。假设您有一个实体为:
FileAccess
,而不是本体的ER图;在该实体的单个属性中存储多个信息(纬度、经度和日期时间)方便吗?如果这样做,如果我想从生成的数据库中检索datetime在给定范围内的所有
FileAccess
实例,会发生什么?答案很简单,如果不引入更多的计算,就无法在数据源上执行查询并检索所需的记录,这需要通过串接字符串来分离存储在单个属性中的数据。因此,例如,您需要连接字符串以将其存储在单个属性中,然后需要拆分此类字符串以使用“聚合属性”的单个组件。更不用说,在标记聚合属性之后,需要将每个标记转换为适当的数据类型


从本体论的角度来看,这个问题是类似的。数据属性是属性,因此是对象和值之间的二进制关系,其域是概念(类),其范围是值域(数据类型)。这不仅对OWL有效,而且通常对描述逻辑有效。

我将使用多个数据属性。 以下是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)
你可以试着从另一个角度来看待这个问题。假设您有一个实体为:
FileAccess
,而不是本体的ER图;在该实体的单个属性中存储多个信息(纬度、经度和日期时间)方便吗?如果这样做,如果我想从生成的数据库中检索datetime在给定范围内的所有
FileAccess
实例,会发生什么?答案很简单,如果不引入更多的计算,就无法在数据源上执行查询并检索所需的记录,这需要通过串接字符串来分离存储在单个属性中的数据。因此,例如,您需要连接字符串以将其存储在单个属性中,然后需要拆分此类字符串以使用“聚合属性”的单个组件。更不用说,在标记聚合属性之后,需要将每个标记转换为适当的数据类型


从本体论的角度来看,这个问题是类似的。数据属性是属性,因此是对象和值之间的二进制关系,其域是概念(类),其范围是值域(数据类型)。这不仅适用于OWL,而且一般适用于描述逻辑。

谢谢您的回答。你能告诉我我的做法是对的还是错的吗?我编辑了我的帖子,添加了进一步的解释,让你明白为什么你的方法不正确,即使它确实有效。谢谢。我采用了你推荐的方法。问题解决了。但还有一个问题是,正如您为“FileAccess”推荐的类,在每次文件访问时,都会创建一个“FileAccess”对象,因此一个文件将有数百个对象。就推理和处理而言,它会停止我的申请吗?我不明白为什么。我想您在这里所做的是OBDA,所以本体推理是在TBox/ABox级别进行的,而实际数据是从数据源访问的(我想您正在使用某种映射系统,将本体谓词映射到数据源上)。谢谢您的回答。你能告诉我我的做法是对的还是错的吗?我编辑了我的帖子,添加了进一步的解释,让你明白为什么你的方法不正确,即使它确实有效。谢谢。我采用了你推荐的方法。问题解决了。但还有一个问题是,正如您为“FileAccess”推荐的类,在每次文件访问时,都会创建一个“FileAccess”对象,因此一个文件将有数百个对象。就推理和处理而言,它会停止我的申请吗?我不明白为什么。我认为您在这里所做的是OBDA,所以本体推理是在TBox/ABox级别进行的,而实际数据是从数据源访问的(我认为您使用的是某种映射系统,它将本体谓词映射到数据源)。