问题标签 [rml-rdf]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
json - 用于 json 中数组的 RML 映射器
我正在尝试将此 JSON 文件映射到 RDF,但我可能无法正确迭代以获取度量数组内部的“值”的值。
JSON:
RML:
谢谢你的帮助,基亚拉
java - 如何在 CARML 中使用 JSONata?
请问是否有人尝试在CARML(https://github.com/carml/carml )中使用JSONata4Java?
它需要实现getSourceIterator()
和getExpressionEvaluatorFactory()
,它们位于com.taxonic.carml.logical_source_resolver包的LogicalSourceResolver接口中。
有什么想法/方向吗?
xml - 如何使用 RML 映射 xml 文件的子元素以创建 RDF?
我想使用 RML 映射创建一个 RDF。XML 部分如下所示。我为“属性”和“FB”制作了三重映射。其中一个 FB 有一个子“属性”,但结果是,每个“FB”三元组都有“属性”。是否有任何解决方案可以使子“属性”仅对一个“FB”元素唯一?
映射:
mapping - RML 中是否有针对输入的一个数据元素(单元格)中的多个复杂实体的解决方案,而无需清理输入数据?
我有一个人名列表,例如,除了(Person
是列名):
请注意,多人以不同的方式被提及,并且以不同的方式分隔。
我想使用 RDF 映射语言https://rml.io/创建以下 RDF而无需清理(或更改)输入数据:
请注意,输入数据中提到了 Arthur Harris 两次,但只创建了一个 RDF 资源。
我使用函数本体https://fno.io/并创建了一个自定义 java 方法。根据参数mode
返回人员属性列表(例如,仅 URI 或仅名字)。
假设该getAllPersons
方法正确地从给定字符串中提取人员,如上面的那些。为了从一个单元格中提取多个人,我这样调用该getPersons
函数subjectMap
:
我使用 RMLMapper https://github.com/RMLio/rmlmapper-java,但是,它只允许为每一行返回一个主题,请参阅https://github.com/RMLio/rmlmapper-java/blob/master/src /main/java/be/ugent/rml/Executor.java#L292。这就是为什么我写了一个List<ProvenancedTerm> getSubjects(Term triplesMap, Mapping mapping, Record record, int i)
方法并相应地替换了它。这导致以下结果:
我知道此扩展与 RML 规范https://rml.io/specs/rml/不兼容,其中说明了以下内容:
它[三元组映射] 必须只有一个主题映射,它指定如何为逻辑源(相应的数据库/CSV/XML/JSON 数据源)的每一行/记录/元素/对象生成主题。
如果我继续添加名字resp。姓氏,predicateObjectMap
可以添加以下内容:
因为predicateObjectMap
为每个主题评估 a 并且现在返回多个主题,所以每个 person 资源都将获得每个人的名字。为了更清楚,它看起来像这样:
我的问题是:对于输入的一个数据元素(单元格)中的多个复杂实体(例如具有名字和姓氏的人),RML 中是否有解决方案或变通方法,而无需清理(或更改)输入数据?
也许这个问题与我的问题有关:https ://www.w3.org/community/kg-construct/track/issues/3
如果这样的用例不打算通过像 RML 这样的映射框架来解决,那也很好。如果是这种情况,还有什么替代方案?例如,生成 RDF 的手工提取管道?
rdf - 如何从源数据生成语言标签
我正在使用RMLMapper并想要映射模式,例如
至
我有(跳过不相关的代码块)
哪个有效,但适用于英语。如何从 /lom/general/title/string@language 生成语言标签来替换“en”?
我试过了
不高兴“语言标签“node1ef4p39f8x5”不符合 BCP 47 标准”
xml - 使用 RMLMapper 将 XML 嵌套到 Turtle 映射
我正在尝试在 XML 和 Turtle 之间创建嵌套映射。为此,我正在使用 RMLMapper v4.9.0。
这是我要映射的示例 XML 文件:
这是我想生成的 Turtle 输出:
我怎样才能实现这种类型的嵌套/格式?
通过将地址三元组的主题创建为rr:termType rr:BlankNode
.
但是,我希望主题不要重复,并且输出方括号而不是 BlankNodes。
我使用了以下地图:
xml - 递归遍历节点的 RML 映射,每次都附加父属性
我正在尝试将 XML 源映射到 RDF,并且想知道如何在每次跟踪父属性的同时进行递归遍历。在所示示例中,我希望Person
提取所有节点,并将name
每个父节点的 附加到当前节点。考虑所有父名称是必要的,因为节点名称可能不是唯一的。(grandChild1
在例子中看两次)
请注意,我事先不知道嵌套可以进行多少级,因此为每个级别添加一个 TriplesMap 不是一个可行的选择。
以下是一个简化的 XML 示例、到目前为止我创建的 RML 映射、使用RMLMapper生成的当前 RDF 输出,以及我期望的 RDF 输出。
数据 映射 当前RDF 预期的 RDF感谢您为解决此问题提供的任何帮助。提前致谢!
json - rml / r2rml 中是否有任何方法可以将值作为 IRI?
我正在使用RMLMapper将 JSON 转换为 RDF。存储在 JSON 中的值之一是 URL。我想以此作为 RDF 语句对象的 IRI 的基础。
输入是
我希望语句主题的 IRI 是http://example.org/345299#item
,例如<http://example.org/345299#item> a <http://schema.org/Thing> .
我试过了
给出rr:template "{documentId.value}#item"
不产生有效 IRI 的错误。
为@base 提供一个值会给出一个有效的IRI,但它是在基础上附加了url 编码值的基础,例如<http://example.org/http%3A%2F%2Fexample.org%2Fjobposts%2F345299#item>
那么在 r2rml / rml 中是否有任何方法可以获取一个值并将其用作 IRI?或者将字符串转换为 IRI?
csv - RML 和 FnO 无法一起运行
我正在尝试在 RML 映射器中使用 FnO 函数(我喜欢在这里string_split
做类似的事情)。这是我的文件夹的样子:
我正在执行java -jar "rmlmapper.jar" -m mapping-cuisines.ttl -o output-cuisines.ttl -s turtle
但是,当我尝试实现 a 时,<#FunctionMap>
我收到以下错误消息:
对我来说没有任何意义。根据 git repo,这些函数是从我执行 rmlmapper 的地方动态加载的。
数据集:https ://mega.nz/file/LsJAQRaR#84lfASPXVA08zm0RbuRfNvR7tx-vklS82D1KBGhhdA8
我的代码:
我的functions.ttl: