如何用Turtle语法在标签中拼接全称与缩写?
首先,Turtle本身是静态的RDF序列化格式,不支持动态拼接属性值的语法,所以没办法在Turtle里直接通过引用ex:fullForm和ex:abbreviation的值来自动生成拼接后的rdfs:label。你有两种处理方式:
1. 手动直接编写Turtle
如果实例数量不多,直接把拼接好的字符串写进rdfs:label即可,示例代码如下:
@prefix ex: <http://example.org/> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . ex:NASA a ex:Organization ; rdfs:label "National Aeronautics and Space Administration (NASA)" ; ex:fullForm "National Aeronautics and Space Administration" ; ex:abbreviation "NASA" .
2. 用SPARQL UPDATE自动化批量处理
如果有大量需要处理的实例,手动编写效率太低,可以用SPARQL UPDATE语句,通过CONCAT函数自动拼接ex:fullForm和ex:abbreviation的值,生成对应的rdfs:label。
示例SPARQL UPDATE语句
PREFIX ex: <http://example.org/> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> INSERT { ?org rdfs:label ?fullWithAbbr } WHERE { ?org a ex:Organization ; ex:fullForm ?full ; ex:abbreviation ?abbr . BIND(CONCAT(?full, " (", ?abbr, ")") AS ?fullWithAbbr) }
执行方式
你可以用支持SPARQL UPDATE的工具(比如Apache Jena的命令行工具、Blazegraph、Stardog等)加载你的TTL文件,然后执行这条UPDATE语句,就能自动给所有带ex:fullForm和ex:abbreviation的ex:Organization实例生成符合要求的rdfs:label。
内容的提问来源于stack exchange,提问作者Foad S. Farimani
相关产品推荐
相关产品推荐

