我在POSIX/Linux环境中有一个多线程应用程序 - 我无法控制创建pthreads的代码.在某些时候,进程 - pthreads的所有者 - 收到一个信号.
该信号的处理程序应该中止,取消或停止所有pthread并记录运行的pthreads数量.
我的问题是我找不到如何列出正在运行的所有pthread.
我试图找到解决以下问题的最佳方法.最好的方式我的意思是不那么复杂.
作为输入,元组列表(开始,长度)如下:
[(0,5),(0,1),(1,9),(5,5),(5,7),(10,1)]
Run Code Online (Sandbox Code Playgroud)
每个元素通过其开始和长度来表示序列,例如(5,7)等同于序列(5,6,7,8,9,10,11)
- 以5开头的7个元素的列表.可以假设元组按start
元素排序.
输出应返回表示最长连续序列的非重叠元组组合.这意味着,解决方案是范围的子集,没有重叠且没有间隙,并且是最长的 - 尽管可能不止一个.
例如,对于给定的输入,解决方案是:
[(0,5),(5,7)]
相当于 (0,1,2,3,4,5,6,7,8,9,10,11)
它是回溯解决这个问题的最佳方法吗?
我对人们可以建议的任何不同方法感兴趣.
此外,如果有人知道这个问题的正式参考或另一个类似的问题,我想得到参考.
顺便说一句 - 这不是功课.
编辑
为了避免一些错误,这是预期行为的另一个例子
对于[(0,1),(1,7),(3,20),(8,5)]
正确答案的输入[(3,20)]
相当于(3,4,5,...,22)长度为20.收到的一些答案[(0,1),(1,7),(8,5)]
相当于(0,1,2,...,11,12)作为正确答案.但这最后的答案是不正确的,因为它比短于[(3,20)]
.
algorithm complexity-theory dynamic-programming backtracking
为了获得所有可能的电影名称,我使用了sparql查询:
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT DISTINCT ?film_title ?film_abstract
WHERE {
?film_title rdf:type <http://dbpedia.org/ontology/Film> .
?film_title rdfs:comment ?film_abstract
}
Run Code Online (Sandbox Code Playgroud)
它只给了我一万部电影.DBpedia在其网站上提到它有大约60,000部电影.对于我的应用程序,我需要所有可能的电影.有人可以指导我有什么其他可能性来获得其余的电影
我已经做了一些寻找一个好的RDF编辑器.但我不确定哪一个最有用.谁能推荐一个人?我想写一些简单的RDF,也许解析一个或两个RDF文档.
非常感谢
我正在开发一个项目,该项目从在线流媒体平台上记录了大量有关观众的信息.MySQL解决方案今天的问题是查询太慢,等等.即使有缩放和更好的性能调整,现在也可以工作,因为只有很多数据实时写入/读取.
对我来说,什么是一个好的(最好的)NoSQL解决方案?
额外:
我正在尝试使用RDFLib 3.0解析几个大图,显然它处理第一个并在第二个上死(MemoryError)...看起来MySQL不再作为商店支持,你能建议一种方法以某种方式解析那些?
Traceback (most recent call last):
File "names.py", line 152, in <module>
main()
File "names.py", line 91, in main
locals()[graphname].parse(filename, format="nt")
File "/usr/local/lib/python2.6/dist-packages/rdflib-3.0.0-py2.6.egg/rdflib/graph.py", line 938, in parse
location=location, file=file, data=data, **args)
File "/usr/local/lib/python2.6/dist-packages/rdflib-3.0.0-py2.6.egg/rdflib/graph.py", line 757, in parse
parser.parse(source, self, **args)
File "/usr/local/lib/python2.6/dist-packages/rdflib-3.0.0-py2.6.egg/rdflib/plugins/parsers/nt.py", line 24, in parse
parser.parse(f)
File "/usr/local/lib/python2.6/dist-packages/rdflib-3.0.0-py2.6.egg/rdflib/plugins/parsers/ntriples.py", line 124, in parse
self.line = self.readline()
File "/usr/local/lib/python2.6/dist-packages/rdflib-3.0.0-py2.6.egg/rdflib/plugins/parsers/ntriples.py", line 151, in readline
m = r_line.match(self.buffer)
MemoryError
Run Code Online (Sandbox Code Playgroud) 我正在尝试查询远程端点并获取owl:sameAs映射,我已经尝试了RDFLib和Redland,但都没有为我工作,可能我没有正确处理名称空间.
这是我在RDFLib中的尝试:
import rdflib
rdflib.plugin.register('sparql', rdflib.query.Processor, 'rdfextras.sparql.processor', 'Processor')
rdflib.plugin.register('sparql', rdflib.query.Result, 'rdfextras.sparql.query', 'SPARQLQueryResult')
g = rdflib.Graph()
query = """
SELECT *
FROM <http://api.talis.com/stores/bbc-backstage/services/sparql>
WHERE {
?s a http://purl.org/ontology/mo/MusicArtist;
http://www.w3.org/2002/07/owl#sameAs ?o .
}Limit 50
"""
for row in g.query(query):
print row
Run Code Online (Sandbox Code Playgroud)
这里是雷德兰:
import RDF
model = RDF.Model()
query = """
SELECT *
FROM <http://api.talis.com/stores/bbc-backstage/services/sparql>
WHERE {
?s a http://purl.org/ontology/mo/MusicArtist;
http://www.w3.org/2002/07/owl#sameAs ?o .
}Limit 50
"""
for statement in RDF.Query(query ,query_language="sparql").execute(model):
print statement
Run Code Online (Sandbox Code Playgroud)
你能不能暗示其中任何一个出了什么问题?我有另一个困难:是否有可能获得对象的数据集名称?例如:如果有:
?s = http://www.bbc.co.uk/music/artists/eb5c8564-927d-414d-b152-c7b48a2c9d8b#artist
predicate = http://www.w3.org/2002/07/owl#sameAs
?0 = http://dbpedia.org/resource/The_Boy_Least_Likely_To …
Run Code Online (Sandbox Code Playgroud) 我试图从Mulgara RDF商店创建一个RDF图,使用Sparql查询返回结果.我刚开始对简单的查询感到满意,有效地问,"哪些对象是特定集合的成员?"
我的问题是,我会非常感谢任何建议,我是否可以从这个简单的查询中获取结果并将它们重新路由作为查询的对象?
例如,我有这个sparql查询:
SELECT ?x WHERE {?x <fedora-rels-ext:isMemberOfCollection> <info:fedora/collection:ramsey>}
Run Code Online (Sandbox Code Playgroud)
有了这些结果:
"x"
info:fedora/ramsey:ThelifeandadventuresofRobinsonCrusoe
info:fedora/ramsey:Jackanapes
info:fedora/ramsey:SundayJournalvol01no0219951126
info:fedora/ramsey:Ideologyandchange
info:fedora/ramsey:theshepherdofthepyrenees
info:fedora/ramsey:ScenesinAmerica
...
Run Code Online (Sandbox Code Playgroud)
我的目标是<info:fedora/collection:ramsey>
,从原始查询中取出这些唯一标识符并替换对象,然后再次运行查询.
我正在想象一个场景,我会在初始查询中识别根元素,让结果返回所有成员对象,然后返回所有这些对象的成员对象,无限...
Sparql查询可以实现吗?具体来说,我相信我正在查询Mulgara RDF数据库.任何想法,即使它"不可行",也非常感激.
我喜欢用Python处理列表的方式.它做任何递归解决方案看起来容易和干净.例如,在Python中获取元素的所有排列的典型问题如下所示:
def permutation_recursion(numbers,sol):
if not numbers:
print "this is a permutation", sol
for i in range(len(numbers)):
permutation_recursion(numbers[:i] + numbers[i+1:], sol + [numbers[i]])
def get_permutations(numbers):
permutation_recursion(numbers,list())
if __name__ == "__main__":
get_permutations([1,2,3])
Run Code Online (Sandbox Code Playgroud)
我喜欢通过像numbers[:i] + numbers[i+1:]
或者 那样简单地获取修改列表的新实例的方式
sol + [numbers[i]]
如果我尝试在Java中编写完全相同的代码,它看起来像:
import java.util.ArrayList;
import java.util.Arrays;
class rec {
static void permutation_recursion(ArrayList<Integer> numbers, ArrayList<Integer> sol) {
if (numbers.size() == 0)
System.out.println("permutation="+Arrays.toString(sol.toArray()));
for(int i=0;i<numbers.size();i++) {
int n = numbers.get(i);
ArrayList<Integer> remaining = new ArrayList<Integer>(numbers);
remaining.remove(i);
ArrayList<Integer> sol_rec = new ArrayList<Integer>(sol);
sol_rec.add(n);
permutation_recursion(remaining,sol_rec);
} …
Run Code Online (Sandbox Code Playgroud) 我目前正在寻找一种通过SPARQL端点查询DBPedia的Infobox Onyology数据库的方法,以获取类的列表,所选类的子类以及给定类的属性.据我所知,您要么需要知道您正在寻找的属性,要么搜索特定的内容 - 我发现的所有示例似乎都基于您想要搜索特定内容的想法(比如某个高度以上的城市人口等),而我想建立一些可以有效"浏览"类别的东西.例如,从此类层次结构图上的"owl:Thing"的子类列表开始,向用户显示所选子类的子类列表.似乎可以通过映射wiki浏览这样的东西,但最好直接查询SPARQL端点.
是否有一些简单的SPARQL查询会返回这些类的可用类和属性?
SELECT ?subject WHERE {
?subject rdfs:subClassOf owl:Thing
}
Run Code Online (Sandbox Code Playgroud)
这返回了owl的子类列表:Thing,如果我用其中一个子类替换owl:Thing,我得到它的子类列表,直到没有子类,此时我可以选择所有的资源由所选子类给出的类型.不过,我仍然不太确定如何获得子类共有的所有属性.
更新2 现在就越来越近了.此查询为我提供了所有属性(dbpedia:property的子项),它们也是一个国家/地区,以及它们的标题:
SELECT DISTINCT ?prop ?title WHERE {
?country ?prop ?value.
?country a <http://dbpedia.org/ontology/Country>.
?prop rdf:type rdf:Property.
?prop rdfs:label ?title
}
Run Code Online (Sandbox Code Playgroud)
这实际上是我真正要求的.我现在要做的最后一件事是尝试按照它们出现的页数来排序(可能最常见的属性是最感兴趣的属性).