我正在查询Bioportal endpoint上的本体。本体(NIF)作为图形存储,因此我按照端点指示将其放在FROM子句中。
SELECT DISTINCT ?p
FROM <http://bioportal.bioontology.org/ontologies/NIF>
WHERE{
?p a rdf:Property
}
limit 100
但是,如下所示,结果又回来了,几乎没有显示与NIF相关的属性,而向其他称为SKOS(简单知识组织系统)的本体提供了其他属性。
在Bioportal文档中,据说将某些属性映射到SKOS属性,所以我认为结果可能不错。
但是,我必须测试是否查询了正确的图形。因此,我使用下面的代码来计算节点数,因为我知道NIF大约有360万个三元组!
SELECT (count (*) as ?nodes)
FROM <http://bioportal.bioontology.org/ontologies/NIF>
WHERE{
?s ?p ?o
}
这导致有和没有FROM子句的7984个节点!因此,我猜我应该错误地使用“计数”!
因此,我想知道如何确保只查询NIF本体。另外,如何计算节点数?
谢谢:)
答案 0 :(得分:0)
尝试使用SERVICE关键字。
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT (count (*) as ?nodes)
WHERE
{
SERVICE <http://bioportal.bioontology.org/ontologies/NIF>
{
?s ?p ?o
}
}
如果失败,则可能是您连接的服务不正确或已启动。 请尝试以下连接到DBpedia的示例:
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT (count (*) as ?nodes)
WHERE
{
SERVICE <http://DBpedia.org/sparql>
{
?s ?p ?o
}
}
顺便说一句,我无法访问URL http://bioportal.bioontology.org/ontologies/NIF。似乎不可用或已关闭。