Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.2k views
in Technique[技术] by (71.8m points)

rdf - Need an algorithm to compute all possible inferences

I am making a static RDFS-Plus inference engine.

I have written a function that will make the appropriate inferences for all of the constructs included. For example if this function is passed the triple C1 rdf:subClassOf C2, then for all X's in triples of the form X rdf:type C1, a new triple of the form X rdf:type C2 will be produced.

Where I am struggling is in figuring out how to make all possible inferences. The struggle comes from the fact that I must make inferences based off inferences.

Here is where I am at in my program:

1. Parse a `.ttl` file and assert all the triples into a data store.
2. Separate out the triples that represent RDFS-Plus constructs into a list.
3. ??? (make all possible inferences somehow)

The only idea that I am sure would work is to generate all the permutations of the RDFS-Plus list (giving a list of lists), and then for each inner list map my infer function. This is a useless solution though as it is so inefficient.

Is my infer function enough to be able to produce all possible inferences or did I go down a barren path? Do I have enough in place to make a rule dependency graph? I do not know how to calculate if a modelling construct may depend on another construct. For example could owl:FunctionalProperty depend on rdfs:subClassOf or is this just gibberish?

I would really appreciate some insight.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
等待大神答复

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...