Sparql 如何对两种不同的本体进行查询?

Sparql 如何对两种不同的本体进行查询?,sparql,jena,ontology,Sparql,Jena,Ontology,我有两种不同的本体:一种是电影类型,另一种是电影认证。我想在SPARQL中编写一个查询,可以找到那些具有认证x(比如PG-13)和类型y(比如action)的电影。这两种本体都不同,我将它们上传到ApacheJena中 这些是我的本体论: PREFIX o2: <http://www.semanticweb.org/administrator/ontologies/2016/11/genre_ontology#> PREFIX o1: <http://www.semanticw

我有两种不同的本体:一种是电影类型,另一种是电影认证。我想在SPARQL中编写一个查询,可以找到那些具有认证
x
(比如
PG-13
)和类型
y
(比如
action
)的电影。这两种本体都不同,我将它们上传到ApacheJena中

这些是我的本体论:

PREFIX o2: <http://www.semanticweb.org/administrator/ontologies/2016/11/genre_ontology#>
PREFIX o1: <http://www.semanticweb.org/administrator/ontologies/2016/11/certification_ontology#>
这里的
R
限制的
认证


查询结果包含
x
z
中的电影,但我只想要
x
z
中的普通电影?

您应该在提出问题时尽量提供一个最小的示例

您可能想看看:

如您所见,我们使用两个名称空间(用于两个本体)。您可以这样引用它们(在SPARQL查询之前):

前缀证书:
前缀类型:
最终查询可能如下所示:

PREFIX cert: <http://example.com/cert/1.0/>
PREFIX genres: <http://example.com/genres/1.0/>

SELECT ?s ?p ?o
WHERE {
    ?s ?p ?o .
    ?s cert:level cert:PG13 .
    ?s genres:genre genres:Action .
}
前缀证书:
前缀类型:
选择s?p?o
在哪里{
?s?p?o。
?s证书:级别证书:PG13。
类型:类型:动作。
}
NB:为了在一个查询中应用多个图形模式,必须在这些模式中使用相同的变量(
?s
,在最后两个图形模式中)


我与作者没有任何关系,但我认为你可能会从中受益。

你尝试过什么?你想如何加入电影?基于他们(完全相同)的头衔,基于共同的身份?添加更多细节!如果将两个本体加载到同一个Jena模型中,我看不出任何问题。只需编写SPARQL查询,Jena不关心三元组的起源。这是我的本体前缀o2:前缀o1:,我想找到具有类型和认证的电影。我的查询是SELECT?x?z,其中{x o1:hasCertificationOf?y.?z o2:hasGene?a.FILTER regex(str(?y),“R"”)FILTER regex(str(?a),“Adventure”)}这里R是受限的认证查询结果,包含x和z中的电影,但我只想要x和z中的普通电影?这些是我的本体前缀o2:前缀o1:,我想找到有类型和认证的电影。我的查询是SELECT?x?z,其中{x o1:hasCertificationOf?y.?z o2:hasGene?a.FILTER regex(str(?y),“R"”)FILTER regex(str(?a),“Adventure”)}这里R是受限的认证查询结果,包含x和z中的电影,但我只想要x和z中的普通电影?不要使用
x
z
,只需在这两种模式中使用
x
。更新了我的答案以突出显示这一点。通过在两种模式中使用x,不会产生任何结果。这意味着不存在满足这两个规则的
x
。但是通过我的查询,我得到了一些在x和z中都很常见的电影名称。
?s cert:level cert:PG13 .  
?s genres:genre genres:Action . 
PREFIX cert: <http://example.com/cert/1.0/>
PREFIX genres: <http://example.com/genres/1.0/>
PREFIX cert: <http://example.com/cert/1.0/>
PREFIX genres: <http://example.com/genres/1.0/>

SELECT ?s ?p ?o
WHERE {
    ?s ?p ?o .
    ?s cert:level cert:PG13 .
    ?s genres:genre genres:Action .
}