时态查询和非时态查询有什么区别
What is the difference between a temporal and a non-temporal query
我阅读了一些讨论时态和非时态查询的资源,特别是 SPARQL。这两种查询有什么区别?
temporal 一词的意思是 relative to time
,来自拉丁词 tempus
,它本身就是时间的意思。
因此,时间查询是一种考虑时间的查询。以您将重写为非时间
的示例问题为例
Who was (ever) married to John?
与其可能的时间版本(其中之一)对比
Who was John married to in 2010?
由于您没有参考讨论时态查询的特定文档,我只能给出一个相当宽泛的答案:
关于如何在 RDF 中对时间受限的事实进行建模的方法有很多。由于RDF本身只关心triples/quads(subject, predicate, object(, graph)),许多简单的映射方法生成的三元组在映射时为真,但很快就会过时和错误。一个例子是
dbpedia:Barack_Obama dbpedia-owl:office "President of the United States" .
虽然目前这是正确的,但在 2017 年很可能是错误的,因为他已经进入第二个任期。尽管如此,如上所述,它总是正确的,这会导致很多并发症。
What is the difference between these two kinds of queries?
一般来说,这可以通过查看您的 SPARQL 查询来回答。如果它以某种方式要求在某个时间/一段时间内有效的语句,那么它就是一个 "temporal" 查询。如果它不包含任何时间信息,则通常不包含(尽管您的端点可能会隐式添加 "only facts valid now" 约束)。
如何包含此类计时信息取决于您的 SPARQL 端点以及您查询的数据的建模方式。
一些建模方法:
合格的关系模式
一种对时间限制语句进行建模的方法(即 actually used by DBpedia) is by using a qualified relation pattern / "role model":
dbpedia:Barack_Obama dbpedia-owl:termPeriod dbpedia:Barack_Obama__1 .
dbpedia:Barack_Obama__1 dbpedia-owl:activeYearsStartDate "2009-01-20"^^xsd:date .
dbpedia:Barack_Obama__1 dbpedia-owl:office "President of the United States" .
...
具体化
另一种方法是使用具体化来对如下语句进行陈述:
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 .
整个图的出处时间
另一种方法是为端点上可访问的每个图提供出处信息,例如与 http://www.w3.org/TR/prov-o/#generatedAtTime 。在这些情况下,您可以在 SPARQL 查询中使用此类信息来请求在给定时间范围内生成的图形,然后与它们的三元组进行匹配。
时间 SPARQL
最后但同样重要的是,有相当多的方法试图在 SPARQL 语言本身中引入特殊语法或标准化此类时态查询,例如:
- https://www.merlin.uzh.ch/publication/show/201
- http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.298.8948&rep=rep1&type=pdf
但是正如这个答案所示,这样的标准化还远未被普遍接受/实施。
结论
由于缺乏标准化及其实际接受度,"temporal SPARQL" 查询需要考虑查询数据如何对此类时态信息建模。
这是一个社区 wiki 答案,欢迎随时扩展。
我阅读了一些讨论时态和非时态查询的资源,特别是 SPARQL。这两种查询有什么区别?
temporal 一词的意思是 relative to time
,来自拉丁词 tempus
,它本身就是时间的意思。
因此,时间查询是一种考虑时间的查询。以您将重写为非时间
的示例问题为例Who was (ever) married to John?
与其可能的时间版本(其中之一)对比
Who was John married to in 2010?
由于您没有参考讨论时态查询的特定文档,我只能给出一个相当宽泛的答案:
关于如何在 RDF 中对时间受限的事实进行建模的方法有很多。由于RDF本身只关心triples/quads(subject, predicate, object(, graph)),许多简单的映射方法生成的三元组在映射时为真,但很快就会过时和错误。一个例子是
dbpedia:Barack_Obama dbpedia-owl:office "President of the United States" .
虽然目前这是正确的,但在 2017 年很可能是错误的,因为他已经进入第二个任期。尽管如此,如上所述,它总是正确的,这会导致很多并发症。
What is the difference between these two kinds of queries?
一般来说,这可以通过查看您的 SPARQL 查询来回答。如果它以某种方式要求在某个时间/一段时间内有效的语句,那么它就是一个 "temporal" 查询。如果它不包含任何时间信息,则通常不包含(尽管您的端点可能会隐式添加 "only facts valid now" 约束)。
如何包含此类计时信息取决于您的 SPARQL 端点以及您查询的数据的建模方式。
一些建模方法:
合格的关系模式
一种对时间限制语句进行建模的方法(即 actually used by DBpedia) is by using a qualified relation pattern / "role model":
dbpedia:Barack_Obama dbpedia-owl:termPeriod dbpedia:Barack_Obama__1 .
dbpedia:Barack_Obama__1 dbpedia-owl:activeYearsStartDate "2009-01-20"^^xsd:date .
dbpedia:Barack_Obama__1 dbpedia-owl:office "President of the United States" .
...
具体化
另一种方法是使用具体化来对如下语句进行陈述:
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 .
整个图的出处时间
另一种方法是为端点上可访问的每个图提供出处信息,例如与 http://www.w3.org/TR/prov-o/#generatedAtTime 。在这些情况下,您可以在 SPARQL 查询中使用此类信息来请求在给定时间范围内生成的图形,然后与它们的三元组进行匹配。
时间 SPARQL
最后但同样重要的是,有相当多的方法试图在 SPARQL 语言本身中引入特殊语法或标准化此类时态查询,例如:
- https://www.merlin.uzh.ch/publication/show/201
- http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.298.8948&rep=rep1&type=pdf
但是正如这个答案所示,这样的标准化还远未被普遍接受/实施。
结论
由于缺乏标准化及其实际接受度,"temporal SPARQL" 查询需要考虑查询数据如何对此类时态信息建模。
这是一个社区 wiki 答案,欢迎随时扩展。