Запрос SPARQL дает неожиданный результат

Для Вашего третьего вопроса возможно, trace модуль - то, в чем Вы нуждаетесь:

>>> def y(a): return a*a
>>> def x(a): return y(a)
>>> import trace
>>> tracer = trace.Trace(countfuncs = 1)
>>> tracer.runfunc(x, 2)
4
>>> res = tracer.results()
>>> res.calledfuncs
{('', '', 'y'): 1, ('', '', 'x'): 1}

res.calledfuncs содержит функции, которые были вызваны. Если Вы определяете countcallers = 1 при создании трассировщика, можно получить отношения вызывающей стороны/вызываемого. Посмотрите документы trace модуль для получения дополнительной информации.

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

7
задан RobV 11 August 2014 в 16:22
поделиться

2 ответа

Я не думаю, что вы можете использовать QName в значении атрибута XML; например, значение rdf: около . Итак, рассмотрите эту строку из вашего файла RDF / XML:

 <bibo:Journal rdf:about="ex:bibdienst">

Я думаю, что на самом деле здесь говорится о том, что URI субъекта - ex: bibdienst. Это синтаксически допустимый URI, но это не тот же URI, который отображается как объект тройки, соответствующей этой строке:

7
ответ дан 6 December 2019 в 19:38
поделиться

Yep Stephen C is totally correct that you can't use QNames in XML attributes, you can use XML entities instead which you define in a DTD block at the top of your document like so:

eg.

<!DOCTYPE rdf:RDF[
    <!ENTITY rdf 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
    <!ENTITY rdfs 'http://www.w3.org/2000/01/rdf-schema#'>
    <!ENTITY xsd 'http://www.w3.org/2001/XMLSchema#'>
    <!ENTITY ex 'http://example.org/thesis/'>
    <!ENTITY dc 'http://purl.org/dc/elements/1.1/'>
    <!ENTITY foaf 'http://xmlns.com/foaf/0.1/'>
    <!ENTITY bibo 'http://purl.org/ontology/bibo/'>
]>

Then you can define attributes like so:

<bibo:Journal rdf:about="&ex;bibdienst">
6
ответ дан 6 December 2019 в 19:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: