Leif Harald Karlsen
Assembly/Java bytecode:
0: iconst_2
1: istore_1
2: iload_1
3: sipush 1000
6: if_icmpge 44
9: iconst_2
10: istore_2
11: iload_2
12: iload_1
13: if_icmpge 31
16: iload_1
17: iload_2
18: irem
19: ifne 25
22: goto 38
25: iinc 2, 1
28: goto 11
31: getstatic #84;
34: iload_1
35: invokevirtual #85;
38: iinc 1, 1
41: goto 2
44: return
RDF/RDFS/OWL:
exo:Planet rdf:type owl:Class ;
rdfs:label "Class of planets" ;
rdfs:subClassOf exo:AstronomicalObject .
exo:orbitsPlanet rdf:type owl:ObjectProperty ;
rdfs:domain exo:Moon ;
rdfs:range exo:Planet .
exd:earth rdf:type exo:Planet ;
rdfs:label "The Earth" ;
exo:hasSattelite exd:moon ;
exo:orbitingStar exd:sun .
exd:moon rdf:type exo:Moon ;
rdfs:label "The Moon" ;
exo:orbitingPlanet exd:earth .
exd:venus rdf:type exo:Planet ;
rdfs:label "Venus" ;
exo:orbitingStar exd:sun .
???
???
exd:earth rdf:type exo:Planet ;
rdfs:label "Earth" ;
exo:orbitsStar ex:sun .
exd:mars rdf:type exo:Planet ;
rdfs:label "Mars" ;
exo:orbitsStar ex:sun .
exd:planet-b rdf:type exo:Planet ;
rdfs:label "Proxima b" ;
exo:orbitsStar ex:proxima .
exd:earth rdf:type exo:Planet ;
rdfs:label "Earth" ;
exo:orbitsStar ex:sun .
exd:mars rdf:type exo:Planet ;
rdfs:label "Mars" ;
exo:orbitsStar ex:sun .
exd:planet-b rdf:type exo:Planet ;
rdfs:label "Proxima b" ;
exo:orbitsStar ex:proxima .
?planet rdf:type exo:Planet ;
rdfs:label ?name ;
exo:orbitsStar ?sun .
exd:earth rdf:type exo:Planet ;
rdfs:label "Earth" ;
exo:orbitsStar ex:sun .
exd:mars rdf:type exo:Planet ;
rdfs:label "Mars" ;
exo:orbitsStar ex:sun .
exd:planet-b rdf:type exo:Planet ;
rdfs:label "Proxima b" ;
exo:orbitsStar ex:proxima .
ast:Planet[ ?planet, ?name, ?sun ] :: {
?planet rdf:type exo:Planet ;
rdfs:label ?name ;
exo:orbitsStar ?sun .
} .
exd:earth rdf:type exo:Planet ;
rdfs:label "Earth" ;
exo:orbitsStar ex:sun .
exd:mars rdf:type exo:Planet ;
rdfs:label "Mars" ;
exo:orbitsStar ex:sun .
exd:planet-b rdf:type exo:Planet ;
rdfs:label "Proxima b" ;
exo:orbitsStar ex:proxima .
ast:Planet[ ?planet, ?name, ?sun ] :: {
ottr:Triple(?planet, rdf:type, exo:Planet),
ottr:Triple(?planet, rdfs:label, ?name),
ottr:Triple(?planet, exo:orbitsStar, ?sun)
} .
exd:earth rdf:type exo:Planet ;
rdfs:label "Earth" ;
exo:orbitsStar ex:sun .
exd:mars rdf:type exo:Planet ;
rdfs:label "Mars" ;
exo:orbitsStar ex:sun .
exd:planet-b rdf:type exo:Planet ;
rdfs:label "Proxima b" ;
exo:orbitsStar ex:proxima .
ast:Planet[ ?planet, ?name, ?sun ] :: {
ottr:Triple(?planet, rdf:type, exo:Planet),
ottr:Triple(?planet, rdfs:label, ?name),
ottr:Triple(?planet, exo:orbitsStar, ?sun)
} .
ast:Planet(exd:earth, "Earth", exd:sun) .
ast:Planet(exd:mars, "Mars", exd:sun) .
ast:Planet(exd:planet-b, "Proxima b", exd:proxima) .
ast:Planet[ ?planet, ?name, ?sun ] :: {
ottr:Triple(?planet, rdf:type, exo:Planet),
ottr:Triple(?planet, rdfs:label, ?name),
ottr:Triple(?planet, exo:orbitsStar, ?sun)
} .
o-rdf:Type[ ?object, ?class ] :: {
ottr:Triple(?object, rdf:type, ?class)
} .
o-rdfs:Label[ ?object, ?label ] :: {
ottr:Triple(?object, rdfs:label, ?label)
} .
ast:Planet[ ?planet, ?name, ?sun ] :: {
o-rdf:Type(?planet, exo:Planet),
o-rdfs:Label(?planet, ?name),
ottr:Triple(?planet, exo:orbitsStar, ?sun)
} .
ast:Planet(exd:earth, "Earth", exd:sun) .
ast:Planet(exd:mars, "Mars", exd:sun) .
ast:Planet(exd:planet-b, "Proxima b", exd:proxima) .
ast:Planet[ ottr:IRI ?planet, xsd:string ?name, ottr:IRI ?sun ] :: {...}
none
? xsd:string ?name
ottr:IRI ?sun=exd:sun
List<xsd:string> ?names
cross | o-rdfs:Label(?planet, ++?names)
Lutra is an open source Java CLI-tool that supports:
java -jar lutra.jar \
-m expand \
-I stottr \
-L stottr \
-O wottr \
-f \
-l astronomy.stottr
-o astronomy-expanded.ttl
astronomy-ins.stottr