0

在 Python 中,如何将 RDF/SKOS 分类数据转换为仅表示概念层次结构的字典?

字典必须具有以下格式:

{ 'term1': [ 'term2', 'term3'], 'term3': [{'term4' : ['term5', 'term6']}, 'term6']}

我尝试使用带有 JSON 插件的 RDFLib,但没有得到我想要的结果。

4

1 回答 1

1

我不是一个 Python 用户,也没有使用过 RDFLib,但我只是从SKOS 词汇表页面中提取了 SKOS 和词汇表。我不确定词汇表中有哪些概念(RDFS 或 OWL 类),也不知道它们的层次结构是什么,因此我使用 Jena 的 ARQ 运行了一个 SPARQL 查询来选择类及其子类。我没有得到任何结果。(当然有定义的类,但没有子类。)然后我决定同时使用 SKOS 和 SKOS-XL 词汇表,并询问属性和子属性以及类和子类。这是我使用的 SPARQL 查询:

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
SELECT ?property ?subproperty ?class ?subclass WHERE { 
  { ?subclass rdfs:subClassOf ?class }
  UNION 
  { ?subproperty rdfs:subPropertyOf ?property }
}
ORDER BY ?class ?property

我得到的结果是

-------------------------------------------------------------------------------------------------------------------
| property                | subproperty             | class           | subclass                                  |
===================================================================================================================
| rdfs:label              | skos:altLabel           |                 |                                           |
| rdfs:label              | skos:hiddenLabel        |                 |                                           |
| rdfs:label              | skos:prefLabel          |                 |                                           |
| skos:broader            | skos:broadMatch         |                 |                                           |
| skos:broaderTransitive  | skos:broader            |                 |                                           |
| skos:closeMatch         | skos:exactMatch         |                 |                                           |
| skos:inScheme           | skos:topConceptOf       |                 |                                           |
| skos:mappingRelation    | skos:broadMatch         |                 |                                           |
| skos:mappingRelation    | skos:closeMatch         |                 |                                           |
| skos:mappingRelation    | skos:narrowMatch        |                 |                                           |
| skos:mappingRelation    | skos:relatedMatch       |                 |                                           |
| skos:narrower           | skos:narrowMatch        |                 |                                           |
| skos:narrowerTransitive | skos:narrower           |                 |                                           |
| skos:note               | skos:changeNote         |                 |                                           |
| skos:note               | skos:definition         |                 |                                           |
| skos:note               | skos:editorialNote      |                 |                                           |
| skos:note               | skos:example            |                 |                                           |
| skos:note               | skos:historyNote        |                 |                                           |
| skos:note               | skos:scopeNote          |                 |                                           |
| skos:related            | skos:relatedMatch       |                 |                                           |
| skos:semanticRelation   | skos:broaderTransitive  |                 |                                           |
| skos:semanticRelation   | skos:mappingRelation    |                 |                                           |
| skos:semanticRelation   | skos:narrowerTransitive |                 |                                           |
| skos:semanticRelation   | skos:related            |                 |                                           |
|                         |                         | _:b0            | <http://www.w3.org/2008/05/skos-xl#Label> |
|                         |                         | skos:Collection | skos:OrderedCollection                    |
-------------------------------------------------------------------------------------------------------------------

看起来 SKOS 中根本没有太多的概念层次结构。这能解释为什么你以前没有得到你想要的结果吗?

于 2013-05-11T13:21:43.640 回答