我开始学习schema.org架构.我来自RDF/OWL社区.
令我惊讶的是,我无法找到schema.org的RDFS或OWL词汇表.更具体地说,我意识到它只是一个描述架构的HTML页面.我还发现了模式的RDFa表示.顺便说一下,不确定它是否可以成为合法的RDFS表示.所有这些让我有点困惑.
与此同时,我发现了以下作品:http://topbraid.org/schema/和http://schema.rdfs.org/.
因此,我有以下几个问题:
1-两者是否都能达到同样的效果?如果不是两者有什么区别?
1.2-他们各自的目标和用例是什么?
3- URI与本体的URI不对应,是不是很奇怪?它如何与关联数据原则保持一致?
4- schema.org是否完全符合关联数据原则?
5-我发现引用没有RDF表示的模式很奇怪?例如,如何在像Protégé这样的工具中使用它?
我真的很感激对此有一些澄清.
是否可以使用 sparql 更新重命名图形?
我看到的唯一方法是:
INSERT {GRAPH uri:graphNEW {?s ?p ?o}}
WHERE {GRAPH uri:graphOLD {?s ?p ?o}};
DROP GRAPH uri:graphOLD
Run Code Online (Sandbox Code Playgroud)
但我不能 100% 确定所有三元组和属性(如语言标签和 xsd 格式)都将复制到新图中。
有没有更聪明的方法来做到这一点?
编辑:由于罗曼苏西的建议,问题得到了改善
我正在创建材料及其物理属性的链接数据,而我在为某些属性设置单位时遇到问题.我个人的材料:AlMg3有一些机械性能,如:
:AlMg3 prop:hasTensileStrength "300" .
:AlMg3 prop:hasYieldStrength "2" .
:alMg3 prop:hasDensity "2200" .
Run Code Online (Sandbox Code Playgroud)
如何为这些值设置单位?我的第一个想法是创建新的数据类型,例如:
unit:megaPascal rdf:type rdfs:datatype ;
rdfs:label "MPa" .
unit:Pascal rdf:type rdfs:datatype ;
rdfs:label "Pa" .
Run Code Online (Sandbox Code Playgroud)
然后像这样使用它们:
:AlMg3 prop:hasTensileStrength "300"^^unit:megaPascal .
:AlMg3 prop:hasYieldStrength "2"^^unit:Pascal .
Run Code Online (Sandbox Code Playgroud)
然后我想把这些单位联系起来:
unit:megaPascal prop:hasBaseUnit unit:Pascal .
unit:pascal prop:hasBaseSIUnit unit:kilogramPerMeterSecondSquared .
Run Code Online (Sandbox Code Playgroud)
这可能吗?单位是数据类型,我不能在它们之间放置数据类型属性,除了注释属性?是否有可能使这些单位个体(甚至是类)并使用它们之后的数据类型?
我看到了用于QUDT(数量,单位,尺寸和数据类型)的OWL本体,但我打算尝试创建一些更简单的东西.
我读过这篇博客文章,RDF模型的问题:空白节点,并且提到使用空白节点会使数据处理复杂化.
您能举例说明为什么使用空白节点很难执行SPARQL查询吗?我不明白空白节点的复杂性.你能解释一下存在变量的含义和语义吗?我不清楚RDF语义建议书1.5中给出的解释.空白节点作为存在变量.
我想知道,有没有办法通过指定的属性使用他们的API查找维基数据实体.例如,有很多实体具有Freebase ID属性(属性:P646).它是唯一标识符,我希望通过此标识符获取实体.
谁知道如何实现这一目标?
按照这些示例,我可以引用另一个 JSON 模式中声明的特定属性,并且一切都按预期进行,但我还没有找到一种方法,可以使用另一个基本模式的定义来扩展基本 JSON 模式,而不必显式引用每一个财产。
看起来这会很有用,但我还没有发现有迹象表明它可能或不可能。
想象一下基本模式things:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "http://example.com/thing.json",
"type": "object",
"additionalProperties": false,
"properties": {
"url": {
"id": "url",
"type": "string",
"format": "uri"
},
"name": {
"id": "name",
"type": "string"
}
},
"required": ["name"]
}
Run Code Online (Sandbox Code Playgroud)
如果我想要一个更具体的person模式来重用thing我可以这样做的两个属性:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "http://example.com/thing/person.json",
"type": "object",
"additionalProperties": false,
"properties": {
"url": {
"$ref": "http://example.com/thing.json#/properties/url",
},
"name": {
"$ref": "http://example.com/thing.json#/properties/name",
},
"gender": {
"id": "gender",
"type": "string",
"enum": …Run Code Online (Sandbox Code Playgroud) jsonschema linked-data json-schema-validator json-schema-defaults
如果我"George Bush"在维基百科上手动搜索,我会得到这个页面,其中列出了带有简短描述的同音异义词.
我想将我的搜索提供给api并获取以下信息:
只要我可以毫不含糊地解析它,我不介意获得更多.
我的目标是让一个网站的用户能够标记一个公共人物,但我想限制他们的选择并避免含糊不清,所以这个列表可能略有不同,任何其他具有api的体面数据库都可以.
我还没有弄清楚如何用维基百科或wikidata来做,我只是设法在我知道它的情况下对特定的id /页面进行查询,这不是这里的情况.
我发现关于这个问题的信息非常少。可解引用的 URI 和不可解引用的 URI 有什么区别?取消引用 URI 意味着什么?取消引用后 URI 会如何变化?
在维基百科上阅读有关链接数据时,据说:
使用 HTTP URI 以便可以查找这些内容(解释为“取消引用”)。
这听起来好像每个可以通过 HTTP URI 找到的个体(例如“可以查找”)都可以取消引用?但并非所有 URI 都是不可引用的。
rdf:seeAlso和 和有什么区别rdfs:seeAlso?
什么时候可以使用rdf:seeAlso,什么时候可以使用rdfs:seeAlso?
你能举出一些例子吗?
您可以在Linked MDB SPARQL Explorer中运行下面的查询。(最后一个变量)的值?imdbID包含来自三个可能域(freebase.com、rottentomatoes.com 或 imdb.com)之一的 IRI。我想知道如何应用filter这样的方法,仅保留来自 imdb.com 域的行。
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX dc: <http://purl.org/dc/terms/>
PREFIX movie: <http://data.linkedmdb.org/resource/movie/>
SELECT ?title ?date ?director ?imdbID
WHERE {
?film foaf:page ?imdbID.
?film dc:title ?title.
?film dc:date ?date .
?film movie:director ?directorURI.
?directorURI rdfs:label ?director .
}
Run Code Online (Sandbox Code Playgroud) linked-data ×10
rdf ×5
sparql ×4
semantic-web ×3
rdfs ×2
wikidata-api ×2
api ×1
blank-nodes ×1
hyperlink ×1
jsonschema ×1
linkedmdb ×1
ontology ×1
owl ×1
rdfa ×1
schema.org ×1
uri ×1
wikidata ×1