使用rdf\U加载时prolog中的source\U sink错误
我想从此规则加载rdf url:使用rdf\U加载时prolog中的source\U sink错误,prolog,rdf,Prolog,Rdf,我想从此规则加载rdf url: getActorFilms(Actor_Name,Films):- my_replace(Actor_Name, ' ', '_', Correct_Syntax_Of_Actor_Name), string_concat('http://dbpedia.org/data/',Correct_Syntax_Of_Actor_Name, URL_TO_LOAD), string_concat(URL_TO_LOAD,'.rdf',RDF_U
getActorFilms(Actor_Name,Films):-
my_replace(Actor_Name, ' ', '_', Correct_Syntax_Of_Actor_Name),
string_concat('http://dbpedia.org/data/',Correct_Syntax_Of_Actor_Name, URL_TO_LOAD),
string_concat(URL_TO_LOAD,'.rdf',RDF_URL),
rdf_load(RDF_URL),
rdf(Films, 'http://dbpedia.org/ontology/starring', Object)
.
当输入为例如“Hugh Jackman”时它告诉错误:
ERROR: [Thread pdt_console_client_0_Default Process] source_sink `http://dbpedia.org/data/Hugh_Jackman.rdf' does not exist
我真的很关心http和source\u sink之间的`字符
我想应该是”
虽然url是正确的,但是如何处理该错误呢?您应该将atom传递给rdf\u load
,而不是字符串。这种行为(误导性错误消息,不接受字符串)可能是一个bug
这对我很有用:
?- use_module(library('semweb/rdf_db')).
true.
?- use_module(library('semweb/rdf_http_plugin')).
true.
?- rdf_load('http://dbpedia.org/data/Hugh_Jackman.rdf').
% Parsed "http://dbpedia.org/data/Hugh_Jackman.rdf" in 0.02 sec; 371 triples
true.
?- string_to_atom(S, 'http://dbpedia.org/data/Hugh_Jackman.rdf'), rdf_load(S).
ERROR: source_sink `http://dbpedia.org/data/Hugh_Jackman.rdf' does not exist
我希望这能解决您的问题。回执很好。您确定加载了库(“semweb/rdf\u http\u插件”)
?在加载之前尝试调用rdf_load
会在从http服务器读取时导致此错误。为了澄清“倒勾很好”:单引号和双引号实际上在排版中是平衡的(“”),即使大多数键盘没有这些字符。在计划文本中编写时,模拟这种情况的一种方法是使用反勾号(`
)作为左单引号,使用单引号'
作为右单引号。似乎这就是此错误消息的用途。