I should be able to do (assuming the presence of apache, php, mysql):
pear install ARC2
pear run-scripts ARC2
# Configure my ARC2 triplestore database details
# Configure apache
Then just visit http://triplestore/
From here I should be able to Install a lightweight Agent or two. For instance, the identi.ca agent.
Each Agent is basically a small MVC bit of PHP; with a
In our identi.ca agent, the
ScutterControllerdeals with fetching new data on demand, looking at what existing data is known and seeing what
rdfs:seeAlsolinks are defined or otherwise checking for new content.
This is triggered at regular intervals or when explicitly asked for by the end user.
InferenceControllerdoes very simple reasoning. For instance, it looks for people with the same
mbox_sha1sumsand writes out new RDF to assert they are the
owl:sameAs. Our identi.ca agent probably doesn't need this so much, it could rely on a more general Foaf inference Agent.
Alternatively, a geocoding agent could take all
geo:SpatialThingsand actually geocode them, or lookup labels for geocoded blank nodes.
The QueryController helps our identi.ca agent publish available commands and views.
Since identi.ca provides both FOAF and RSS 1.0, sensible commands could include things like
fetch_new_posts_by_my_friends()and render out those views meaningfully.
Ideally, installing a new agent is little harder than a simple
pear install Agent_FOAF
So, what am I missing that stops me from doing this?
Progress so far:
I've made use of Zend Framework to make a proof of concept web UI - implemented a quick and dirty web interface to ARC2 to query and load data, as well as to do all of the nice installation magic.
In addition to that I've got half of the module/plugin stuff knocked off. Right now I'm tinkering with a basic addressbook module; next will be a foafinference module; then probably a friendactivity (meshup blogposts by friends you foaf:know directly) module.
Visual polish, implement a way to detect /modules/agents/ and tie them into the running application, security, publish a sparql endpoint (easily), a pear package for it all and a post install script, documentation.