Sql 时态查询和非时态查询之间的区别是什么
我已经阅读了一些关于时态和非时态查询的参考资料,特别是SPARQL。这两种查询之间的区别是什么?这个词的意思是相对于时间的Sql 时态查询和非时态查询之间的区别是什么,sql,database,sparql,Sql,Database,Sparql,我已经阅读了一些关于时态和非时态查询的参考资料,特别是SPARQL。这两种查询之间的区别是什么?这个词的意思是相对于时间的,来自拉丁语单词tempus,它本身意味着时间 因此,时态查询是一种考虑时间的查询。以一个你将重写为非时态的问题为例 谁(曾经)和约翰结婚了? 与可能的时间版本(其中一个)相比 2010年约翰嫁给了谁? 由于您没有提到关于时态查询的特定文档,因此我只能给出一个非常广泛的答案: 关于如何在RDF中对时间约束的事实建模,有许多方法。由于RDF本身只涉及三元组/四元组(主语、谓语
,来自拉丁语单词tempus
,它本身意味着时间
因此,时态查询是一种考虑时间的查询。以一个你将重写为非时态的问题为例
谁(曾经)和约翰结婚了?
与可能的时间版本(其中一个)相比
2010年约翰嫁给了谁?
由于您没有提到关于时态查询的特定文档,因此我只能给出一个非常广泛的答案:
关于如何在RDF中对时间约束的事实建模,有许多方法。由于RDF本身只涉及三元组/四元组(主语、谓语、宾语(、图形)),因此许多简单的映射方法生成的三元组在映射时是正确的,但很快就会过时和错误。一个例子是
dbpedia:Barack_Obama dbpedia-owl:office "President of the United States" .
虽然目前这是事实,但2017年很可能是错误的,因为他已经进入了第二个任期。尽管如此,如上所述,这始终是正确的,这会导致许多复杂情况
这两种查询之间有什么区别
通常,可以通过查看SPARQL查询来回答这一问题。如果它以某种方式请求在某个时间段内有效的语句,那么它就是一个“时态”查询。如果它不包含任何计时信息,则通常不包含(尽管您的端点可能会隐式地添加“仅事实现在有效”约束)
如何包含此类计时信息取决于您的SPARQL端点以及您所查询的数据是如何建模的
一些建模方法:
限定关系模式
对时态受限语句建模的一种方法(即)是使用/“角色模型”:
物化
另一种方法是使用物化对语句进行如下陈述:
ex:Barack_Obama_presidency_stmt rdf:type rdf:Statement .
ex:Barack_Obama_presidency_stmt rdf:subject dbpedia:Barack_Obama .
ex:Barack_Obama_presidency_stmt rdf:predicate dbpedia-owl:office .
ex:Barack_Obama_presidency_stmt rdf:object "President of the United States" .
ex:Barack_Obama_presidency_stmt ex:activeYearsStartDate "2009-01-20"^^xsd:date .
整图的出处计时
另一种方法是为端点上可访问的每个图形提供出处信息,例如使用。在这些情况下,您可以在SPARQL查询中使用这些信息来请求在给定时间范围内生成的图,然后与它们的三元组进行匹配
时态SPARQL
最后但并非最不重要的是,有很多方法试图在SPARQL语言本身中引入特殊语法或标准化此类时态查询,例如:
这是一个社区维基答案,请随意扩展。“我已经阅读了一些关于时态和非时态查询的资源”你能给我们指出其中的一些吗?@JoshuaTaylor它们是我无法再访问的讲座幻灯片抱歉
ex:Barack_Obama_presidency_stmt rdf:type rdf:Statement .
ex:Barack_Obama_presidency_stmt rdf:subject dbpedia:Barack_Obama .
ex:Barack_Obama_presidency_stmt rdf:predicate dbpedia-owl:office .
ex:Barack_Obama_presidency_stmt rdf:object "President of the United States" .
ex:Barack_Obama_presidency_stmt ex:activeYearsStartDate "2009-01-20"^^xsd:date .