С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 31.05.2016
Сообщений: 4

Python и парсинг owl-файлов

01.06.2016, 14:31. Показов 3034. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток. Стоит следующая задача. Есть файл, который был создан в программе Protege. Пример конечного файла приложен. Из данного файла нужно построить и визуализировать граф. С визуализацией проблем нет. Есть проблема парсинга файла. То есть получить граф. Подскажите, с чего начать и куда копать, чтобы получить конечный результат. Внутри owl-файла все записано с помощью rdfs-формата.

Также пример графа, который строится в protege (кликабельно).
Вложения
Тип файла: txt IIEP.owl.txt (18.5 Кб, 16 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.06.2016, 14:31
Ответы с готовыми решениями:

Как в Owl-carousel вернуть ширину блока owl-item по-умолчанию?
Я задал ширину owl-item равную width: calc(100%/3), чтобы блоки смотрелись, как в макете. В медиа запросе @media (max-width: 1200px)...

Парсинг python
Хотел запарсить одну сайт,написал код.Правильно? import requests from bs4 import Beautifulsoup as BS page = 1 while True: ...

Парсинг на Python
Помогите реализовать парсер, который скачивает названия категорий и ссылки на изображения по адресу https://myspar.ru/catalog/

6
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
01.06.2016, 14:43
ds_marinin, на пример с помощью какой нибудь готовой библиотеки, вроде https://github.com/RDFLib/rdflib
или другой.
В общем открываешь гугл и pypi и там ищешь библиотеку, которая будет работать и понравится тебе, вот и все.
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,181
Записей в блоге: 6
02.06.2016, 12:53
ds_marinin, это же xml, стандартный формат.
0
0 / 0 / 0
Регистрация: 31.05.2016
Сообщений: 4
06.06.2016, 00:15  [ТС]
Цитата Сообщение от alex925 Посмотреть сообщение
Спасибо большое за подсказку. Но пока времени не хватает на её разбор.
Цитата Сообщение от dondublon Посмотреть сообщение
это же xml, стандартный формат.
Да, верно. До этого, с xml мало было дел, поэтому и пишу здесь. Как я понял, парсинг затрагивается с областью имен. Для этих целей я пока использую стандартную библиотеку пайтона xml.etree.ElementTree. Искать элементы получается. Но теперь два вопроса.
1. Как получать область имен независимо от файла. То есть когда любой файл на вход подается.
2. И не доконца понятно, как с помощью этой библиотеки выцепить все классы и их подклассы. Я понимаю, надо уходить в рекурсию? Или же есть варианты проще?

И еще такой вопрос. В какую сторону копать, чтобы получить что-то вроде, что на скрине во вложениях?
0
0 / 0 / 0
Регистрация: 31.05.2016
Сообщений: 4
06.06.2016, 00:21  [ТС]
Вот само вложение.
Миниатюры
Python и парсинг owl-файлов  
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,181
Записей в блоге: 6
06.06.2016, 07:45
Цитата Сообщение от ds_marinin Посмотреть сообщение
1. Как получать область имен независимо от файла. То есть когда любой файл на вход подается.
Непонятный вопрос. Если область имён описывается в файле - то никак. Если в ином источнике - то оттуда и получайте.

Цитата Сообщение от ds_marinin Посмотреть сообщение
2. И не доконца понятно, как с помощью этой библиотеки выцепить все классы и их подклассы. Я понимаю, надо уходить в рекурсию? Или же есть варианты проще?
Не знаю, тут надо знать, что у вас в файле, что там с глубиной дерева. Если глубина ограничена и небольшая - можно без рекурсии.

Цитата Сообщение от ds_marinin Посмотреть сообщение
И еще такой вопрос. В какую сторону копать, чтобы получить что-то вроде, что на скрине во вложениях?
Имеется в виду, gui-шное представление? Можно воспользоваться Qt-шными моделями. Правда, придётся учиться с ними работать, но, ПММ, оно того стоит.
1
0 / 0 / 0
Регистрация: 31.05.2016
Сообщений: 4
09.06.2016, 14:48  [ТС]
dondublon, большое спасибо за разъяснения, немного поразбиравшись, нашел ответы и на область имен, и рекурсивность, и представления данных. Всё ушло в rdflib и networkX(построение графа)!

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import rdflib
import re
g=rdflib.Graph()
 
Source = open ('V1.owl', encoding = "utf-8")
Source_Txt = ''
for line in Source.readlines():
    Source_Txt+=line
 
g.parse(data = Source_Txt,format="application/rdf+xml")
 
FILE = open ('text.txt', 'w')
 
for s,p,o in g:
    p = re.sub ("\S*#", "", p)
    s = re.sub ("\S*#", "", s)
    o = re.sub ("\S*#", "", o)
    FILE.write (str(s)+"  "+str(p)+"  "+str(o)+"\n")
Полученный файл (text.txt)
Обрабатываемый файл (V1.owl)

После обработки в полуенном файле встречаются строки типа (субъект - предикат - объект):
N11ce5e8df8284fe791a5c2ec44efe986 someValuesFrom Компетенция

Интересует именно набор символов, так как в исходном файле для обработки такое не встречается.
Кто может подсказать, что это может быть такое? Вроде, с кодировкой проблем нет...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.06.2016, 14:48
Помогаю со студенческими работами здесь

Парсинг на Python
Спарсить первые два абзаца со странички http://www.pythonscraping.com/pages/warandpeace/chapter1-ru.txt с правильной кодировкой и сохранить...

Парсинг с Python
Подскажите пожалуйста - что делать если классы\id одинаковые во многих блоках, но данные содержащиеся в них разные. Надо из каждого...

Парсинг python
Всем привет, уважаемые спецы, мне для парсинга данных нужно получить количество страниц вот на этом сайте, цифры указаны внизу пагинация....

Парсинг на Python
Дополнить парсер возможность вывода ссылок со всех url, которые попадаются на странице https://docs.python.org/3/library/index.html ...

Парсинг Python
Задача запарсирсить странички обявление страницу в https://krisha.kz/prodazha/kvartiry/ Надо запарсить цену и ссылку. не смог запарсить их ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru