我试图绕过Node.js流,而不是我对JavaScript和节点很新,我真正得到的最后一种语言是Perl和PHP :-D
我已经阅读了Buffer/Streams文档@ nodejs.org,观看了James Halliday @ LXJS,阅读了他的流手册和Thorsten Lorenz 事件流帖子.我开始了解基础知识:)
我处理在RDF中序列化的数据(既不是JSON也不是XML).我设法获取数据(通过请求在实际代码中)并使用rdfstore
模块将其解析为JS对象.
到目前为止我这样做:
s.createReadStream('myRDFdata.ttl').pipe(serialize()).pipe(process.stdout);
Run Code Online (Sandbox Code Playgroud)
serialize()
现在解析序列化代码的工作在哪里.我使用through
模块来连接流.
现在我有更多的方法(不是真正的函数声明,但我希望你明白这一点):
getRecipe(parsedRDF)
- >获取解析后的RDF(作为JavaScript对象)并告诉我如何使用它createMeal(parsedRDF, recipe)
- >从上面获取解析的RDF和配方,并从中创建一个新的RDF对象getRecipe
必须在浏览器中进行用户交互)我喜欢通过管道将它链接在一起的想法,以便在我稍后增强代码时获得更高的灵活性.但是我不希望每次都将它序列化为RDF序列化,而只是发送JS对象.从我在文档中读到的内容中,我可以使用该stringify
模块从每个步骤中获取一个字符串,以便将其传递给下一步.但:
getRecipe
必须首先调用依赖,输出也是输入createMeal
.是否有模块可以帮助我?我希望这表明我正在尝试做什么,如果不是,我会尝试提供更多细节/改述.
更新:睡了之后我想出了更多的东西:
stringify
我将简单地在步骤之间传递正式的RDF序列化,而不是使用我getRecipe
,并createMeal
通过简单地添加一些信息getRecipe
到parseRDF
,这可以很容易地与RDF做不破坏原始数据模型.但我仍然有兴趣知道我是否可以使用管道来处理这样的依赖关系我主要在处理查询时使用SPARQL SELECT进行调试,但最后我想以CONSTRUCT方式使用最终结果; 因为我想使用图形而不是键/值查询结果.
我还没有得到(并且似乎无法找到搜索引擎/文档)是我可以使用这样的功能.作为一个例子,我使用属性路径来连接我进入"超级字符串"的标题,我后来用它来构建Lucene索引以提高纯文本搜索质量:
PREFIX dc: <http://purl.org/dc/elements/1.1/>
SELECT (group_concat(?title ; separator = " ") AS ?fancytitle) WHERE {
GRAPH ?graph {
<http://data.staatsarchiv-bs.ch/id/archivalresource/CH-000027-1/pa-633c-a-312-fasc-163> dc:relation+ ?relation .
?relation dc:title ?title .
}
}
Run Code Online (Sandbox Code Playgroud)
现在我想和?fancytitle
新三人一样
<http://data.staatsarchiv-bs.ch/id/archivalresource/CH-000027-1/pa-633c-a-312-fasc-163> <fancytitle> ?fancytitle .
Run Code Online (Sandbox Code Playgroud)
所以我可以将它直接存储在一个新的图表中.这可能吗?我玩了一些查询,但无法让它被SPARQL处理器接受.仅供我使用Fuseki.
您可以在我的SPARQL端点上试用它
我成功地设法使用标签将maven项目中的JAR部署到Github.但是,当前配置假定JAR的文件名始终保持不变,而不是.当我执行新版本时,这将相应地更改,因此部署将失败.
有没有办法在YAML文件中使用通配符?从我在Stackoverflow和Web上找到的内容来看,YAML不支持通配符.我没有在没有操纵.travis.yml文件的情况下找到另一个黑客,我想避免.
版本字符串可用于pom.xml
.
目前.travis.yml:
language: java
jdk:
- openjdk7
deploy:
provider: releases
api_key:
secure: asfdsdflkjsdflkj...
file: target/helloci-1.0-SNAPSHOT.jar
on:
repo: ktk/helloci
all_branches: true
tags: true
Run Code Online (Sandbox Code Playgroud)
我肯定能以某种方式编写脚本但是Travis CI会更改自己的配置文件,我不确定这是否会起作用,b)是个好主意.
Repo我正在玩:https://github.com/ktk/helloci
我有一堆带有附加属性的 RDF 数据立方体观察,在我的例子中是记录该值的日期。
例如,该模式很简单(省略其他维度/度量/属性):
<obs1> a qb:Observation ;
my:lastupdate '2017-12-31'^^xsd:date ;
qb:dataSet <dataSet1> .
<obs2> a qb:Observation ;
my:lastupdate '2016-12-31'^^xsd:date ;
qb:dataSet <dataSet1> .
<obs2_1> a qb:Observation ;
my:lastupdate '2017-12-31'^^xsd:date ;
qb:dataSet <dataSet2> .
<obs2_2> a qb:Observation ;
my:lastupdate '2015-12-31'^^xsd:date ;
qb:dataSet <dataSet2> .
Run Code Online (Sandbox Code Playgroud)
qb:DataSet
所以我的店里有很多。现在我想找出my:lastupdate
每个数据集的最后 X 值。假设我想要每个特定数据集的最后 5 个值。
对于一个特定的数据集,我可以非常轻松地做到这一点:
SELECT * WHERE {
?observation my:lastupdate ?datenstand ;
qb:dataSet <dataSet1>
} ORDER BY DESC(?datenstand) LIMIT 5
Run Code Online (Sandbox Code Playgroud)
但如果这在每个数据集的单个 SPARQL 查询中完全可能的话,我有点迷失了。我尝试了与子选择、LIMIT 和 GROUP BY 组合的各种组合,但没有任何结果导致我正在寻找的结果。