Topic on Extension talk:SemanticDependencyUpdater

How is this extension different from "Semantic Dependency"?

10
Revansx (talkcontribs)
Cindy.cicalese (talkcontribs)

Good question. I wrote Semantic Dependency several years ago when I had a specific need for it, but I'm not sure if it is still actively being used at this point. Perhaps, if Semantic Dependency Updated meets the same need and is in active use, Semantic Dependency should be archived.

Revansx (talkcontribs)

Sounds like you're saying that new efforts should use SemanticDependencyUpdater over SemanticDependency. yes?

Cindy.cicalese (talkcontribs)

If indeed they meet the same need. The names are similar, and a quick read of the extension page for SemanticDependencyUpdater seems similar, but I'd be interested to hear @Planetenxin's opinion on whether they serve the same purpose.

Revansx (talkcontribs)

right. sometimes the subtle differences make all the difference and it's nice to know what the pros are using.

Planetenxin (talkcontribs)
Cindy.cicalese (talkcontribs)
Revansx (talkcontribs)

sometimes simplicity is better, sometimes fancy features are best.. it would be nice to see a side-by-side comparison of features for these two apparently similar extensions.

Revansx (talkcontribs)

it seems to me the basic task of performing a null edit on pages with semantic dependencies *should* be a core part of SMW. does anyone know if this is on anyone's radar in the SMW team?

Cindy.cicalese (talkcontribs)

As far as I can tell, there are three major differences between the extensions.

1) SemanticDependency defines a page type property per namespace that, if it exists on a page in that namespace, points to other pages that depend upon the current page. SemanticDependencyUpdater defines a single text property that, if it exists on a page, holds a query that when executed will result in pages that depend upon the current page.

2) SemanticDependency uses SMWUpdateJob to update only the SMW data on the page. SemanticDependencyUpdater issues a null edit on the page.

3) SementicDependency has a threshold configuration variable. Refresh jobs will be executed immediately up to that threshold; additional jobs will be put on the job queue. SemanticDependencyUpdater has a configuration variable that indicates whether all jobs should be executed immediately or all jobs should be put on the job queue.

Other than that, SemanticDependency could use some love since it has not been updated to use extension registration. Also, IIRC there was a bug that showed up when running the refreshLinks maintenance script in some cases.

I don't know of any work to include this functionality in SMW. I did get some much appreciated advice from mwjames when implementing SemanticDependency, but I do not believe it was on his radar at that time to include this functionality directly in SMW. This is one of those features that needs to be used with care, as it can cause performance bottlenecks. SemanticDependency forbids having a page depend upon a page that depends upon another page to try to mitigate circular dependencies, but it can still cause quite a bit of update activity if the dependencies are not well designed.

Reply to "How is this extension different from "Semantic Dependency"?"