小编ail*_*nlv的帖子

xmllint无法使用xpath正确查询

我正在尝试查询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)

xml xpath xmllint

49
推荐指数
2
解决办法
3万
查看次数

将rdf三倍加载到virtuoso opensource中

我正在尝试从此转储创建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)

rdf semantic-web triplestore virtuoso n-triples

7
推荐指数
1
解决办法
1404
查看次数

Rails用错误的外键加载灯具

我正在使用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)

ruby sqlite ruby-on-rails fixtures ruby-on-rails-4

6
推荐指数
1
解决办法
775
查看次数

查找谓词的所有解法

我正在尝试定义一个带有自由变量的单个术语的谓词,并返回这些变量的映射列表,例如,如果数据库是

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.谢谢.

prolog prolog-findall

5
推荐指数
1
解决办法
1835
查看次数

解析SPARQL查询

我需要测试几百万个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解析器,但我找不到它rdflibrdfextras.sparql包.

谢谢

python grammar parsing sparql bison

4
推荐指数
1
解决办法
1734
查看次数