Как перемаркировать узлы в графике rdf (.ttl) в визуальном представлении в python? - PullRequest
0 голосов
/ 13 марта 2020

Я хочу получить визуальное представление графика rdf (.ttl). Я использую этот код (python):

# print the ttl sources as a graph
def nt_to_graph(rel_path):
  g = Graph()
  g.parse(rel_path, format="ttl")
  g.bind("food", "http:<some_url>/food#")

  G = rdflib_to_networkx_multidigraph(g)

  # Plot Networkx instance of RDF Graph
  pos = nx.spring_layout(G, scale=2)
  edge_labels = nx.get_edge_attributes(G, "r")
  nx.draw_networkx_edge_labels(G, pos, edge_labels)
  nx.draw(G, with_labels=True)
  plt.show()

Узлы имеют следующие метки: "http:some_url / food #".

I хочу, чтобы метка узла была просто "еда".

Как я могу это сделать?

Спасибо.

1 Ответ

1 голос
/ 15 марта 2020

Обычно вы называете класс RDF следующим образом:

<some_class_uri>
  a rdfs:Class ;
  rdfs:label "Some Class" ;
  ...

И свойства и Именованные лица аналогично.

Префикс, который вы цитируете здесь, food: http: / food # > это не метка, а отображение префикса компактного URI. Такой префикс позволит сериализаторам RDF, таким как сериализатор Turtle rdflib, уменьшить

<http:<some_url>/food#Something> a rdfs:Class ;

до

food:Something a rdfs:Class ;

Но это ничего не даст для меток.

Я предлагаю вам создать метки в вашем RDF как фактические свойства узлов (классы, свойства или именованные лица), а затем извлечь их для подключения к сети x по мере необходимости.

...