小编Nic*_*ett的帖子

如何获取Jena查询的所有主题?

假设我有一些jena查询对象:

String query = "SELECT * WHERE{ ?s <some_uri> ?o ...etc. }";
Query q = QueryFactory.create(query, Syntax.syntaxARQ);
Run Code Online (Sandbox Code Playgroud)

在查询中获取三元组的所有主题的最佳方法是什么?优选地,不必手动进行任何字符串解析/操作.

例如,给定一个查询

SELECT * WHERE {
    ?s ?p ?o;
       ?p2 ?o2.
    ?s2 ?p3 ?o3.
    ?s3 ?p4 ?o4.
    <http://example.com> ?p5 ?o5.
}
Run Code Online (Sandbox Code Playgroud)

我希望能够返回一些看起来像的列表

[?s, ?s2, ?s3, <http://example.com>]
Run Code Online (Sandbox Code Playgroud)

换句话说,我想要查询中所有主题的列表.即使只有那些变量或文字/ uris的主题也会有用,但我想查找查询中所有主题的列表.

我知道有方法可以返回结果变量(Query.getResultVars)和其他一些信息(参见http://jena.apache.org/documentation/javadoc/arq/com/hp/hpl/jena/query/Query.html),但是我似乎无法找到任何具体的查询主题(所有结果变量的列表也将返回谓词和对象).

任何帮助赞赏.

java semantic-web sparql jena

8
推荐指数
1
解决办法
1849
查看次数

如何从response.body中获取节点中'<img rel="nofollow noreferrer" src =''>'的绝对路径

所以我想使用request-promise来拉取页面的主体.一旦我有了页面,我想收集所有标签并获得这些图像的src数组.假设页面上的src属性具有相对路径和绝对路径.我想要一个页面上的imgs绝对路径数组.我知道我可以使用一些字符串操作和npm路径来构建绝对路径,但我想找到一种更好的方法.

var rp = require('request-promise'),
    cheerio = require('cheerio');

var options = {
    uri: 'http://www.google.com',
    method: 'GET',
    resolveWithFullResponse: true
};

rp(options)
  .then (function (response) {
    $ = cheerio.load(response.body);
    var relativeLinks = $("img");
    relativeLinks.each( function() {
        var link = $(this).attr('src');
        console.log(link);
        if (link.startsWith('http')){
            console.log('abs');
        }
        else {
            console.log('rel');
        }
   });
});
Run Code Online (Sandbox Code Playgroud)

结果

  /logos/doodles/2016/phoebe-snetsingers-85th-birthday-5179281716019200-hp.gif
  rel
Run Code Online (Sandbox Code Playgroud)

html javascript node.js cheerio

5
推荐指数
1
解决办法
2841
查看次数

使用“--fix”标志自动化 ESLint 会出现哪些问题?

使用 --fix 标志来自动化 ESLint 是一个好的做法,还是从长远来看会产生问题?

例如,我npm在脚本中使用 and "prestart"。这意味着每次运行时 ESLint 都会运行npm start并修复代码中任何可修复的错误。这会导致什么问题?

javascript npm eslint

5
推荐指数
1
解决办法
1234
查看次数

哪些编程语言是常规的?

对任何"为什么不是这个正则表达式工作html的典型回应!?!" 问题是"因为HTML不是常规语言".

所以,我很好奇是否有人有常用语言的常用编程语言列表,因此适用于正则表达式匹配.我知道有一些方法可以确定一种语言是否规则(逐个案例),但对于复杂的语言,证明也可能非常复杂.我想也许快速检查一下语言可能会很有用.

我也知道你可以用非常规语言做正则表达式,但它们并不总是可靠的(html示例).

regex language-agnostic programming-languages regular-language

3
推荐指数
1
解决办法
1578
查看次数

如何使用ElementWalker动态地将三元组添加到Jena查询?

假设我有一些jena查询对象:

String query = "SELECT * WHERE{ ?s <some_uri> ?o ...etc. }";
Query q = QueryFactory.create(query, Syntax.syntaxARQ);
Run Code Online (Sandbox Code Playgroud)

我想使用ElementWalker并在查询中添加三元组,如下所示:

给出一个查询

SELECT * WHERE {
    ?s ?p ?o;
       ?p2 ?o2.
    ?s2 ?p3 ?o3.
}
Run Code Online (Sandbox Code Playgroud)

我希望添加一个三元组查询看起来像:

    SELECT * WHERE {
    ?s ?p ?o;
       ?p2 ?o2.
 -->?s <some_url> "value". //added
    ?s2 ?p3 ?o3.
}
Run Code Online (Sandbox Code Playgroud)

我知道有很多方法可以添加到顶层(Jena Tutorial),但是当我使用ElementWalker遍历它们时,我想以某种方式添加三元组:

ElementWalker.walk(query.getQueryPattern(), new ElementVisitorBase(){

        public void visit(ElementPathBlock el) {

            // when it's a block of triples, add in some triple
            ElementPathBlock elCopy = new ElementPathBlock();
            Iterator<TriplePath> triples …
Run Code Online (Sandbox Code Playgroud)

java semantic-web sparql jena

1
推荐指数
1
解决办法
818
查看次数

在将nodejs应用程序部署到bluemix时如何指定npm版本?

我创建的运行时依赖使Node.js应用范围的包在我的package.json:

"dependencies": {
    "@shawnzhu/mybot" : "latest",
    ...
},
"engines": {
    "npm": ">2.0.0",
    "node": "0.10.38"
},
Run Code Online (Sandbox Code Playgroud)

我也有一个自定义.npmrc指向@shawnzhu我的私人npm注册表的范围.

目前它在部署到heroku时可以工作,它将npm升级到v2.7.x. 但是,a cf pushto bluemix失败,控制台输出显示:

registry "@shawnzhu/mybot" not found.
Run Code Online (Sandbox Code Playgroud)

在查看整个控制台输出后,我意识到它使用npmv1.4.28,它不支持作用域包.

如何在bluemix的node.js应用程序中获取npm v2.0.0 +?

node.js npm ibm-cloud

1
推荐指数
1
解决办法
1859
查看次数