这么说
o是x的p
是一种常用的说法,即数据包含三元组
斯波
所以看到
actor32是movie89的演员
表示数据包含
电影 89 演员 演员 32
我会说财产演员的名字很糟糕。它更像features或hasActor,但 RDF 是由数据库的映射生成的,所以我认为某些名称是自动生成的,而且它们不可能都很好。无论如何,这意味着像下面这样的查询将找到所有的电影和它们的片名<http://data.linkedmdb.org/resource/actor/30947>
。
SELECT ?movie ?movieTitle WHERE{
?movie movie:actor <http://data.linkedmdb.org/resource/actor/30947> .
?movie dc:title ?movieTitle .
}
结果
;
顺便说一句,您可以通过使用继续谓词对象列表来稍微缩写此查询,因此您不必重复主题?movie
:
SELECT ?movie ?movieTitle WHERE{
?movie movie:actor <http://data.linkedmdb.org/resource/actor/30947> ;
dc:title ?movieTitle .
}
附录:关于“is — of”</h3>
Notation3 (N3):一种可读的 RDF 语法,非常类似于Turtle,即简洁的 RDF 三重语言(实际上,Turtle 是 N3 的一个子集),但包含更多的句法结构,实际上允许使用“is - of ” 三元组的写法。谓词的语法产生是:
predicate
expression
"<="
"="
"=>"
"@a"
"@has" expression
"@is" expression "@of"
这意味着在 N3 中,您可以,例如。枚举一个类的一些实例
ex:Planet @is rdf:type @of
:Mercury, :Venus, :Earth, :Mars, :Jupiter, :Saturn, :Uranus, :Neptune .
而不是必须做
:Mercury rdf:type ex:Planet .
:Venus rdf:type ex:Planet .
:Earth rdf:type ex:Planet .
:Mars rdf:type ex:Planet .
:Jupiter rdf:type ex:Planet .
:Saturn rdf:type ex:Planet .
:Uranus rdf:type ex:Planet .
:Neptune rdf:type ex:Planet .
不幸的是,许多声称支持 N3 的工具实际上只支持 Turtle,并且不接受第一种形式。但是,如果您正在使用确实支持 N3 的东西,您可以编写
<http://data.linkedmdb.org/resource/actor/30947> @is movie:actor @of ?movie .
?movie dc:title ?movieTitle .
遗憾的是,三重模式的 SPARQL语法不支持@is — @of
,因此您将无法在查询中执行此操作。