RDF / SKOS概念层次结构为Python字典

时间:2013-05-10 22:15:04

标签: python dictionary rdf

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

字典必须具有以下格式:

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

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

1 个答案:

答案 0 :(得分:1)

我不是一个Python用户,我没有使用过RDFLib,但我只是从SKOS vocabularies page中提取了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中没有太多的概念层次结构。这可以解释为什么你之前没有得到你想要的结果吗?