我有一个JSON-LD文档.
{
"@id": "VDWW1LL3MZ",
"first_name": "Vincent",
"last_name": "Willems",
"knows":["MartyP"],
"@context": {
"foaf": "http://xmlns.com/foaf/0.1/",
"first_name": "foaf:givenName",
"last_name": "foaf:familyName",
"knows": "foaf:knows",
"MartyP": {
"@id": "http://example.com/martyp",
"first_name": "Marty",
"last_name": "P"
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在,本文档的部分上下文是在运行时(Marty P对象)生成的,但foaf前缀定义是静态的,并且对每个文档都重复.
如果我有10个前缀定义,将它们放在每个文档中会感到浪费.所以我想做点什么
generated document:
{
"@id": "VDWW1LL3MZ",
"first_name": "Vincent",
"last_name": "Willems",
"knows":["MartyP"],
"@context": {
"@extends": "http://example.com/base_context.jsonld",
"MartyP": {
"@id": "http://example.com/martyp",
"first_name": "Marty",
"last_name": "P"
}
}
}
Run Code Online (Sandbox Code Playgroud)
base_context.jsonld:
{
"foaf": "http://xmlns.com/foaf/0.1/",
"first_name": "foaf:givenName",
"last_name": "foaf:familyName",
"knows": "foaf:knows"
}
Run Code Online (Sandbox Code Playgroud)
这可能吗?
在RDF/RDFS/OWL中,如何判断实体是纯粹的实例还是类?我理解类实体也是实例,因为它们是"类"实体的实例和其他类的子类.但是,我相信一些实体只是一个类的实例,而不是类本身.
现在,我认为告诉某事的唯一方法纯粹是一个实例是在(在该实体的rdf数据中)查找带有rdf:type谓词的语句,并查找缺少具有rdfs:subClassOf或等效谓词的任何语句.
但是,寻找缺少语句并不是确保某些东西真正成为类或实例的好方法.
有没有更好的方法来辨别一个实体是一个类还是一个纯粹的实例?希望在鼻子下面可能还有什么东西.
我刚开始学习语义Web,并对限制类有疑问.我挖了一段时间,但还没有找到任何答案..任何帮助将不胜感激!从教科书中,我看到了限定类的例子,它们都是要定义一个匿名owl:Restriction类bnode并将其bnode与属性相关联owl:equivalentClass.
例:
example:restrictionClass owl:equivalentClass [
rdf:type owl:Restriction;
owl:onProperty example:resProp;
owl:someValuesFrom example:resValue.
]
Run Code Online (Sandbox Code Playgroud)
我的问题是我们可以直接定义限制类吗?喜欢:
example:restrictionClass rdf:type owl:Restriction;
owl:onProperty example:resProp;
owl:someValuesFrom example:resValue.
Run Code Online (Sandbox Code Playgroud)
定义匿名有owl:Restriction什么好处?
我有一个问题问你.
我想编写一个查询,检索与给定字符串"Londn"相似的值(给定相似函数,如Lev),以与DBPedia的谓词"RDFS:label"进行比较.例如,在输出中,我想获得"伦敦"的价值.我已经读过可用的方法可能是使用iSPARQL("不精确的SPARQL"),尽管它在文献中没有被广泛使用.
我可以使用iSPARQL还是有一些SPARQL方法来执行相同的操作?
首先,我是新手……REST、RDF、LDP 等。
我能够以一种模糊的方式了解 REST 和 RDF:
比如在RDF数据集中,有一组值,范围从0到100(例如,百分比).我想计算给定范围内的值的数量,例如,100 - 90 | 90 - 80 | ...... | 10 - 0.我期望的输出如下所示:
???????????????????????????
? Range ? Count ?
???????????????????????????
? 100 >= x < 90 ? 4521 ?
? 90 >= x < 80 ? 650 ?
? ... ? ... ?
? 10 >= x <= 0 ? 2650 ?
???????????????????????????
Run Code Online (Sandbox Code Playgroud)
我目前正在使用SPARQL子查询和过滤器来获得解决方案.但这似乎是一个常见的用例,我的直觉告诉我应该有更好的方法来做到这一点.是否有更好(或更有效)的方法来达到这个答案?
目前的解决方案如下所示.
PREFIX dqv: <http://www.w3.org/ns/dqv#>
select distinct ?count90_100 ?count80_90 ?count10_0 where {
?m a dqv:QualityMeasurement .
{ select count(?m) as ?count90_100 where { ?m dqv:value ?value FILTER …Run Code Online (Sandbox Code Playgroud) 我想将 CSV 转换为 RDF。
事实上,该 CSV 的一列是一组用分隔符(在我的例子中是空格字符)连接的值。
这是一个示例 CSV(带标题):
col1,col2,col3
"A","B C D","John"
"M","X Y Z","Jack"
Run Code Online (Sandbox Code Playgroud)
我希望转换过程创建一个类似于这样的 RDF:
:A :aProperty :B, :C, :D; :anotherProperty "John".
:M :aProperty :X, :Y, :Z; :anotherProperty "Jack".
Run Code Online (Sandbox Code Playgroud)
我通常使用 Tarql 进行 CSV 转换。
每行迭代都可以。
但是它没有在列值“内部”进行子迭代的功能。
SPARQL-Generate 可能会有所帮助(据我所知,使用 iter:regex 和 sub-generate)。但是我找不到任何与我的用例相匹配的示例。
PS:可能 RML 也可以提供帮助。但我对这项技术一无所知。
我使用Sesame triplestore来存储我的数据.当我尝试使用带有Sesame的查询接口和外部资源(如dbpedia)时,我没有得到任何结果.在添加所有必需的前缀后,此查询返回带有snorql但不返回Sesame的结果:
select ?routes where {
dbpedia:Polio_vaccine dbpprop:routesOfAdministration ?routes
}
Run Code Online (Sandbox Code Playgroud)
我需要改变什么?
我有默认图形,需要使用DBpedia扩展数据。
我已经使用owl:sameAs属性将数据中的所有实例与DBpedia中的相应URI进行了映射。
该查询返回所有owl:sameAs数据:(我的端点:http : //dydra.com/brunopenteado/br_municipalities/@query)
select *
where
{
?mun owl:sameAs ?db .
}
limit 10
Run Code Online (Sandbox Code Playgroud)
现在,我想rdfs:label使用我的数据从DBpedia 查询。
如何建立一个查询,该查询可以读取我的数据并扩展到DBpedia属性?
我尝试过这样的查询,但是没有返回结果。
select *
from <http://dydra.com/brunopenteado/br_municipalities/sparql>
from <http://pt.dbpedia.org/sparql>
where
{
?mun owl:sameAs ?dbp .
?dbp rdfs:label ?name
}
limit 10
Run Code Online (Sandbox Code Playgroud) 我正在玩DBPedia.
有了这个问题,我得到了所有在伦敦出生的人:
SELECT ?person
WHERE {
?person dbo:birthPlace :London
}
Run Code Online (Sandbox Code Playgroud)
但是,当我执行此查询时,为什么我得到一个空结果?
SELECT ?person
WHERE {
?person dbo:birthPlace "London"
}
Run Code Online (Sandbox Code Playgroud)
我刚刚换成London了一个String.
linked-data ×10
semantic-web ×7
sparql ×6
dbpedia ×4
rdf ×4
csv ×1
json-ld ×1
ontology ×1
optimization ×1
owl ×1
rdfs ×1
rest ×1
sesame ×1
similarity ×1