== Short installation overview == Check out the rdfhomepage package: {{{ cd ~homer/public_html/whereever/ svn co https://rdfhomepage.opendfki.de/repos/rdfhomepage/trunk/rdfhomepage }}} The rdfhomepage package also contains a directory myrdfhomepage providing you with some initial files you can use to view, edit, and replace. Copy or move the contents (not the folder!) of the myrdfhomepage/ directory to your public html space. Before you start something else, you should call '''{{{install.sh}}}''' if you are installing rdfhomepage on a UNIX machine. Then, you should edit the files (especially '''{{{config.php}}}''' and '''{{{homepage.rdf}}}'''), and then test and play around a bit. Well, and you MUST have several RDF files for rdfhomepage to work: * a FOAF file specifying yourself and your "friends" and colleagues * a bibtex files, that is, the text version PLUS the RDF version(!) of your publications * an organizational model, that is, your organizational properties and relations (your projects, department(s), roles...) ---- === FOAF / RDF === First of all: You MUST have a FOAF file for rdfhomepage to work! [[BR]] But: Care has to be taken when creating a FOAF file. There are a lot of tools out there for creation and management of your foaf file, however, (nearly) all of them produce a more or less crappy/ugly/bad/impractical RDF file. I am sorry, but I must advise to use a text editor for that concern. If you adapt the foaf RDFS to contain the right domain and range constraints, then Protege may also be useful, but a text editor together with disciplined(!) indentation is the best, fastest and easiest way. [[BR]] The easiest way to come up with a good foaf file is to copy mine: http://www.dfki.uni-kl.de/~schwarz/foaf.xml open it in some text editor and edit everything ;) For all RDF files to be used in rdfhomepage you have to follow the following rules (btw, you should follow these rules for all software using RDF). This holds especially for your FOAF file: * Resources to be referenced from outside the RDF file need a URI => Your foaf:Person needs a URI. * Blank/anonymous nodes can't be referenced from outside the RDF file. => Your foaf:Person needs a URI, no blank/anonymous node! So: don't use nodeID="...", but use rdf:about="...". * Some (most!) RDF parsers do not like relative URIs (or NodeIDs). => It is generally better to use ABSOLUTE URIs. So: don't use rdf:about="#me" in your foaf file, better use something like rdf:about="http://www.dfki.uni-kl.de/~schwarz/foaf.xml#me". * Generally, every thing described in an RDF file, that could be relevant and/or referenced outside the RDF file, should have an absolute URI. However, the foaf:Persons I link with foaf:knows do not have a URI, because so many people out there do not have a URI for their foaf:Person. If you have a FOAF file and a foaf description of your foaf:Person, then the URI of that foaf:Person has to be set in your {{{config.php}}}: {{{ // The location of your FOAF file on the web (This is also the data source) $MY_FOAF_FILE_URL = "http://www.dfki.uni-kl.de/~schwarz/foaf.xml"; // Your URI in your FOAF file - Look this one up! $MY_FOAF_URI = "http://www.dfki.uni-kl.de/~schwarz/foaf.xml#me"; }}} ---- === BIBTEX === We used bibtex2rdf from L3S (Hannover) to convert a text bibtex file to some RDF representation. Unfortunately the bibtex2rdf tool is NOT (YET?) open-source, and therefore the jar-file is not includes in the rdfhomepage package. But if you install rdfhomepage and drop me (Sven) an email, and you will get the jar-file. Using the bibtex2jar tool, you can call the following to create/update your bibtex RDF file: {{{ set BIBFILE=ss.bib set URI=http://www.dfki.uni-kl.de/~schwarz/rdf/ss_bib.rdf# set OUT=bib_ss.rdf java -jar bibtex2rdf.jar -baseuri %URI% %BIBFILE% %OUT% }}} At the END of the bibtex-file there is a rdf:Seq like this {{{ . . . }}} Take the URI of that rdf:Seq (here this is http://www.dfki.uni-kl.de/~schwarz/rdf/ss_bib.rdf#referenceList ) and paste that URI in your {{{config.php}}}: {{{ // The name (not path) of your bibtex.rdf define("BIBTEX_FILE_NAME", "bib_ss.rdf"); // The URL of your BibTeX file. (real BibTeX format, not RDF!) $MY_BIB_TEX_URL = "http://www.dfki.uni-kl.de/~schwarz/ss.bib"; // The URI of a sequence of all the articles in your bibtex file $MY_BIB_TEX_SEQ_URI = "http://www.dfki.uni-kl.de/~schwarz/rdf/ss_bib.rdf#referenceList"; }}} ---- === OrgRep === The !OrgRep models our/your organizational structure, that is, your organizational properties and relations, your projects, project leaders, department, research groups, etc. Especially the relations between people and projects will be used for rdfhomepage. You may have a look at our !OrgRep -> see {{{{rdfhomepage/vocabulary/OrgRepDFKI.*}}} -> best viewed with [http://protege.stanford.edu/ Protege], http://protege.stanford.edu/ There is also a better, nearly-empty Protege-Projekt + RDF + RDFS, which you could use to model your own organizational structure(s): {{{{rdfhomepage/vocabulary/OrgRep.*}}} [[BR]] I advise you take the following steps: 1. Open {{{OrgRep.pprj}}} with Protege 2. Save it again (File/Save as), maybe use other filenames like {{{OrgRepACME.*}}} - the important thing here is: choose an OTHER default namespace -> last edit field in the "Save as" dialog (initially, the value will be http://rdfhomepage.opendfki.de/please_choose_another_namespace#). 3. Open it again (with Protege) and add your people, projects, etc. therein. 4. There are some inverse properties, which may need manual care, e.g. between org:Project <--> org:Person I would suggest better URIs than the automatically generated ones by Protege, but as Protege does not provide a GUI component to edit the URI (or does it?), you would have to edit/replace the URIs later using a text editor or shell command or whatever. Anyway, you've got to look up the URI of your org:Person and enter that in the {{{config.php}}}: {{{ // Your URI in the OrgRep ontology // If in doubt, look it up in the OrgRep RDF File or ask somebody! $MY_ORGREP_URI = "http://km.dfki.de/model/org#OrganisationalModel_00077"; }}} ---- === homepage.rdf === This RDF contains your personal, *homepage relevant*(!) information, that is, your Curriculum Vita, your personal interpretation of your job in your projects, etc. The most important thing is - again - that your hp:Homepage resource has got a URI. We use the URL of the homepage without the trailing slash as the URI, but that is not obligatory, you can choose whatever URI you like as long as it is unique and differs from the other URIs you use! Copy the URI of your hp:Homepage resource to the {{{config.php}}} file: {{{ // The URI of the RDF node anchoring the homepage data // as it can be found in the rdfhomepage.rdf file. // You may commit to the default URI scheme, which is like // http://www.dfki.uni-kl.de/~schwarz <-- note: no trailing slash!!! // or change this value $MY_HOMEPAGE_URI= "http://www.dfki.uni-kl.de/~schwarz"; }}} Another important thing in the homepage.rdf is the information about the name that is used in your bibtex. Unfortunately this information should be better stored in config.php, but it is in homepage.rdf for several reasons... ;) {{{ Sven Schwarz }}} Edit this to match the name (or abbreviation!) you use IN YOUR BIBTEX FILE. Currently, you have to decide on exactly ONE version! So: do not mix full names with abbreviations in your bibtex file! ==== short bio ==== There could be a chunk containing short information about yourself: {{{ My name is Bob. I am a researcher aiming at...

I like tennis and swimming...

]]>
}}} ==== projects ==== There could be one or more chunks about projects you work for: {{{ This is one of two projects I work for.
I took talk hours about this project...

]]>
And this is the second of the two projects I work for.

]]>
}}} We see several things here: 1. homepage.rdf contains your PERSONAL INTERPRETATION of the project. In contrast, the orgrep contains a SHARED description. 2. The projects's URIs should be exactly the same as in the orgrep file. 3. The project descriptions in homepage.rdf are ordered and chained like a linked list using a property hp:next. This list has to be normal, one-dimensional list, i.e.: * there should be exactly one first project (no project is pointing at the first one with hp:next) * there should be exactly one last project (this project has no hp:next project) * every project inbetween (project 2 to project n-1) has exactly one hp:next project