Zhihu Column Article Details API
通过 JustOneAPI 获取知乎专栏文章详情,支持内容研究与归档。
通过自然语言查询 DBpedia 知识图谱,生成结构化结果与可视化 HTML 页面。
openclaw skills install @kidehen/query-dbpedia命令、参数、文件名以原文为准
当用户希望:
✅ 自然语言转 SPARQL:将用户问题转换为有效的 SPARQL 查询
✅ 查询执行:向 DBpedia 端点发送查询请求
✅ HTML 生成:创建美观且可交互的 HTML 结果页面
✅ 多种输出格式:支持 JSON、Markdown 表格或 HTML
✅ 错误处理:对语法错误或无结果的情况进行优雅处理
SPARQL 端点:https://dbpedia.org/sparql
返回格式:JSON 结果(format=json)
请求方式:HTTP GET,查询参数需 URL 编码
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbr: <http://dbpedia.org/resource/>
PREFIX dbp: <http://dbpedia.org/property/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX dct: <http://purl.org/dc/terms/>当用户提供自然语言提示时:
常见映射关系:
dbo:directordbp:date 或 dbo:releaseDatedbo:budgetdbo:birthPlacedbo:populationTotaldbo:capitaldbo:authordbo:starring通用模板:
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbr: <http://dbpedia.org/resource/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT DISTINCT ?variable ?label
WHERE {
?variable <predicate> <object> ;
rdfs:label ?label .
FILTER(LANG(?label) = 'en')
}
ORDER BY <sort_criteria>
LIMIT <number>使用 curl 向 DBpedia 发送请求:
curl -s -G "https://dbpedia.org/sparql" \
--data-urlencode "query=<SPARQL_QUERY>" \
--data-urlencode "format=json"可选输出格式:
用户:“请展示克里斯托弗·诺兰执导的电影”
SPARQL:
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbr: <http://dbpedia.org/resource/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT DISTINCT ?film ?title ?releaseDate
WHERE {
?film dbo:director dbr:Christopher_Nolan ;
a dbo:Film ;
rdfs:label ?title .
OPTIONAL { ?film dbo:releaseDate ?releaseDate }
FILTER(LANG(?title) = 'en')
}
ORDER BY DESC(?releaseDate)用户:“法国人口最多的前 10 个城市有哪些?”
SPARQL:
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbr: <http://dbpedia.org/resource/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?city ?name ?population
WHERE {
?city dbo:country dbr:France ;
a dbo:City ;
rdfs:label ?name ;
dbo:populationTotal ?population .
FILTER(LANG(?name) = 'en')
}
ORDER BY DESC(?population)
LIMIT 10用户:“介绍一下阿尔伯特·爱因斯坦——他什么时候出生,出生在哪里?”
SPARQL:
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbr: <http://dbpedia.org/resource/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?birthDate ?birthPlace ?placeLabel
WHERE {
dbr:Albert_Einstein dbo:birthDate ?birthDate ;
dbo:birthPlace ?birthPlace .
?birthPlace rdfs:label ?placeLabel .
FILTER(LANG(?placeLabel) = 'en')
}生成 HTML 结果时需包含以下元素:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>[查询描述] - DBpedia</title>
<style>
/* 现代化、响应式样式 */
/* 渐变背景 */
/* 悬停效果 */
/* 移动端优先设计 */
</style>
</head>
<body>
<div class="container">
<h1>[问题/标题]</h1>
<div class="stats">[结果数量]</div>
<table>[结果内容]</table>
<div class="sparql-query">[查询代码]</div>
<div class="footer">[署名信息]</div>
</div>
</body>
</html>如果查询返回 0 条记录:
如果 SPARQL 语法出错:
如果查询超时:
始终向用户确认:
"您希望结果以以下哪种形式返回:
1. JSON(原始数据)
2. Markdown 表格(适合终端查看)
3. HTML 页面(交互式可视化)"FILTER(LANG(?label) = 'en')用户: "列出 J.K. 罗琳撰写的所有书籍及其出版日期"
助手:
"我将查询 DBpedia 以获取 J.K. 罗琳撰写的书籍信息。
正在向 DBpedia 端点执行 SPARQL 查询..."
[构建并执行查询]
"共找到 15 本书!您希望以以下哪种格式查看结果?
用户: "HTML 页面"
助手:
[生成美观的 HTML 页面并输出结果]
"✓ HTML 页面已生成并保存至:./jk_rowling_books.html
✓ 共找到 15 本带有出版日期的书籍"
此技能支持:
此技能不支持:
版本:1.0.0
端点:https://dbpedia.org/sparql
数据源:DBpedia(维基百科结构化数据)
已收录 1 个 Skill