我一直在考虑如何根据HATEOAS原则使用JSON-LD来驱动应用程序.
例如,我可以有一个简单的入口点对象,它定义了一个链接:
{
"@context": {
"users": { "@id": "http://example.com/onto#users", "@type": "@id" }
},
"@id": "http://example.com/api",
"users": "http://example.com/users"
}
Run Code Online (Sandbox Code Playgroud)
并且#users谓词将被定义为Link使用Hydra:
{
"@context": "http://www.w3.org/ns/hydra/context.jsonld",
"@id": "http://example.com/onto#users",
"@type": "Link"
}
Run Code Online (Sandbox Code Playgroud)
到目前为止一切都很好:应用程序获取资源,然后onto#users将解除引用资源以发现语义.
问题是实现者应该如何users从JSON-LD文档中发现属性的URI .当然,@context在我的示例中已明确定义,但该URI可以声明为QName:
"@context": {
"onto": "http://example.com/onto#",
"users": { "@id": "onto:users", "@type": "@id" }
}
Run Code Online (Sandbox Code Playgroud)
或者可以使用外部上下文或多个/嵌套上下文.
Javacript JSON-LD库中是否有一个函数,它会返回任何给定属性的绝对URI?或者有一种简单的方法可以找到它吗?无论@context结构如何,这种方式都可以发挥作用?就像是
var jsonLd = /* some odc */
var usersUri = jsonLd.uriOf('users');
expect(usersUri).toBe('http://example.com/onto#users');
Run Code Online (Sandbox Code Playgroud)
换句话说,我认为我正在寻找一个统一的API来阅读@context.
我正在 TeamCity 中构建 GitHub 拉取请求。我将 git VCS root 中的分支规范设置为+:refs/(pull/*)/head. 我正在查看代理上的消息来源。
通过这样的设置,我发现 TeamCity 不会获取标签 - .git/refs/tags 文件夹为空。
这是为什么?
Shadow DOM 1.0版将完全替换<content>标签<slot>.网上有一些例子,我找不到相关的讨论来证明这一改变是正确的.
有什么问题<content>,哪个<slot>会解决?毕竟新设计完全不同.
我正在使用TopBraid Composer中的SPARQL查询来获取每个月的数据质量规则数.
我有一个开始日期和结束日期,但我需要获取开始日期和结束日期之间的所有月份,以便我可以获得适用于该持续时间的数据质量规则的计数.
我当前的查询和结果如下 - :
SELECT *
WHERE
{
?Rules CDE:Data_Quality_Rule_added_on ?Date1.
?Rules CDE:Data_Quality_Removed_On ?Date2
BIND(month(?Date1) AS ?Month1)
BIND(month(?Date2) AS ?Month2)
BIND(smf:duration("mon",?Date1,?Date2) AS ?dur)
}
LIMIT 5
| [Rules] | Date1 | Date2 | Month1 | Month2 | dur
| CDE:Data_Quality_Rule_13 | 2016-01-28 | 2016-09-15 | 01 | 09 | 8
| CDE:Data_Quality_Rule_16 | 2016-02-29 | 2016-08-08 | 02 | 08 | 5
| CDE:Data_Quality_Rule_18 | 2016-05-15 | 2016-10-31 | 05 | 10 | 6
| …Run Code Online (Sandbox Code Playgroud) 我有一个看似简单的用例.有一个ICsvReader组件.我们在这里简单地将它命名为Reader.我们加载了一组已知的CSV文件,其中一些有标题,有些则没有.目前有多个读者:Reader_Skips1Row,Reader_Skips2Rows等.
有没有办法只注册一个组件并让Windsor查看组件密钥,剥离"_Skips ..."部分并解析所需的组件并设置相关属性?
我试过没有运气的subresolver和设施.
编辑
是的,只有一个实现,但它被用作依赖项并配置为按名称解析.阅读器在代码中配置
Component.For<ICsvReader>()
.ImplementedBy<CommaSeparetedCsvReader>()
.DependsOn(new { SkipHeader = true, HeaderRowsToSkip = 2 } )
.Named("CommaSeparetedCsvReader_Skips2Rows")
.Lifestyle.Transient
Component.For<ICsvReader>()
.ImplementedBy<CommaSeparetedCsvReader>()
.DependsOn(new { SkipHeader = true, HeaderRowsToSkip = 1 } )
.Named("CommaSeparetedCsvReader_Skips1Row")
.Lifestyle.Transient
Component.For<ICsvReader>()
.ImplementedBy<CommaSeparetedCsvReader>()
.Named("CommaSeparetedCsvReader")
.Lifestyle.Transient
Run Code Online (Sandbox Code Playgroud)
它们用作处理器类中的依赖项.它以XML格式配置,因此可以在运行时进行操作
<component id="Processor
type="Processor">
<parameters>
<reader>CommaSeparetedCsvReader_Skips2Rows</reader>
</parameters>
</component>
Run Code Online (Sandbox Code Playgroud)
理想情况下,我只想注册CommaSeparetedCsvReader组件,但是当尝试解析CommaSeparetedCsvReader_Skips2Rows时,它应该去除后缀,解析它并相应地更改属性.
是否有可能以某种方式修改Resolve()行为?
谢谢,汤姆
我正在使用fetch API来制作类似于以下代码段的跨域请求
window.fetch('http://data.test.wikibus.org/magazines', { method: 'get'})
.then(function(response) {
var linkHeader = response.headers.get('Link');
document.querySelector('#link-header').innerText = 'The Link header is: ' + linkHeader;
});Run Code Online (Sandbox Code Playgroud)
<span id="link-header"></span>Run Code Online (Sandbox Code Playgroud)
如您所见,虽然在响应中返回了Link标头(以及其他一些标头),但仍无法访问它.我认为这是一个CORS问题,因为在本地请求中所有标头都是可访问的.
这是设计的吗?有没有解决这个问题的方法?
我按照Polymer官方的嵌套模板示例,重复第二个模板.
我的数组数据类似于:
[
{
"title": "My title book",
"author": "The author",
"votes": [
{ "bad": 0 },
{ "regular": 2 },
{ "good": 201 },
{ "excellent": 458 }
]
},
{
"title": "My title book",
"author":"The author",
"votes": [
{ "bad": 0 },
{ "regular": 2 },
{ "good":201 },
{ "excellent": 458 }
]
}
]
Run Code Online (Sandbox Code Playgroud)
这是我的聚合物元素代码:
<template is="dom-repeat" items="{{books}}" as="book">
<div><b>Title: </b><span>{{book.title}}</span></div>
<div><b>Author: </b><span>{{book.author}}</span></div>
<div>
<p>Votes:</p>
<template is="dom-repeat" items="{{book.votes}}" as="vote">
<b>Bad: </b><span>{{vote.bad}}</span>
<b>Regular: </b><span>{{vote.regular}}</span>
<b>Good: </b><span>{{vote.good}}</span>
<b>Excellent: …Run Code Online (Sandbox Code Playgroud) 我有这些数据
@prefix : <http://test.example/> .
:alice :likes :beethoven.
:alice :likes :verdi.
:sofia :likes :beethoven.
:sofia :likes :verdi.
:sofia :likes :rossini.
:ania :likes :verdi.
:ania :likes :beethoven.
:ania :likes :david.
:david :likes :ania.
:david :likes :beethoven.
:david :likes :verdi.
:antonino :likes :verdi.
:antonino :likes :mozart.
:weirdo :likes :katyperry.
:beethoven a :recommendable.
:verdi a :recommendable.
:rossini a :recommendable.
:katyperry a :recommendable.
:mozart a :recommendable.
Run Code Online (Sandbox Code Playgroud)
然后我进行查询以获得喜欢与特定用户相同的项目的用户
select ?anotherUser (COUNT(?anotherItem) as ?countOfItems) WHERE {
values ?user {:ania}
?anotherUser :likes ?anotherItem.
filter (?anotherUser != ?user) …Run Code Online (Sandbox Code Playgroud)