我正在尝试查询adium生成的xml文件.xmlwf说它形成得很好.通过使用xmllint的调试选项,我得到以下内容:
$ xmllint --debug doc.xml
DOCUMENT
version=1.0
encoding=UTF-8
URL=doc.xml
standalone=true
ELEMENT chat
default namespace href=http://purl.org/net/ulf/ns/0.4-02
ATTRIBUTE account
TEXT
content=foo@bar.com
ATTRIBUTE service
TEXT compact
content=MSN
TEXT compact
content=
ELEMENT event
ATTRIBUTE type
Run Code Online (Sandbox Code Playgroud)
一切似乎都解析得很好.但是,当我尝试查询最简单的东西时,我什么都得不到:
$ xmllint --xpath '/chat' doc.xml
XPath set is empty
Run Code Online (Sandbox Code Playgroud)
发生了什么?使用xpath运行完全相同的查询会返回正确的结果(但结果之间没有换行符).我做错了什么还是xmllint不能正常工作?
这是一个较短的,匿名的xml版本,它显示了相同的行为:
<?xml version="1.0" encoding="UTF-8" ?>
<chat xmlns="http://purl.org/net/ulf/ns/0.4-02" account="foo@bar.com" service="MSN">
<event type="windowOpened" sender="foo@bar.com" time="2011-11-22T00:34:43-03:00"></event>
<message sender="foo@bar.com" time="2011-11-22T00:34:43-03:00" alias="foo"><div><span style="color: #000000; font-family: Helvetica; font-size: 12pt;">hi</span></div></message>
</chat>
Run Code Online (Sandbox Code Playgroud) 我正在尝试从此转储创建LinkedGeoData.org的本地镜像.
这大约是61,000,000三倍.Virtuoso应该能够轻松处理更多,但每次都会在大约40,000,000三倍之后停止加载.我正在使用Amazon EC2的双超大实例,它有30 GB的RAM,还有足够的存储空间.我的配置文件有问题吗?我正在使用ubuntu服务器12.04,我已经尝试通过apt-get(版本6.1.5)安装Virtuoso 并根据JörnHees的指示从github(版本6.1.6)编译最新的稳定源代码.
我也尝试将dumpfile分成小块并逐个加载它们.在插入大约40,000,000个三元组后,这也会崩溃.
日志文件没有显示任何奇怪的内容; virtuoso-t只是在没有实际崩溃的情况下停止工作,并top使用0%的CPU显示进程.在前半个小时左右之后,我已经让这个过程运行了好几天没有任何进展.
这是我的virtuoso.ini档案:
[Database]
DatabaseFile = /var/lib/virtuoso/db/virtuoso.db
ErrorLogFile = /var/lib/virtuoso/db/virtuoso.log
LockFile = /var/lib/virtuoso/db/virtuoso.lck
TransactionFile = /var/lib/virtuoso/db/virtuoso.trx
xa_persistent_file = /var/lib/virtuoso/db/virtuoso.pxa
ErrorLogLevel = 7
FileExtend = 200
MaxCheckpointRemap = 625000
Striping = 0
TempStorage = TempDatabase
[TempDatabase]
DatabaseFile = /var/lib/virtuoso/db/virtuoso-temp.db
TransactionFile = /var/lib/virtuoso/db/virtuoso-temp.trx
MaxCheckpointRemap = 2000
Striping = 0
;
; Server parameters
;
[Parameters]
ServerPort = 1111
LiteMode = 0
DisableUnixSocket = …Run Code Online (Sandbox Code Playgroud) 我正在使用rails 4.1.0编写一个简单的应用程序.我创建了两个名为Serie和Event的模型,它们之间有一对多的关系(因为在一个Serie中有许多事件).
class Serie < ActiveRecord::Base
has_many :events
end
class Event < ActiveRecord::Base
belongs_to :serie
end
Run Code Online (Sandbox Code Playgroud)
我为这些模型创建了以下fixture文件:
#series.yml
---
Serie1:
name: Whatever
#events.yml
---
EventSerie11:
date: 2013-01-01
value: '124.4'
serie: Serie1
EventSerie12:
date: 2013-02-01
value: '124.2'
serie: Serie1
Run Code Online (Sandbox Code Playgroud)
问题是,当我通过使用加载这些灯具时rake db:fixtures:load,我得到了错误的事件对象的外键:
$ rails c
Loading development environment (Rails 4.1.0)
2.1.1 :001 > Serie.first.id
Serie Load (0.2ms) SELECT "series".* FROM "series" ORDER BY "series"."id" ASC LIMIT 1
=> 10
2.1.1 :002 > Serie.first.events.count
Serie Load (0.3ms) SELECT "series".* FROM "series" …Run Code Online (Sandbox Code Playgroud) 我正在尝试定义一个带有自由变量的单个术语的谓词,并返回这些变量的映射列表,例如,如果数据库是
a(0,1).
a(1,1).
Run Code Online (Sandbox Code Playgroud)
预期的产出是
?- eval(a(X,1),Maps).
Maps = [[[X,0]],[[X,1]]].
?- eval(a(X,Y),Maps).
Maps = [[[X,0],[Y,1]],[[X,1],[Y,1]]].
Run Code Online (Sandbox Code Playgroud)
我一直试图通过使用来实现这一目标findall/3,但我无法找到一种方法来询问自由变量及其可能的值.如果它有帮助,我正在使用swiprolog.谢谢.
我需要测试几百万个SPARQL查询的某个结构属性,为此我需要WHERE语句的结构.我目前正在尝试使用fyzz来做到这一点,但遗憾的是它的文档并不是很有用.解析查询很容易,问题是我无法恢复语句的结构.例如:
>>> from fyzz import parse
>>> a=parse("SELECT * WHERE {?x a ?y . {?x a ?z}}")
>>> b=parse("SELECT * WHERE {?x a ?y OPTIONAL {?x a ?z}}")
>>> a.where==b.where
True
>>> a.where
[(SparqlVar('x'), ('', 'a'), SparqlVar('y')), (SparqlVar('x'), ('', 'a'), SparqlVar('y'))]
Run Code Online (Sandbox Code Playgroud)
有没有办法恢复fyzz中的实际解析树而不仅仅是三元组,或者其他一些可以让我这样做的工具?RDFLib似乎已经过去野牛SPARQL解析器,但我找不到它rdflib或rdfextras.sparql包.
谢谢