我使用几个不同的三重商店,并在代码R和斯卡拉。我想我看到一些差异:三重奏如何决定是否添加“背景”三元组?
- 三重商店是否包含明确加载的三元组以外的三元组。
- 可能会添加这些“背景”三元组的点。
是否有支持词汇表是否需要添加的一般规则,而与实现技术无关?
在[R使用耶拿,通过rrdf,我通常只看到我装:
library(rrdf)
turtle.input.string <-
"PREFIX prefix: <http://example.com/>
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix:subject rdf:type prefix:object"
jena.model <-
fromString.rdf(rdfContent = turtle.input.string, format = "TURTLE")
model.string <- asString.rdf(jena.model, format = "TURTLE")
cat(model.string)
这给:
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix prefix: <http://example.com/> .
prefix:subject a prefix:object .
但有时候tr从即可得到的数据RDF和RDFS似乎在我之后添加或删除三元组时出现。这就是最“困扰”我的,但我现在很难找到一个例子。如果没人知道我的意思,我今天晚些时候会挖掘一些东西。
当我使用Blazegraph在斯卡拉,通过OpenRDF芝麻库,我想我总是得到RDF,RDFS和OWL “免费”
import java.util.Properties
import org.openrdf.query.QueryLanguage
import org.openrdf.rio._
import com.bigdata.journal._
import com.bigdata.rdf.sail._
object InjectionTest {
val jnl_fn = "sparql_tests.jnl"
def main(args: Array[String]): Unit = {
val props = new Properties()
props.put(Options.BUFFER_MODE, BufferMode.DiskRW)
props.put(Options.FILE, jnl_fn)
val sail = new BigdataSail(props)
val repo = new BigdataSailRepository(sail)
repo.initialize()
val cxn = repo.getConnection()
val resultStream = new java.io.ByteArrayOutputStream
val resultWriter = Rio.createWriter(RDFFormat.TURTLE, resultStream)
val ConstructString = "construct {?s ?p ?o} where {?s ?p ?o}"
cxn.prepareGraphQuery(QueryLanguage.SPARQL, ConstructString).evaluate(resultWriter)
var resString = resultStream.toString()
println(resString)
}
}
即使不添加任何三元组,也可以使用construct
或tput的包括这样的块:
rdfs:isDefinedBy rdfs:domain rdfs:Resource ;
rdfs:range rdfs:Resource ;
rdfs:subPropertyOf rdfs:isDefinedBy , rdfs:seeAlso .
我只能回答耶拿。如果您在RDFS配置文件中使用OntModel,则默认情况下将添加RDF和RDFS词汇以及公理三元组。请参阅https://www.w3.org/TR/rdf11-mt/#rdfs-interpretations – AKSW
谢谢,这是有道理的。 rrdf是Jena上的一个包装器,并且它提供**创建** ** **新**模型作为**本体**的选项。在从字符串或文件加载三元组时,它不会给出该选项。你能想到在事实之后会注入RDF和RDFS词汇的任何情况吗? –