首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有电影演员演吗?Linkedmdb

有电影演员演吗?Linkedmdb
EN

Stack Overflow用户
提问于 2013-09-13 13:54:16
回答 1查看 1.2K关注 0票数 1

我目前正在尝试获得演员扮演的电影(我想要他们的URI)。当我浏览linkedmdb时,我看到了"is“,但我不能在SPARQL查询中使用它。是特殊的命名空间还是别的什么?还是在猫头鹰本体中?我现在使用的查询是:

代码语言:javascript
复制
PREFIX movie: <http://data.linkedmdb.org/resource/movie/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX foaf: <http://xmlns.com/foaf/0.1/> 
SELECT ?actorName ?filmName WHERE{ 
  <http://data.linkedmdb.org/resource/actor/30947> movie:actor_name ?actorName . 
  <http://data.linkedmdb.org/resource/actor/30947> movie:performance ?film . 
  ?film movie:performance_film ?filmName .
}

这个代码只返回标题,我想要电影的整个URI。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-13 16:13:54

说过

Op of x

是一种常见的说法,即数据包含三重

斯波

所以看到

actor32 演员of movie89

意味着数据包含

movie89演员actor32

我想说的是那个房地产演员的名字很差。它更像特性或hasActor,但是RDF是由数据库的映射生成的,所以我认为有些名称是自动生成的,它们不可能都很棒。无论如何,这意味着像下面这样的查询将找到<http://data.linkedmdb.org/resource/actor/30947>所操作的所有电影及其标题。

代码语言:javascript
复制
SELECT ?movie ?movieTitle WHERE{ 
  ?movie movie:actor <http://data.linkedmdb.org/resource/actor/30947> .
  ?movie dc:title ?movieTitle .
}

结果

顺便说一句,您可以通过使用;继续一个谓词对象列表来稍微简化这个查询,所以您不必重复主题?movie

代码语言:javascript
复制
SELECT ?movie ?movieTitle WHERE{ 
  ?movie movie:actor <http://data.linkedmdb.org/resource/actor/30947> ;
         dc:title ?movieTitle .
}

附录:关于“is-of”

Notation3 (N3):可读的RDF语法非常类似于乌龟,简洁的RDF三重语言 (实际上,Turtle是N3的一个子集),但它包含了一些更多的语法结构,实际上允许以“is - of”的方式编写三元组。谓词的语法生成是:

代码语言:javascript
复制
predicate
    expression
    "<="
    "="
    "=>"
    "@a"
    "@has" expression
    "@is" expression "@of"

这意味着在N3中,你可以,例如,。枚举类的某些实例。

代码语言:javascript
复制
ex:Planet @is rdf:type @of 
  :Mercury, :Venus, :Earth, :Mars, :Jupiter, :Saturn, :Uranus, :Neptune .

而不是去做

代码语言:javascript
复制
: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的东西,您可以编写

代码语言:javascript
复制
<http://data.linkedmdb.org/resource/actor/30947> @is movie:actor @of ?movie .
?movie dc:title ?movieTitle .

遗憾的是,SPARQL 三重模式语法不支持@is — @of,所以您将无法在查询中做到这一点。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18788134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档